All the formats of images supported by Vulkan.
List of suffixes:
Unormmeans that the values are unsigned integers that are converted into floating points. The maximum possible representable value becomes
1.0, and the minimum representable value becomes
0.0. For example the value
R8Unormwill be interpreted as
Snormis the same as
Unorm, but the integers are signed and the range is from
Uscaledmeans that the values are unsigned integers that are converted into floating points. No change in the value is done. For example the value
R8Uscaledwill be interpreted as
Sscaledis the same as
Uscaledexpect that the integers are signed.
Uintmeans that the values are unsigned integers. No conversion is performed.
Sintmeans that the values are signed integers. No conversion is performed.
Ufloatmeans that the values are unsigned floating points. No conversion is performed. This format is very unusual.
Sfloatmeans that the values are regular floating points. No conversion is performed.
Srgbis the same as
Unorm, except that the value is interpreted as being in the sRGB color space. This means that its value will be converted to fit in the RGB color space when it is read. The fourth channel (usually used for alpha), if present, is not concerned by the conversion.
The following formats are guaranteed to be supported for everything that is related to texturing (ie. blitting source and sampling them linearly). You should choose one of these formats if you have an image that you are going to sample from:
The following formats are guaranteed to be supported for everything that is related to intermediate render targets (ie. blitting destination, color attachment and sampling linearly):
For depth images, only
D16Unorm is guaranteed to be supported. For depth-stencil images,
it is guaranteed that either
D32Sfloat_S8Uint are supported.
// TODO: storage formats
The features supported by images with a particular format.
The properties of an image format that are supported by a physical device.
Describes a uniform value that will be used to fill an image.
An enumeration of all the possible formats.
Trait for Rust types that can represent a pixel in an image.