Vixen
dd8b0a81
csharp
public static class VkFormats

The VkFormat numbers a KTX2 header carries, and what they mean here.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

A table in this assembly rather than a reference to the Vulkan backend, because Vixen.Core.Imaging is a Core assembly and Vixen.Graphics.Vulkan is a Platform one — and because these numbers are part of the file format, not of the graphics API. A KTX2 file written on a machine with no Vulkan at all still names its format this way.

Only the formats the engine actually ships textures in are listed. A number nobody writes is a number nobody has tested, and the alternative — hundreds of entries transcribed from a header — is hundreds of chances to transcribe one wrongly.

⚠ Three of these twenty-four numbers were wrong, and nothing in this repository could have found them. BC6H's unsigned block was 144, which is VK_FORMAT_BC6H_SFLOAT_BLOCK — so files carrying the unsigned payload Bc6HBlock writes told every reader to decode it as signed. ETC2's two entries were 151 and 153, which are ETC2_R8G8B8A8_UNORM and EAC_R11_UNORM, so To answered Etc2Rgb8A1UNorm for a genuine ETC2 RGBA8 file and the second entry named a format with the wrong block size entirely. From and To agree with each other whatever the number is, which is exactly why a round trip proves nothing here; it took Ktx2ConformanceTests putting the files past Khronos's validator to see it.

Fields and properties (1)

  • public static IEnumerable<PixelFormat> Supported

    Every format that can be written.

Methods (2)

  • public static uint From(PixelFormat format)

    The Vulkan number for a format.

  • public static PixelFormat To(uint vkFormat)

    What a Vulkan number means.

Used by (3)

  • Ktx2Vixen.Core.Imaging
  • Ktx2ConformanceTestsVixen.Core.Imaging.Tests
  • Ktx2TestsVixen.Core.Imaging.Tests