This table shows the percentage of GPUs that support any given image format for different uses, such as sampling, transferring, as a depth and stencil buffer etc. If you look at it you'll see that that many of the most common formats are supported for uses such as sampling and depth buffer usage with the percentage showing as 99% or 100%, while the support for TRANSFER_SRC and TRANSFER_DST is at 78%. I'm wondering why this is, given that pretty much any format should be able to be transferred for reading it and writing it. When uploading an image to be used as a texture don't you need the TRANSFER_DST bit to be set as a flag? Similarly does this mean that there are GPUs that support something like R8G8B8A8_UINT (100% of them apparently), but only 78% of them support transferring them? This doesn't make sense to me. Strangely where the support for TRANSFER_SRC and TRANSFER_DST shows 78% for many of them the BLIT_SRC and BLIT_DST show 100%. The tutorials I've followed show the uploading of textures using copy commands and TRANSFER_DST to copy images to the GPU, for example when copying an image from a staging buffer.