From d9cef2feea2531cdef62231db0edf1f5e74e85cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 26 Sep 2019 14:15:29 +0200 Subject: [PATCH] Add HDR ASTC pixel formats. Both Vulkan and Metal have separate enums for these, GL is the only odd one out. --- .../compressedPixelFormatMapping.hpp | 34 ++ .../compressedPixelFormatMapping.hpp | 24 + src/Magnum/PixelFormat.cpp | 28 +- src/Magnum/PixelFormat.h | 468 ++++++++++++++---- .../compressedFormatMapping.hpp | 25 + src/MagnumExternal/Vulkan/extensions.txt | 2 + src/MagnumExternal/Vulkan/flextVk.h | 30 +- 7 files changed, 517 insertions(+), 94 deletions(-) diff --git a/src/Magnum/GL/Implementation/compressedPixelFormatMapping.hpp b/src/Magnum/GL/Implementation/compressedPixelFormatMapping.hpp index 19e7c74e7..1cc605891 100644 --- a/src/Magnum/GL/Implementation/compressedPixelFormatMapping.hpp +++ b/src/Magnum/GL/Implementation/compressedPixelFormatMapping.hpp @@ -77,74 +77,108 @@ _s(Etc2RGBA8Srgb) #endif _c(Astc4x4RGBAUnorm, RGBAAstc4x4) _c(Astc4x4RGBASrgb, SRGB8Alpha8Astc4x4) +_c(Astc4x4RGBAF, RGBAAstc4x4) _c(Astc5x4RGBAUnorm, RGBAAstc5x4) _c(Astc5x4RGBASrgb, SRGB8Alpha8Astc5x4) +_c(Astc5x4RGBAF, RGBAAstc5x4) _c(Astc5x5RGBAUnorm, RGBAAstc5x5) _c(Astc5x5RGBASrgb, SRGB8Alpha8Astc5x5) +_c(Astc5x5RGBAF, RGBAAstc5x5) _c(Astc6x5RGBAUnorm, RGBAAstc6x5) _c(Astc6x5RGBASrgb, SRGB8Alpha8Astc6x5) +_c(Astc6x5RGBAF, RGBAAstc6x5) _c(Astc6x6RGBAUnorm, RGBAAstc6x6) _c(Astc6x6RGBASrgb, SRGB8Alpha8Astc6x6) +_c(Astc6x6RGBAF, RGBAAstc6x6) _c(Astc8x5RGBAUnorm, RGBAAstc8x5) _c(Astc8x5RGBASrgb, SRGB8Alpha8Astc8x5) +_c(Astc8x5RGBAF, RGBAAstc8x5) _c(Astc8x6RGBAUnorm, RGBAAstc8x6) _c(Astc8x6RGBASrgb, SRGB8Alpha8Astc8x6) +_c(Astc8x6RGBAF, RGBAAstc8x6) _c(Astc8x8RGBAUnorm, RGBAAstc8x8) _c(Astc8x8RGBASrgb, SRGB8Alpha8Astc8x8) +_c(Astc8x8RGBAF, RGBAAstc8x8) _c(Astc10x5RGBAUnorm, RGBAAstc10x5) _c(Astc10x5RGBASrgb, SRGB8Alpha8Astc10x5) +_c(Astc10x5RGBAF, RGBAAstc10x5) _c(Astc10x6RGBAUnorm, RGBAAstc10x6) _c(Astc10x6RGBASrgb, SRGB8Alpha8Astc10x6) +_c(Astc10x6RGBAF, RGBAAstc10x6) _c(Astc10x8RGBAUnorm, RGBAAstc10x8) _c(Astc10x8RGBASrgb, SRGB8Alpha8Astc10x8) +_c(Astc10x8RGBAF, RGBAAstc10x8) _c(Astc10x10RGBAUnorm, RGBAAstc10x10) _c(Astc10x10RGBASrgb, SRGB8Alpha8Astc10x10) +_c(Astc10x10RGBAF, RGBAAstc10x10) _c(Astc12x10RGBAUnorm, RGBAAstc12x10) _c(Astc12x10RGBASrgb, SRGB8Alpha8Astc12x10) +_c(Astc12x10RGBAF, RGBAAstc12x10) _c(Astc12x12RGBAUnorm, RGBAAstc12x12) _c(Astc12x12RGBASrgb, SRGB8Alpha8Astc12x12) +_c(Astc12x12RGBAF, RGBAAstc12x12) #if defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) _c(Astc3x3x3RGBAUnorm, RGBAAstc3x3x3) _c(Astc3x3x3RGBASrgb, SRGB8Alpha8Astc3x3x3) +_c(Astc3x3x3RGBAF, RGBAAstc3x3x3) _c(Astc4x3x3RGBAUnorm, RGBAAstc4x3x3) _c(Astc4x3x3RGBASrgb, SRGB8Alpha8Astc4x3x3) +_c(Astc4x3x3RGBAF, RGBAAstc4x3x3) _c(Astc4x4x3RGBAUnorm, RGBAAstc4x4x3) _c(Astc4x4x3RGBASrgb, SRGB8Alpha8Astc4x4x3) +_c(Astc4x4x3RGBAF, RGBAAstc4x4x3) _c(Astc4x4x4RGBAUnorm, RGBAAstc4x4x4) _c(Astc4x4x4RGBASrgb, SRGB8Alpha8Astc4x4x4) +_c(Astc4x4x4RGBAF, RGBAAstc4x4x4) _c(Astc5x4x4RGBAUnorm, RGBAAstc5x4x4) _c(Astc5x4x4RGBASrgb, SRGB8Alpha8Astc5x4x4) +_c(Astc5x4x4RGBAF, RGBAAstc5x4x4) _c(Astc5x5x4RGBAUnorm, RGBAAstc5x5x4) _c(Astc5x5x4RGBASrgb, SRGB8Alpha8Astc5x5x4) +_c(Astc5x5x4RGBAF, RGBAAstc5x5x4) _c(Astc5x5x5RGBAUnorm, RGBAAstc5x5x5) _c(Astc5x5x5RGBASrgb, SRGB8Alpha8Astc5x5x5) +_c(Astc5x5x5RGBAF, RGBAAstc5x5x5) _c(Astc6x5x5RGBAUnorm, RGBAAstc6x5x5) _c(Astc6x5x5RGBASrgb, SRGB8Alpha8Astc6x5x5) +_c(Astc6x5x5RGBAF, RGBAAstc6x5x5) _c(Astc6x6x5RGBAUnorm, RGBAAstc6x6x5) _c(Astc6x6x5RGBASrgb, SRGB8Alpha8Astc6x6x5) +_c(Astc6x6x5RGBAF, RGBAAstc6x6x5) _c(Astc6x6x6RGBAUnorm, RGBAAstc6x6x6) _c(Astc6x6x6RGBASrgb, SRGB8Alpha8Astc6x6x6) +_c(Astc6x6x6RGBAF, RGBAAstc6x6x6) #else _s(Astc3x3x3RGBAUnorm) _s(Astc3x3x3RGBASrgb) +_s(Astc3x3x3RGBAF) _s(Astc4x3x3RGBAUnorm) _s(Astc4x3x3RGBASrgb) +_s(Astc4x3x3RGBAF) _s(Astc4x4x3RGBAUnorm) _s(Astc4x4x3RGBASrgb) +_s(Astc4x4x3RGBAF) _s(Astc4x4x4RGBAUnorm) _s(Astc4x4x4RGBASrgb) +_s(Astc4x4x4RGBAF) _s(Astc5x4x4RGBAUnorm) _s(Astc5x4x4RGBASrgb) +_s(Astc5x4x4RGBAF) _s(Astc5x5x4RGBAUnorm) _s(Astc5x5x4RGBASrgb) +_s(Astc5x5x4RGBAF) _s(Astc5x5x5RGBAUnorm) _s(Astc5x5x5RGBASrgb) +_s(Astc5x5x5RGBAF) _s(Astc6x5x5RGBAUnorm) _s(Astc6x5x5RGBASrgb) +_s(Astc6x5x5RGBAF) _s(Astc6x6x5RGBAUnorm) _s(Astc6x6x5RGBASrgb) +_s(Astc6x6x5RGBAF) _s(Astc6x6x6RGBAUnorm) _s(Astc6x6x6RGBASrgb) +_s(Astc6x6x6RGBAF) #endif #ifdef MAGNUM_TARGET_GLES _c(PvrtcRGB2bppUnorm, RGBPvrtc2bppV1) diff --git a/src/Magnum/Implementation/compressedPixelFormatMapping.hpp b/src/Magnum/Implementation/compressedPixelFormatMapping.hpp index 2ffba63a7..0c84a0ebb 100644 --- a/src/Magnum/Implementation/compressedPixelFormatMapping.hpp +++ b/src/Magnum/Implementation/compressedPixelFormatMapping.hpp @@ -77,52 +77,76 @@ _c(Etc2RGBA8Srgb, 4, 4, 1, 128) all blocks fit into 128 bits */ _c(Astc4x4RGBAUnorm, 4, 4, 1, 128) _c(Astc4x4RGBASrgb, 4, 4, 1, 128) +_c(Astc4x4RGBAF, 4, 4, 1, 128) _c(Astc5x4RGBAUnorm, 5, 4, 1, 128) _c(Astc5x4RGBASrgb, 5, 4, 1, 128) +_c(Astc5x4RGBAF, 5, 4, 1, 128) _c(Astc5x5RGBAUnorm, 5, 5, 1, 128) _c(Astc5x5RGBASrgb, 5, 5, 1, 128) +_c(Astc5x5RGBAF, 5, 5, 1, 128) _c(Astc6x5RGBAUnorm, 6, 5, 1, 128) _c(Astc6x5RGBASrgb, 6, 5, 1, 128) +_c(Astc6x5RGBAF, 6, 5, 1, 128) _c(Astc6x6RGBAUnorm, 6, 6, 1, 128) _c(Astc6x6RGBASrgb, 6, 6, 1, 128) +_c(Astc6x6RGBAF, 6, 6, 1, 128) _c(Astc8x5RGBAUnorm, 8, 5, 1, 128) _c(Astc8x5RGBASrgb, 8, 5, 1, 128) +_c(Astc8x5RGBAF, 8, 5, 1, 128) _c(Astc8x6RGBAUnorm, 8, 6, 1, 128) _c(Astc8x6RGBASrgb, 8, 6, 1, 128) +_c(Astc8x6RGBAF, 8, 6, 1, 128) _c(Astc8x8RGBAUnorm, 8, 8, 1, 128) _c(Astc8x8RGBASrgb, 8, 8, 1, 128) +_c(Astc8x8RGBAF, 8, 8, 1, 128) _c(Astc10x5RGBAUnorm, 10, 5, 1, 128) _c(Astc10x5RGBASrgb, 10, 5, 1, 128) +_c(Astc10x5RGBAF, 10, 5, 1, 128) _c(Astc10x6RGBAUnorm, 10, 6, 1, 128) _c(Astc10x6RGBASrgb, 10, 6, 1, 128) +_c(Astc10x6RGBAF, 10, 6, 1, 128) _c(Astc10x8RGBAUnorm, 10, 8, 1, 128) _c(Astc10x8RGBASrgb, 10, 8, 1, 128) +_c(Astc10x8RGBAF, 10, 8, 1, 128) _c(Astc10x10RGBAUnorm, 10, 10, 1, 128) _c(Astc10x10RGBASrgb, 10, 10, 1, 128) +_c(Astc10x10RGBAF, 10, 10, 1, 128) _c(Astc12x10RGBAUnorm, 12, 10, 1, 128) _c(Astc12x10RGBASrgb, 12, 10, 1, 128) +_c(Astc12x10RGBAF, 12, 10, 1, 128) _c(Astc12x12RGBAUnorm, 12, 12, 1, 128) _c(Astc12x12RGBASrgb, 12, 12, 1, 128) +_c(Astc12x12RGBAF, 12, 12, 1, 128) _c(Astc3x3x3RGBAUnorm, 3, 3, 3, 128) _c(Astc3x3x3RGBASrgb, 3, 3, 3, 128) +_c(Astc3x3x3RGBAF, 3, 3, 3, 128) _c(Astc4x3x3RGBAUnorm, 4, 3, 3, 128) _c(Astc4x3x3RGBASrgb, 4, 3, 3, 128) +_c(Astc4x3x3RGBAF, 4, 3, 3, 128) _c(Astc4x4x3RGBAUnorm, 4, 4, 3, 128) _c(Astc4x4x3RGBASrgb, 4, 4, 3, 128) +_c(Astc4x4x3RGBAF, 4, 4, 3, 128) _c(Astc4x4x4RGBAUnorm, 4, 4, 4, 128) _c(Astc4x4x4RGBASrgb, 4, 4, 4, 128) +_c(Astc4x4x4RGBAF, 4, 4, 4, 128) _c(Astc5x4x4RGBAUnorm, 5, 4, 4, 128) _c(Astc5x4x4RGBASrgb, 5, 4, 4, 128) +_c(Astc5x4x4RGBAF, 5, 4, 4, 128) _c(Astc5x5x4RGBAUnorm, 5, 5, 4, 128) _c(Astc5x5x4RGBASrgb, 5, 5, 4, 128) +_c(Astc5x5x4RGBAF, 5, 5, 4, 128) _c(Astc5x5x5RGBAUnorm, 5, 5, 5, 128) _c(Astc5x5x5RGBASrgb, 5, 5, 5, 128) +_c(Astc5x5x5RGBAF, 5, 5, 5, 128) _c(Astc6x5x5RGBAUnorm, 6, 5, 5, 128) _c(Astc6x5x5RGBASrgb, 6, 5, 5, 128) +_c(Astc6x5x5RGBAF, 6, 5, 5, 128) _c(Astc6x6x5RGBAUnorm, 6, 6, 5, 128) _c(Astc6x6x5RGBASrgb, 6, 6, 5, 128) +_c(Astc6x6x5RGBAF, 6, 6, 5, 128) _c(Astc6x6x6RGBAUnorm, 6, 6, 6, 128) _c(Astc6x6x6RGBASrgb, 6, 6, 6, 128) +_c(Astc6x6x6RGBAF, 6, 6, 6, 128) /* https://en.wikipedia.org/wiki/PVRTC */ _c(PvrtcRGB2bppUnorm, 8, 4, 1, 64) diff --git a/src/Magnum/PixelFormat.cpp b/src/Magnum/PixelFormat.cpp index d9554f698..2b9e45238 100644 --- a/src/Magnum/PixelFormat.cpp +++ b/src/Magnum/PixelFormat.cpp @@ -193,8 +193,8 @@ constexpr UnsignedShort CompressedBlockData[] { /* Assuming w/h/d/s is never larger than 16 (and never zero), each number has 1 subtracted and packed into four bits, 16 bits in total. The size is supplied in bits, so first divide by eight and then subtract 1. For - the currently ~60 supported format that makes this table to be about 128 - bytes.*/ + the currently ~100 supported formats that makes this table to be about + 256 bytes.*/ #define _c(format, width, height, depth, size) \ ((width - 1) << 12) | \ ((height - 1) << 8) | \ @@ -272,52 +272,76 @@ Debug& operator<<(Debug& debug, const CompressedPixelFormat value) { _c(Etc2RGBA8Srgb) _c(Astc4x4RGBAUnorm) _c(Astc4x4RGBASrgb) + _c(Astc4x4RGBAF) _c(Astc5x4RGBAUnorm) _c(Astc5x4RGBASrgb) + _c(Astc5x4RGBAF) _c(Astc5x5RGBAUnorm) _c(Astc5x5RGBASrgb) + _c(Astc5x5RGBAF) _c(Astc6x5RGBAUnorm) _c(Astc6x5RGBASrgb) + _c(Astc6x5RGBAF) _c(Astc6x6RGBAUnorm) _c(Astc6x6RGBASrgb) + _c(Astc6x6RGBAF) _c(Astc8x5RGBAUnorm) _c(Astc8x5RGBASrgb) + _c(Astc8x5RGBAF) _c(Astc8x6RGBAUnorm) _c(Astc8x6RGBASrgb) + _c(Astc8x6RGBAF) _c(Astc8x8RGBAUnorm) _c(Astc8x8RGBASrgb) + _c(Astc8x8RGBAF) _c(Astc10x5RGBAUnorm) _c(Astc10x5RGBASrgb) + _c(Astc10x5RGBAF) _c(Astc10x6RGBAUnorm) _c(Astc10x6RGBASrgb) + _c(Astc10x6RGBAF) _c(Astc10x8RGBAUnorm) _c(Astc10x8RGBASrgb) + _c(Astc10x8RGBAF) _c(Astc10x10RGBAUnorm) _c(Astc10x10RGBASrgb) + _c(Astc10x10RGBAF) _c(Astc12x10RGBAUnorm) _c(Astc12x10RGBASrgb) + _c(Astc12x10RGBAF) _c(Astc12x12RGBAUnorm) _c(Astc12x12RGBASrgb) + _c(Astc12x12RGBAF) _c(Astc3x3x3RGBAUnorm) _c(Astc3x3x3RGBASrgb) + _c(Astc3x3x3RGBAF) _c(Astc4x3x3RGBAUnorm) _c(Astc4x3x3RGBASrgb) + _c(Astc4x3x3RGBAF) _c(Astc4x4x3RGBAUnorm) _c(Astc4x4x3RGBASrgb) + _c(Astc4x4x3RGBAF) _c(Astc4x4x4RGBAUnorm) _c(Astc4x4x4RGBASrgb) + _c(Astc4x4x4RGBAF) _c(Astc5x4x4RGBAUnorm) _c(Astc5x4x4RGBASrgb) + _c(Astc5x4x4RGBAF) _c(Astc5x5x4RGBAUnorm) _c(Astc5x5x4RGBASrgb) + _c(Astc5x5x4RGBAF) _c(Astc5x5x5RGBAUnorm) _c(Astc5x5x5RGBASrgb) + _c(Astc5x5x5RGBAF) _c(Astc6x5x5RGBAUnorm) _c(Astc6x5x5RGBASrgb) + _c(Astc6x5x5RGBAF) _c(Astc6x6x5RGBAUnorm) _c(Astc6x6x5RGBASrgb) + _c(Astc6x6x5RGBAF) _c(Astc6x6x6RGBAUnorm) _c(Astc6x6x6RGBASrgb) + _c(Astc6x6x6RGBAF) _c(PvrtcRGB2bppUnorm) _c(PvrtcRGB2bppSrgb) _c(PvrtcRGBA2bppUnorm) diff --git a/src/Magnum/PixelFormat.h b/src/Magnum/PixelFormat.h index d02642e61..3c84b5a38 100644 --- a/src/Magnum/PixelFormat.h +++ b/src/Magnum/PixelFormat.h @@ -1090,21 +1090,20 @@ enum class CompressedPixelFormat: UnsignedInt { Etc2RGBA8Srgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 4x4 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x4, * @ref GL::TextureFormat::CompressedRGBAAstc4x4; * @def_vk_keyword{FORMAT_ASTC_4x4_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_4x4_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_4x4_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_4x4_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_4x4_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_4x4_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_4x4_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_4x4_LDR MTLPixelFormatASTC_4x4_HDR} + * @m_keywords{MTLPixelFormatASTC_4x4_LDR} */ Astc4x4RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 4x4 * blocks. * @@ -1118,21 +1117,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x4RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 4x4 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x4, + * @ref GL::TextureFormat::CompressedRGBAAstc4x4; + * @def_vk_keyword{FORMAT_ASTC_4x4_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_4x4_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_4x4_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_4x4_HDR} + */ + Astc4x4RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 5x4 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x4, * @ref GL::TextureFormat::CompressedRGBAAstc5x4; * @def_vk_keyword{FORMAT_ASTC_5x4_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_5x4_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x4_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_5x4_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x4_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_5x4_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x4_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_5x4_LDR MTLPixelFormatASTC_5x4_HDR} + * @m_keywords{MTLPixelFormatASTC_5x4_LDR} */ Astc5x4RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 5x4 * blocks. * @@ -1146,21 +1157,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x4RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 5x4 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x4, + * @ref GL::TextureFormat::CompressedRGBAAstc5x4; + * @def_vk_keyword{FORMAT_ASTC_5x4_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_5x4_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x4_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_5x4_HDR} + */ + Astc5x4RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 5x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x5, * @ref GL::TextureFormat::CompressedRGBAAstc5x5; * @def_vk_keyword{FORMAT_ASTC_5x5_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_5x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x5_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_5x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x5_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_5x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x5_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_5x5_LDR MTLPixelFormatASTC_5x5_HDR} + * @m_keywords{MTLPixelFormatASTC_5x5_LDR} */ Astc5x5RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 5x5 * blocks. * @@ -1174,21 +1197,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x5RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 5x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x5, + * @ref GL::TextureFormat::CompressedRGBAAstc5x5; + * @def_vk_keyword{FORMAT_ASTC_5x5_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_5x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_5x5_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_5x5_HDR} + */ + Astc5x5RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 6x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x5, * @ref GL::TextureFormat::CompressedRGBAAstc6x5; * @def_vk_keyword{FORMAT_ASTC_6x5_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_6x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x5_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_6x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x5_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_6x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x5_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_6x5_LDR MTLPixelFormatASTC_6x5_HDR} + * @m_keywords{MTLPixelFormatASTC_6x5_LDR} */ Astc6x5RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 6x5 * blocks. * @@ -1202,21 +1237,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x5RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 6x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x5, + * @ref GL::TextureFormat::CompressedRGBAAstc6x5; + * @def_vk_keyword{FORMAT_ASTC_6x5_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_6x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x5_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_6x5_HDR} + */ + Astc6x5RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 6x6 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x6, * @ref GL::TextureFormat::CompressedRGBAAstc6x6; * @def_vk_keyword{FORMAT_ASTC_6x6_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_6x6_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x6_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_6x6_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x6_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_6x6_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x6_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_6x6_LDR MTLPixelFormatASTC_6x6_HDR} + * @m_keywords{MTLPixelFormatASTC_6x6_LDR} */ Astc6x6RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 6x6 * blocks. * @@ -1230,21 +1277,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x6RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 6x6 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x6, + * @ref GL::TextureFormat::CompressedRGBAAstc6x6; + * @def_vk_keyword{FORMAT_ASTC_6x6_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_6x6_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_6x6_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_6x6_HDR} + */ + Astc6x6RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 8x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc8x5, * @ref GL::TextureFormat::CompressedRGBAAstc8x5; * @def_vk_keyword{FORMAT_ASTC_8x5_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_8x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x5_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_8x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x5_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_8x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x5_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_8x5_LDR MTLPixelFormatASTC_8x5_HDR} + * @m_keywords{MTLPixelFormatASTC_8x5_LDR} */ Astc8x5RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 8x5 * blocks. * @@ -1258,21 +1317,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc8x5RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 8x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc8x5, + * @ref GL::TextureFormat::CompressedRGBAAstc8x5; + * @def_vk_keyword{FORMAT_ASTC_8x5_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_8x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x5_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_8x5_HDR} + */ + Astc8x5RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 8x6 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc8x6, * @ref GL::TextureFormat::CompressedRGBAAstc8x6; * @def_vk_keyword{FORMAT_ASTC_8x6_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_8x6_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x6_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_8x6_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x6_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_8x6_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x6_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_8x6_LDR MTLPixelFormatASTC_8x6_HDR} + * @m_keywords{MTLPixelFormatASTC_8x6_LDR} */ Astc8x6RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 8x6 * blocks. * @@ -1286,21 +1357,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc8x6RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 8x6 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc8x6, + * @ref GL::TextureFormat::CompressedRGBAAstc8x6; + * @def_vk_keyword{FORMAT_ASTC_8x6_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_8x6_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x6_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_8x6_HDR} + */ + Astc8x6RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 8x8 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc8x8, * @ref GL::TextureFormat::CompressedRGBAAstc8x8; * @def_vk_keyword{FORMAT_ASTC_8x8_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_8x8_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x8_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_8x8_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x8_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_8x8_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x8_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_8x8_LDR MTLPixelFormatASTC_8x8_HDR} + * @m_keywords{MTLPixelFormatASTC_8x8_LDR} */ Astc8x8RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 8x8 * blocks. * @@ -1314,21 +1397,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc8x8RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 8x8 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc8x8, + * @ref GL::TextureFormat::CompressedRGBAAstc8x8; + * @def_vk_keyword{FORMAT_ASTC_8x8_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_8x8_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_8x8_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_8x8_HDR} + */ + Astc8x8RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 10x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x5, * @ref GL::TextureFormat::CompressedRGBAAstc10x5; * @def_vk_keyword{FORMAT_ASTC_10x5_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x5_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x5_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x5_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x5_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_10x5_LDR MTLPixelFormatASTC_10x5_HDR} + * @m_keywords{MTLPixelFormatASTC_10x5_LDR} */ Astc10x5RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 10x5 * blocks. * @@ -1342,21 +1437,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc10x5RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 10x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x5, + * @ref GL::TextureFormat::CompressedRGBAAstc10x5; + * @def_vk_keyword{FORMAT_ASTC_10x5_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x5_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x5_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_10x5_HDR} + */ + Astc10x5RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 10x6 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x6, * @ref GL::TextureFormat::CompressedRGBAAstc10x6; * @def_vk_keyword{FORMAT_ASTC_10x6_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x6_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x6_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x6_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x6_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x6_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x6_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_10x6_LDR MTLPixelFormatASTC_10x6_HDR} + * @m_keywords{MTLPixelFormatASTC_10x6_LDR} */ Astc10x6RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 10x6 * blocks. * @@ -1370,21 +1477,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc10x6RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 10x6 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x6, + * @ref GL::TextureFormat::CompressedRGBAAstc10x6; + * @def_vk_keyword{FORMAT_ASTC_10x6_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x6_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x6_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_10x6_HDR} + */ + Astc10x6RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 10x8 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x8, * @ref GL::TextureFormat::CompressedRGBAAstc10x8; * @def_vk_keyword{FORMAT_ASTC_10x8_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x8_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x8_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x8_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x8_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x8_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x8_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_10x8_LDR MTLPixelFormatASTC_10x8_HDR} + * @m_keywords{MTLPixelFormatASTC_10x8_LDR} */ Astc10x8RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 10x8 * blocks. * @@ -1398,21 +1517,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc10x8RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 10x8 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x8, + * @ref GL::TextureFormat::CompressedRGBAAstc10x8; + * @def_vk_keyword{FORMAT_ASTC_10x8_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x8_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x8_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_10x8_HDR} + */ + Astc10x8RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 10x10 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x10, * @ref GL::TextureFormat::CompressedRGBAAstc10x10; * @def_vk_keyword{FORMAT_ASTC_10x10_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x10_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x10_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_10x10_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x10_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x10_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x10_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_10x10_LDR MTLPixelFormatASTC_10x10_HDR} + * @m_keywords{MTLPixelFormatASTC_10x10_LDR} */ Astc10x10RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 10x10 * blocks. * @@ -1426,21 +1557,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc10x10RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 10x10 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc10x10, + * @ref GL::TextureFormat::CompressedRGBAAstc10x10; + * @def_vk_keyword{FORMAT_ASTC_10x10_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_10x10_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_10x10_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_10x10_HDR} + */ + Astc10x10RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 12x10 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc12x10, * @ref GL::TextureFormat::CompressedRGBAAstc12x10; * @def_vk_keyword{FORMAT_ASTC_12x10_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_12x10_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x10_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_12x10_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x10_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_12x10_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x10_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_12x10_LDR MTLPixelFormatASTC_12x10_HDR} + * @m_keywords{MTLPixelFormatASTC_12x10_LDR} */ Astc12x10RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 12x10 * blocks. * @@ -1454,21 +1597,33 @@ enum class CompressedPixelFormat: UnsignedInt { Astc12x10RGBASrgb, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 12x10 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc12x10, + * @ref GL::TextureFormat::CompressedRGBAAstc12x10; + * @def_vk_keyword{FORMAT_ASTC_12x10_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_12x10_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x10_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_12x10_HDR} + */ + Astc12x10RGBAF, + + /** + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 12x12 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc12x12, * @ref GL::TextureFormat::CompressedRGBAAstc12x12; * @def_vk_keyword{FORMAT_ASTC_12x12_UNORM_BLOCK,Format} or - * @m_class{m-doc-external} [MTLPixelFormatASTC_12x12_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x12_ldr?language=objc) / - * @m_class{m-doc-external} [MTLPixelFormatASTC_12x12_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x12_hdr?language=objc). + * @m_class{m-doc-external} [MTLPixelFormatASTC_12x12_LDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x12_ldr?language=objc). * No equivalent in D3D. - * @m_keywords{MTLPixelFormatASTC_12x12_LDR MTLPixelFormatASTC_12x12_HDR} + * @m_keywords{MTLPixelFormatASTC_12x12_LDR} */ Astc12x12RGBAUnorm, /** - * 2D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 12x12 * blocks. * @@ -1482,7 +1637,20 @@ enum class CompressedPixelFormat: UnsignedInt { Astc12x12RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 2D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 12x12 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc12x12, + * @ref GL::TextureFormat::CompressedRGBAAstc12x12; + * @def_vk_keyword{FORMAT_ASTC_12x12_SFLOAT_BLOCK,Format} or + * @m_class{m-doc-external} [MTLPixelFormatASTC_12x12_HDR](https://developer.apple.com/documentation/metal/mtlpixelformat/mtlpixelformatastc_12x12_hdr?language=objc). + * No equivalent in D3D. + * @m_keywords{MTLPixelFormatASTC_12x12_HDR} + */ + Astc12x12RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 3x3x3 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc3x3x3, @@ -1494,7 +1662,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc3x3x3RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 3x3x3 * blocks. * @@ -1507,7 +1675,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc3x3x3RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 3x3x3 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc3x3x3, + * @ref GL::TextureFormat::CompressedRGBAAstc3x3x3; + * and @def_vk_keyword{FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc3x3x3RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 4x3x3 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x3x3, @@ -1519,7 +1699,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x3x3RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 4x3x3 * blocks. * @@ -1532,7 +1712,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x3x3RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 4x3x3 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x3x3, + * @ref GL::TextureFormat::CompressedRGBAAstc4x3x3; + * and @def_vk_keyword{FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc4x3x3RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 4x4x3 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x4x3, @@ -1544,7 +1736,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x4x3RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 4x4x3 * blocks. * @@ -1557,7 +1749,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x4x3RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 4x4x3 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x4x3, + * @ref GL::TextureFormat::CompressedRGBAAstc4x4x3; + * and @def_vk_keyword{FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc4x4x3RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 4x4x4 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x4x4, @@ -1569,7 +1773,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x4x4RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 4x4x4 * blocks. * @@ -1582,7 +1786,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc4x4x4RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 4x4x4 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc4x4x4, + * @ref GL::TextureFormat::CompressedRGBAAstc4x4x4; + * and @def_vk_keyword{FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc4x4x4RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 5x4x4 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x4x4, @@ -1594,7 +1810,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x4x4RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 5x4x4 * blocks. * @@ -1607,7 +1823,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x4x4RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 5x4x4 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x4x4, + * @ref GL::TextureFormat::CompressedRGBAAstc5x4x4; + * and @def_vk_keyword{FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc5x4x4RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 5x5x4 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x5x4, @@ -1619,7 +1847,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x5x4RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 5x5x4 * blocks. * @@ -1632,7 +1860,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x5x4RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 5x5x4 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x5x4, + * @ref GL::TextureFormat::CompressedRGBAAstc5x5x4; + * and @def_vk_keyword{FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc5x5x4RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 5x5x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x5x5, @@ -1644,7 +1884,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x5x5RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 5x5x5 * blocks. * @@ -1657,7 +1897,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc5x5x5RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 5x5x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc5x5x5, + * @ref GL::TextureFormat::CompressedRGBAAstc5x5x5; + * and @def_vk_keyword{FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc5x5x5RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 6x5x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x5x5, @@ -1669,7 +1921,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x5x5RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 6x5x5 * blocks. * @@ -1682,7 +1934,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x5x5RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 6x5x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x5x5, + * @ref GL::TextureFormat::CompressedRGBAAstc6x5x5; + * and @def_vk_keyword{FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc6x5x5RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 6x6x5 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x6x5, @@ -1694,7 +1958,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x6x5RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 6x6x5 * blocks. * @@ -1707,7 +1971,19 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x6x5RGBASrgb, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 6x6x5 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x6x5, + * @ref GL::TextureFormat::CompressedRGBAAstc6x6x5; + * and @def_vk_keyword{FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc6x6x5RGBAF, + + /** + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed RGBA, normalized unsigned byte with 6x6x6 blocks. * * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x6x6, @@ -1719,7 +1995,7 @@ enum class CompressedPixelFormat: UnsignedInt { Astc6x6x6RGBAUnorm, /** - * 3D [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * 3D LDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) * compressed sRGB + linear alpha, normalized unsigned byte with 6x6x6 * blocks. * @@ -1731,6 +2007,18 @@ enum class CompressedPixelFormat: UnsignedInt { */ Astc6x6x6RGBASrgb, + /** + * 3D HDR [ASTC](https://en.wikipedia.org/wiki/Adaptive_Scalable_Texture_Compression) + * compressed RGBA, half float with 6x6x6 blocks. + * + * Corresponds to @ref GL::CompressedPixelFormat::RGBAAstc6x6x6, + * @ref GL::TextureFormat::CompressedRGBAAstc6x6x6; + * and @def_vk_keyword{FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT,Format} (not a + * part of the spec yet, [only defined in KTX](https://github.com/KhronosGroup/KTX-Specification/pull/97/files)). + * No equivalent in Metal or D3D. + */ + Astc6x6x6RGBAF, + /* See https://github.com/KhronosGroup/Vulkan-Docs/issues/512#issuecomment-307768667 for Vulkan mapping. Ugh. */ diff --git a/src/Magnum/Vk/Implementation/compressedFormatMapping.hpp b/src/Magnum/Vk/Implementation/compressedFormatMapping.hpp index f2dc65e84..7bfe78954 100644 --- a/src/Magnum/Vk/Implementation/compressedFormatMapping.hpp +++ b/src/Magnum/Vk/Implementation/compressedFormatMapping.hpp @@ -53,54 +53,79 @@ _c(Etc2RGBA8Unorm, ETC2_R8G8B8A8_UNORM_BLOCK) _c(Etc2RGBA8Srgb, ETC2_R8G8B8A8_SRGB_BLOCK) _c(Astc4x4RGBAUnorm, ASTC_4x4_UNORM_BLOCK) _c(Astc4x4RGBASrgb, ASTC_4x4_SRGB_BLOCK) +_c(Astc4x4RGBAF, ASTC_4x4_SFLOAT_BLOCK_EXT) _c(Astc5x4RGBAUnorm, ASTC_5x4_UNORM_BLOCK) _c(Astc5x4RGBASrgb, ASTC_5x4_SRGB_BLOCK) +_c(Astc5x4RGBAF, ASTC_5x4_SFLOAT_BLOCK_EXT) _c(Astc5x5RGBAUnorm, ASTC_5x5_UNORM_BLOCK) _c(Astc5x5RGBASrgb, ASTC_5x5_SRGB_BLOCK) +_c(Astc5x5RGBAF, ASTC_5x5_SFLOAT_BLOCK_EXT) _c(Astc6x5RGBAUnorm, ASTC_6x5_UNORM_BLOCK) _c(Astc6x5RGBASrgb, ASTC_6x5_SRGB_BLOCK) +_c(Astc6x5RGBAF, ASTC_6x5_SFLOAT_BLOCK_EXT) _c(Astc6x6RGBAUnorm, ASTC_6x6_UNORM_BLOCK) _c(Astc6x6RGBASrgb, ASTC_6x6_SRGB_BLOCK) +_c(Astc6x6RGBAF, ASTC_6x6_SFLOAT_BLOCK_EXT) _c(Astc8x5RGBAUnorm, ASTC_8x5_UNORM_BLOCK) _c(Astc8x5RGBASrgb, ASTC_8x5_SRGB_BLOCK) +_c(Astc8x5RGBAF, ASTC_8x5_SFLOAT_BLOCK_EXT) _c(Astc8x6RGBAUnorm, ASTC_8x6_UNORM_BLOCK) _c(Astc8x6RGBASrgb, ASTC_8x6_SRGB_BLOCK) +_c(Astc8x6RGBAF, ASTC_8x6_SFLOAT_BLOCK_EXT) _c(Astc8x8RGBAUnorm, ASTC_8x8_UNORM_BLOCK) _c(Astc8x8RGBASrgb, ASTC_8x8_SRGB_BLOCK) +_c(Astc8x8RGBAF, ASTC_8x8_SFLOAT_BLOCK_EXT) _c(Astc10x5RGBAUnorm, ASTC_10x5_UNORM_BLOCK) _c(Astc10x5RGBASrgb, ASTC_10x5_SRGB_BLOCK) +_c(Astc10x5RGBAF, ASTC_10x5_SFLOAT_BLOCK_EXT) _c(Astc10x6RGBAUnorm, ASTC_10x6_UNORM_BLOCK) _c(Astc10x6RGBASrgb, ASTC_10x6_SRGB_BLOCK) +_c(Astc10x6RGBAF, ASTC_10x6_SFLOAT_BLOCK_EXT) _c(Astc10x8RGBAUnorm, ASTC_10x8_UNORM_BLOCK) _c(Astc10x8RGBASrgb, ASTC_10x8_SRGB_BLOCK) +_c(Astc10x8RGBAF, ASTC_10x8_SFLOAT_BLOCK_EXT) _c(Astc10x10RGBAUnorm, ASTC_10x10_UNORM_BLOCK) _c(Astc10x10RGBASrgb, ASTC_10x10_SRGB_BLOCK) +_c(Astc10x10RGBAF, ASTC_10x10_SFLOAT_BLOCK_EXT) _c(Astc12x10RGBAUnorm, ASTC_12x10_UNORM_BLOCK) _c(Astc12x10RGBASrgb, ASTC_12x10_SRGB_BLOCK) +_c(Astc12x10RGBAF, ASTC_12x10_SFLOAT_BLOCK_EXT) _c(Astc12x12RGBAUnorm, ASTC_12x12_UNORM_BLOCK) _c(Astc12x12RGBASrgb, ASTC_12x12_SRGB_BLOCK) +_c(Astc12x12RGBAF, ASTC_12x12_SFLOAT_BLOCK_EXT) /* https://github.com/KhronosGroup/KTX-Specification/pull/97 */ _s(Astc3x3x3RGBAUnorm) //, ASTC_3x3x3_UNORM_BLOCK) _s(Astc3x3x3RGBASrgb) //, ASTC_3x3x3_SRGB_BLOCK) +_s(Astc3x3x3RGBAF) //, ASTC_3x3x3_SFLOAT_BLOCK_EXT) _s(Astc4x3x3RGBAUnorm) //, ASTC_4x3x3_UNORM_BLOCK) _s(Astc4x3x3RGBASrgb) //, ASTC_4x3x3_SRGB_BLOCK) +_s(Astc4x3x3RGBAF) //, ASTC_4x3x3_SFLOAT_BLOCK_EXT) _s(Astc4x4x3RGBAUnorm) //, ASTC_4x4x3_UNORM_BLOCK) _s(Astc4x4x3RGBASrgb) //, ASTC_4x4x3_SRGB_BLOCK) +_s(Astc4x4x3RGBAF) //, ASTC_4x4x3_SFLOAT_BLOCK_EXT) _s(Astc4x4x4RGBAUnorm) //, ASTC_4x4x4_UNORM_BLOCK) _s(Astc4x4x4RGBASrgb) //, ASTC_4x4x4_SRGB_BLOCK) +_s(Astc4x4x4RGBAF) //, ASTC_4x4x4_SFLOAT_BLOCK_EXT) _s(Astc5x4x4RGBAUnorm) //, ASTC_5x4x4_UNORM_BLOCK) _s(Astc5x4x4RGBASrgb) //, ASTC_5x4x4_SRGB_BLOCK) +_s(Astc5x4x4RGBAF) //, ASTC_5x4x4_SFLOAT_BLOCK_EXT) _s(Astc5x5x4RGBAUnorm) //, ASTC_5x5x4_UNORM_BLOCK) _s(Astc5x5x4RGBASrgb) //, ASTC_5x5x4_SRGB_BLOCK) +_s(Astc5x5x4RGBAF) //, ASTC_5x5x4_SFLOAT_BLOCK_EXT) _s(Astc5x5x5RGBAUnorm) //, ASTC_5x5x5_UNORM_BLOCK) _s(Astc5x5x5RGBASrgb) //, ASTC_5x5x5_SRGB_BLOCK) +_s(Astc5x5x5RGBAF) //, ASTC_5x5x5_SFLOAT_BLOCK_EXT) _s(Astc6x5x5RGBAUnorm) //, ASTC_6x5x5_UNORM_BLOCK) _s(Astc6x5x5RGBASrgb) //, ASTC_6x5x5_SRGB_BLOCK) +_s(Astc6x5x5RGBAF) //, ASTC_6x5x5_SFLOAT_BLOCK_EXT) _s(Astc6x6x5RGBAUnorm) //, ASTC_6x6x5_UNORM_BLOCK) _s(Astc6x6x5RGBASrgb) //, ASTC_6x6x5_SRGB_BLOCK) +_s(Astc6x6x5RGBAF) //, ASTC_6x6x5_SFLOAT_BLOCK_EXT) _s(Astc6x6x6RGBAUnorm) //, ASTC_6x6x6_UNORM_BLOCK) _s(Astc6x6x6RGBASrgb) //, ASTC_6x6x6_SRGB_BLOCK) +_s(Astc6x6x6RGBAF) //, ASTC_6x6x6_SFLOAT_BLOCK_EXT) + /* https://github.com/KhronosGroup/Vulkan-Docs/issues/512 */ _c(PvrtcRGB2bppUnorm, PVRTC1_2BPP_UNORM_BLOCK_IMG) _c(PvrtcRGB2bppSrgb, PVRTC1_2BPP_SRGB_BLOCK_IMG) diff --git a/src/MagnumExternal/Vulkan/extensions.txt b/src/MagnumExternal/Vulkan/extensions.txt index 9b1bc5dfd..c76a9bce4 100644 --- a/src/MagnumExternal/Vulkan/extensions.txt +++ b/src/MagnumExternal/Vulkan/extensions.txt @@ -24,6 +24,8 @@ extension KHR_shader_draw_parameters optional extension KHR_storage_buffer_storage_class optional extension KHR_variable_pointers optional +extension EXT_texture_compression_astc_hdr optional + extension IMG_format_pvrtc optional # kate: hl python diff --git a/src/MagnumExternal/Vulkan/flextVk.h b/src/MagnumExternal/Vulkan/flextVk.h index 97258a63c..ea956cada 100644 --- a/src/MagnumExternal/Vulkan/flextVk.h +++ b/src/MagnumExternal/Vulkan/flextVk.h @@ -234,6 +234,11 @@ extern "C" { #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" +/* VK_EXT_texture_compression_astc_hdr */ + +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" + /* VK_IMG_format_pvrtc */ #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 @@ -251,7 +256,7 @@ extern "C" { // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 121 +#define VK_HEADER_VERSION 123 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) @@ -808,6 +813,20 @@ typedef enum { VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, @@ -1326,7 +1345,8 @@ typedef enum { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000 } VkStructureType; typedef enum { @@ -3318,6 +3338,12 @@ typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; +typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { + VkStructureType sType; + const void* pNext; + VkBool32 textureCompressionASTC_HDR; +} VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; + /* I'll bite the bullet and expect that vkCreateInstance(), vkEnumerateInstanceExtensionProperties() and vkEnumerateInstanceLayerProperties() functions can be loaded statically to avoid the need for a global