Browse Source

Add support for remaining unsupported ASTC formats (#2963)

* Add support for remaining unsupported ASTC formats
Add new ASTC formats into pixelformats example and ninja scripts
Rebuild ASTC textures

* Update idl and generate
Move comma in pixelformats

Co-authored-by: Raziel Alphadios <[email protected]>
Raziel Alphadios 3 years ago
parent
commit
c2bc5177b5
34 changed files with 449 additions and 145 deletions
  1. 41 1
      bindings/bf/bgfx.bf
  2. 41 1
      bindings/cs/bgfx.cs
  3. 9 1
      bindings/d/types.d
  4. 25 1
      bindings/zig/bgfx.zig
  5. 29 21
      examples/47-pixelformats/pixelformats.cpp
  6. 20 12
      examples/assets/textures/textures.ninja
  7. BIN
      examples/runtime/textures/texture_compression_astc_10x10.dds
  8. BIN
      examples/runtime/textures/texture_compression_astc_10x5.dds
  9. BIN
      examples/runtime/textures/texture_compression_astc_10x6.dds
  10. BIN
      examples/runtime/textures/texture_compression_astc_10x8.dds
  11. BIN
      examples/runtime/textures/texture_compression_astc_12x10.dds
  12. BIN
      examples/runtime/textures/texture_compression_astc_12x12.dds
  13. BIN
      examples/runtime/textures/texture_compression_astc_4x4.dds
  14. BIN
      examples/runtime/textures/texture_compression_astc_5x4.dds
  15. BIN
      examples/runtime/textures/texture_compression_astc_5x5.dds
  16. BIN
      examples/runtime/textures/texture_compression_astc_6x5.dds
  17. BIN
      examples/runtime/textures/texture_compression_astc_6x6.dds
  18. BIN
      examples/runtime/textures/texture_compression_astc_8x5.dds
  19. BIN
      examples/runtime/textures/texture_compression_astc_8x6.dds
  20. BIN
      examples/runtime/textures/texture_compression_astc_8x8.dds
  21. 8 0
      include/bgfx/bgfx.h
  22. 75 67
      include/bgfx/c99/bgfx.h
  23. 1 1
      include/bgfx/defines.h
  24. 36 28
      scripts/bgfx.idl
  25. 24 0
      scripts/build.ninja
  26. 16 0
      src/bgfx.cpp
  27. 8 0
      src/renderer_d3d11.cpp
  28. 8 0
      src/renderer_d3d12.cpp
  29. 14 6
      src/renderer_d3d9.cpp
  30. 24 0
      src/renderer_gl.cpp
  31. 32 0
      src/renderer_gl.h
  32. 16 0
      src/renderer_mtl.mm
  33. 14 6
      src/renderer_vk.cpp
  34. 8 0
      src/renderer_webgpu.cpp

+ 41 - 1
bindings/bf/bgfx.bf

@@ -1678,11 +1678,21 @@ public static class bgfx
 		/// </summary>
 		ASTC4x4,
 	
+		/// <summary>
+		/// ASTC 5x4 6.40 BPP
+		/// </summary>
+		ASTC5x4,
+	
 		/// <summary>
 		/// ASTC 5x5 5.12 BPP
 		/// </summary>
 		ASTC5x5,
 	
+		/// <summary>
+		/// ASTC 6x5 4.27 BPP
+		/// </summary>
+		ASTC6x5,
+	
 		/// <summary>
 		/// ASTC 6x6 3.56 BPP
 		/// </summary>
@@ -1698,11 +1708,41 @@ public static class bgfx
 		/// </summary>
 		ASTC8x6,
 	
+		/// <summary>
+		/// ASTC 8x8 2.00 BPP
+		/// </summary>
+		ASTC8x8,
+	
 		/// <summary>
 		/// ASTC 10x5 2.56 BPP
 		/// </summary>
 		ASTC10x5,
 	
+		/// <summary>
+		/// ASTC 10x6 2.13 BPP
+		/// </summary>
+		ASTC10x6,
+	
+		/// <summary>
+		/// ASTC 10x8 1.60 BPP
+		/// </summary>
+		ASTC10x8,
+	
+		/// <summary>
+		/// ASTC 10x10 1.28 BPP
+		/// </summary>
+		ASTC10x10,
+	
+		/// <summary>
+		/// ASTC 12x10 1.07 BPP
+		/// </summary>
+		ASTC12x10,
+	
+		/// <summary>
+		/// ASTC 12x12 0.89 BPP
+		/// </summary>
+		ASTC12x12,
+	
 		/// <summary>
 		/// Compressed formats above.
 		/// </summary>
@@ -2045,7 +2085,7 @@ public static class bgfx
 		public uint8 numGPUs;
 		public GPU[4] gpu;
 		public Limits limits;
-		public uint16[88] formats;
+		public uint16[96] formats;
 	}
 	
 	[CRepr]

+ 41 - 1
bindings/cs/bgfx.cs

@@ -1671,11 +1671,21 @@ public static partial class bgfx
 		/// </summary>
 		ASTC4x4,
 	
+		/// <summary>
+		/// ASTC 5x4 6.40 BPP
+		/// </summary>
+		ASTC5x4,
+	
 		/// <summary>
 		/// ASTC 5x5 5.12 BPP
 		/// </summary>
 		ASTC5x5,
 	
+		/// <summary>
+		/// ASTC 6x5 4.27 BPP
+		/// </summary>
+		ASTC6x5,
+	
 		/// <summary>
 		/// ASTC 6x6 3.56 BPP
 		/// </summary>
@@ -1691,11 +1701,41 @@ public static partial class bgfx
 		/// </summary>
 		ASTC8x6,
 	
+		/// <summary>
+		/// ASTC 8x8 2.00 BPP
+		/// </summary>
+		ASTC8x8,
+	
 		/// <summary>
 		/// ASTC 10x5 2.56 BPP
 		/// </summary>
 		ASTC10x5,
 	
+		/// <summary>
+		/// ASTC 10x6 2.13 BPP
+		/// </summary>
+		ASTC10x6,
+	
+		/// <summary>
+		/// ASTC 10x8 1.60 BPP
+		/// </summary>
+		ASTC10x8,
+	
+		/// <summary>
+		/// ASTC 10x10 1.28 BPP
+		/// </summary>
+		ASTC10x10,
+	
+		/// <summary>
+		/// ASTC 12x10 1.07 BPP
+		/// </summary>
+		ASTC12x10,
+	
+		/// <summary>
+		/// ASTC 12x12 0.89 BPP
+		/// </summary>
+		ASTC12x12,
+	
 		/// <summary>
 		/// Compressed formats above.
 		/// </summary>
@@ -2027,7 +2067,7 @@ public static partial class bgfx
 		public byte numGPUs;
 		public fixed uint gpu[4];
 		public Limits limits;
-		public fixed ushort formats[88];
+		public fixed ushort formats[96];
 	}
 	
 	public unsafe struct InternalData

+ 9 - 1
bindings/d/types.d

@@ -18,7 +18,7 @@ enum expandEnum(EnumType, string fqnEnumType = EnumType.stringof) = (){
 
 extern(C) @nogc nothrow:
 
-enum uint BGFX_API_VERSION = 117;
+enum uint BGFX_API_VERSION = 118;
 
 alias bgfx_view_id_t = ushort;
 
@@ -570,11 +570,19 @@ enum bgfx_texture_format_t
 	BGFX_TEXTURE_FORMAT_ATCE, /// ATCE RGBA 8 BPP explicit alpha
 	BGFX_TEXTURE_FORMAT_ATCI, /// ATCI RGBA 8 BPP interpolated alpha
 	BGFX_TEXTURE_FORMAT_ASTC4X4, /// ASTC 4x4 8.0 BPP
+	BGFX_TEXTURE_FORMAT_ASTC5X4, /// ASTC 5x4 6.40 BPP
 	BGFX_TEXTURE_FORMAT_ASTC5X5, /// ASTC 5x5 5.12 BPP
+	BGFX_TEXTURE_FORMAT_ASTC6X5, /// ASTC 6x5 4.27 BPP
 	BGFX_TEXTURE_FORMAT_ASTC6X6, /// ASTC 6x6 3.56 BPP
 	BGFX_TEXTURE_FORMAT_ASTC8X5, /// ASTC 8x5 3.20 BPP
 	BGFX_TEXTURE_FORMAT_ASTC8X6, /// ASTC 8x6 2.67 BPP
+	BGFX_TEXTURE_FORMAT_ASTC8X8, /// ASTC 8x8 2.00 BPP
 	BGFX_TEXTURE_FORMAT_ASTC10X5, /// ASTC 10x5 2.56 BPP
+	BGFX_TEXTURE_FORMAT_ASTC10X6, /// ASTC 10x6 2.13 BPP
+	BGFX_TEXTURE_FORMAT_ASTC10X8, /// ASTC 10x8 1.60 BPP
+	BGFX_TEXTURE_FORMAT_ASTC10X10, /// ASTC 10x10 1.28 BPP
+	BGFX_TEXTURE_FORMAT_ASTC12X10, /// ASTC 12x10 1.07 BPP
+	BGFX_TEXTURE_FORMAT_ASTC12X12, /// ASTC 12x12 0.89 BPP
 	BGFX_TEXTURE_FORMAT_UNKNOWN, /// Compressed formats above.
 	BGFX_TEXTURE_FORMAT_R1,
 	BGFX_TEXTURE_FORMAT_A8,

+ 25 - 1
bindings/zig/bgfx.zig

@@ -1024,9 +1024,15 @@ pub const TextureFormat = enum(c_int) {
     /// ASTC 4x4 8.0 BPP
     ASTC4x4,
 
+    /// ASTC 5x4 6.40 BPP
+    ASTC5x4,
+
     /// ASTC 5x5 5.12 BPP
     ASTC5x5,
 
+    /// ASTC 6x5 4.27 BPP
+    ASTC6x5,
+
     /// ASTC 6x6 3.56 BPP
     ASTC6x6,
 
@@ -1036,9 +1042,27 @@ pub const TextureFormat = enum(c_int) {
     /// ASTC 8x6 2.67 BPP
     ASTC8x6,
 
+    /// ASTC 8x8 2.00 BPP
+    ASTC8x8,
+
     /// ASTC 10x5 2.56 BPP
     ASTC10x5,
 
+    /// ASTC 10x6 2.13 BPP
+    ASTC10x6,
+
+    /// ASTC 10x8 1.60 BPP
+    ASTC10x8,
+
+    /// ASTC 10x10 1.28 BPP
+    ASTC10x10,
+
+    /// ASTC 12x10 1.07 BPP
+    ASTC12x10,
+
+    /// ASTC 12x12 0.89 BPP
+    ASTC12x12,
+
     /// Compressed formats above.
     Unknown,
     R1,
@@ -1291,7 +1315,7 @@ pub const Caps = extern struct {
         numGPUs: u8,
         gpu: [4]GPU,
         limits: Limits,
-        formats: [88]u16,
+        formats: [96]u16,
     };
 
     pub const InternalData = extern struct {

+ 29 - 21
examples/47-pixelformats/pixelformats.cpp

@@ -470,27 +470,35 @@ public:
 		m_textureSets.push_back(generateTextureSetFromFile("textures/pf_uv_filtering_test.dds") );
 		const char* textureCompressionSetFiles[] =
 		{
-			  "textures/texture_compression_astc_10x5.dds"
-			, "textures/texture_compression_astc_4x4.dds"
-			, "textures/texture_compression_astc_5x5.dds"
-			, "textures/texture_compression_astc_6x6.dds"
-			, "textures/texture_compression_astc_8x5.dds"
-			, "textures/texture_compression_astc_8x6.dds"
-			, "textures/texture_compression_atc.dds"
-			, "textures/texture_compression_atce.dds"
-			, "textures/texture_compression_atci.dds"
-			, "textures/texture_compression_bc1.ktx"
-			, "textures/texture_compression_bc2.ktx"
-			, "textures/texture_compression_bc3.ktx"
-			, "textures/texture_compression_bc7.ktx"
-			, "textures/texture_compression_etc1.ktx"
-			, "textures/texture_compression_etc2.ktx"
-			, "textures/texture_compression_ptc12.pvr"
-			, "textures/texture_compression_ptc14.pvr"
-			, "textures/texture_compression_ptc22.pvr"
-			, "textures/texture_compression_ptc24.pvr"
-			, "textures/texture_compression_rgba8.dds"
-			, nullptr
+			"textures/texture_compression_astc_4x4.dds",
+			"textures/texture_compression_astc_5x4.dds",
+			"textures/texture_compression_astc_5x5.dds",
+			"textures/texture_compression_astc_6x5.dds",
+			"textures/texture_compression_astc_6x6.dds",
+			"textures/texture_compression_astc_8x5.dds",
+			"textures/texture_compression_astc_8x6.dds",
+			"textures/texture_compression_astc_8x8.dds",
+			"textures/texture_compression_astc_10x5.dds",
+			"textures/texture_compression_astc_10x6.dds",
+			"textures/texture_compression_astc_10x8.dds",
+			"textures/texture_compression_astc_10x10.dds",
+			"textures/texture_compression_astc_12x10.dds",
+			"textures/texture_compression_astc_12x12.dds",
+			"textures/texture_compression_atc.dds",
+			"textures/texture_compression_atce.dds",
+			"textures/texture_compression_atci.dds",
+			"textures/texture_compression_bc1.ktx",
+			"textures/texture_compression_bc2.ktx",
+			"textures/texture_compression_bc3.ktx",
+			"textures/texture_compression_bc7.ktx",
+			"textures/texture_compression_etc1.ktx",
+			"textures/texture_compression_etc2.ktx",
+			"textures/texture_compression_ptc12.pvr",
+			"textures/texture_compression_ptc14.pvr",
+			"textures/texture_compression_ptc22.pvr",
+			"textures/texture_compression_ptc24.pvr",
+			"textures/texture_compression_rgba8.dds",
+			nullptr
 		};
 		m_textureSets.push_back(generateTextureSetFromFileSet("texture_compression_* set", textureCompressionSetFiles));
 

+ 20 - 12
examples/assets/textures/textures.ninja

@@ -1,17 +1,25 @@
 textures = $pwd/../../runtime/textures
 
-build $textures/texture_compression_bc1.ktx:  texturec_bc1  $pwd/texture-compression-test.png
-build $textures/texture_compression_bc2.ktx:  texturec_bc2  $pwd/texture-compression-test.png
-build $textures/texture_compression_bc3.ktx:  texturec_bc3  $pwd/texture-compression-test.png
-build $textures/texture_compression_bc7.ktx:  texturec_bc7  $pwd/texture-compression-test.png
-build $textures/texture_compression_astc_4x4.dds:  texturec_astc4x4  $pwd/texture-compression-test.png
-build $textures/texture_compression_astc_5x5.dds:  texturec_astc5x5  $pwd/texture-compression-test.png
-build $textures/texture_compression_astc_6x6.dds:  texturec_astc6x6  $pwd/texture-compression-test.png
-build $textures/texture_compression_astc_8x5.dds:  texturec_astc8x5  $pwd/texture-compression-test.png
-build $textures/texture_compression_astc_8x6.dds:  texturec_astc8x6  $pwd/texture-compression-test.png
-build $textures/texture_compression_astc_10x5.dds: texturec_astc10x5 $pwd/texture-compression-test.png
-build $textures/texture_compression_etc1.ktx: texturec_etc1 $pwd/texture-compression-test.png
-build $textures/texture_compression_etc2.ktx: texturec_etc2 $pwd/texture-compression-test.png
+build $textures/texture_compression_bc1.ktx:        texturec_bc1  $pwd/texture-compression-test.png
+build $textures/texture_compression_bc2.ktx:        texturec_bc2  $pwd/texture-compression-test.png
+build $textures/texture_compression_bc3.ktx:        texturec_bc3  $pwd/texture-compression-test.png
+build $textures/texture_compression_bc7.ktx:        texturec_bc7  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_4x4.dds:   texturec_astc4x4  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_5x4.dds:   texturec_astc5x4  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_5x5.dds:   texturec_astc5x5  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_6x5.dds:   texturec_astc6x5  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_6x6.dds:   texturec_astc6x6  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_8x5.dds:   texturec_astc8x5  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_8x6.dds:   texturec_astc8x6  $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_8x8.dds:   texturec_astc8x8 $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_10x5.dds:  texturec_astc10x5 $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_10x6.dds:  texturec_astc10x6 $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_10x8.dds:  texturec_astc10x8 $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_10x10.dds: texturec_astc10x10 $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_12x10.dds: texturec_astc12x10 $pwd/texture-compression-test.png
+build $textures/texture_compression_astc_12x12.dds: texturec_astc12x12 $pwd/texture-compression-test.png
+build $textures/texture_compression_etc1.ktx:       texturec_etc1 $pwd/texture-compression-test.png
+build $textures/texture_compression_etc2.ktx:       texturec_etc2 $pwd/texture-compression-test.png
 
 build $textures/parallax-d.ktx: texturec_diffuse  $pwd/parallax-d.png
 build $textures/parallax-n.ktx: texturec_normal   $pwd/parallax-n.png

BIN
examples/runtime/textures/texture_compression_astc_10x10.dds


BIN
examples/runtime/textures/texture_compression_astc_10x5.dds


BIN
examples/runtime/textures/texture_compression_astc_10x6.dds


BIN
examples/runtime/textures/texture_compression_astc_10x8.dds


BIN
examples/runtime/textures/texture_compression_astc_12x10.dds


BIN
examples/runtime/textures/texture_compression_astc_12x12.dds


BIN
examples/runtime/textures/texture_compression_astc_4x4.dds


BIN
examples/runtime/textures/texture_compression_astc_5x4.dds


BIN
examples/runtime/textures/texture_compression_astc_5x5.dds


BIN
examples/runtime/textures/texture_compression_astc_6x5.dds


BIN
examples/runtime/textures/texture_compression_astc_6x6.dds


BIN
examples/runtime/textures/texture_compression_astc_8x5.dds


BIN
examples/runtime/textures/texture_compression_astc_8x6.dds


BIN
examples/runtime/textures/texture_compression_astc_8x8.dds


+ 8 - 0
include/bgfx/bgfx.h

@@ -180,11 +180,19 @@ namespace bgfx
 			ATCE,         //!< ATCE RGBA 8 BPP explicit alpha
 			ATCI,         //!< ATCI RGBA 8 BPP interpolated alpha
 			ASTC4x4,      //!< ASTC 4x4 8.0 BPP
+			ASTC5x4,	  //!< ASTC 5x4 6.40 BPP
 			ASTC5x5,      //!< ASTC 5x5 5.12 BPP
+			ASTC6x5,	  //!< ASTC 6x5 4.27 BPP
 			ASTC6x6,      //!< ASTC 6x6 3.56 BPP
 			ASTC8x5,      //!< ASTC 8x5 3.20 BPP
 			ASTC8x6,      //!< ASTC 8x6 2.67 BPP
+			ASTC8x8,	  //!< ASTC 8x8 2.00 BPP
 			ASTC10x5,     //!< ASTC 10x5 2.56 BPP
+			ASTC10x6,	  //!< ASTC 10x6 2.13 BPP
+			ASTC10x8,	  //!< ASTC 10x8 1.60 BPP
+			ASTC10x10,	  //!< ASTC 10x10 1.28 BPP
+			ASTC12x10,	  //!< ASTC 12x10 1.07 BPP
+			ASTC12x12,	  //!< ASTC 12x12 0.89 BPP
 
 			Unknown,      // Compressed formats above.
 

+ 75 - 67
include/bgfx/c99/bgfx.h

@@ -194,73 +194,81 @@ typedef enum bgfx_texture_format
     BGFX_TEXTURE_FORMAT_ATCE,                 /** (18) ATCE RGBA 8 BPP explicit alpha */
     BGFX_TEXTURE_FORMAT_ATCI,                 /** (19) ATCI RGBA 8 BPP interpolated alpha */
     BGFX_TEXTURE_FORMAT_ASTC4X4,              /** (20) ASTC 4x4 8.0 BPP               */
-    BGFX_TEXTURE_FORMAT_ASTC5X5,              /** (21) ASTC 5x5 5.12 BPP              */
-    BGFX_TEXTURE_FORMAT_ASTC6X6,              /** (22) ASTC 6x6 3.56 BPP              */
-    BGFX_TEXTURE_FORMAT_ASTC8X5,              /** (23) ASTC 8x5 3.20 BPP              */
-    BGFX_TEXTURE_FORMAT_ASTC8X6,              /** (24) ASTC 8x6 2.67 BPP              */
-    BGFX_TEXTURE_FORMAT_ASTC10X5,             /** (25) ASTC 10x5 2.56 BPP             */
-    BGFX_TEXTURE_FORMAT_UNKNOWN,              /** (26) Compressed formats above.      */
-    BGFX_TEXTURE_FORMAT_R1,                   /** (27)                                */
-    BGFX_TEXTURE_FORMAT_A8,                   /** (28)                                */
-    BGFX_TEXTURE_FORMAT_R8,                   /** (29)                                */
-    BGFX_TEXTURE_FORMAT_R8I,                  /** (30)                                */
-    BGFX_TEXTURE_FORMAT_R8U,                  /** (31)                                */
-    BGFX_TEXTURE_FORMAT_R8S,                  /** (32)                                */
-    BGFX_TEXTURE_FORMAT_R16,                  /** (33)                                */
-    BGFX_TEXTURE_FORMAT_R16I,                 /** (34)                                */
-    BGFX_TEXTURE_FORMAT_R16U,                 /** (35)                                */
-    BGFX_TEXTURE_FORMAT_R16F,                 /** (36)                                */
-    BGFX_TEXTURE_FORMAT_R16S,                 /** (37)                                */
-    BGFX_TEXTURE_FORMAT_R32I,                 /** (38)                                */
-    BGFX_TEXTURE_FORMAT_R32U,                 /** (39)                                */
-    BGFX_TEXTURE_FORMAT_R32F,                 /** (40)                                */
-    BGFX_TEXTURE_FORMAT_RG8,                  /** (41)                                */
-    BGFX_TEXTURE_FORMAT_RG8I,                 /** (42)                                */
-    BGFX_TEXTURE_FORMAT_RG8U,                 /** (43)                                */
-    BGFX_TEXTURE_FORMAT_RG8S,                 /** (44)                                */
-    BGFX_TEXTURE_FORMAT_RG16,                 /** (45)                                */
-    BGFX_TEXTURE_FORMAT_RG16I,                /** (46)                                */
-    BGFX_TEXTURE_FORMAT_RG16U,                /** (47)                                */
-    BGFX_TEXTURE_FORMAT_RG16F,                /** (48)                                */
-    BGFX_TEXTURE_FORMAT_RG16S,                /** (49)                                */
-    BGFX_TEXTURE_FORMAT_RG32I,                /** (50)                                */
-    BGFX_TEXTURE_FORMAT_RG32U,                /** (51)                                */
-    BGFX_TEXTURE_FORMAT_RG32F,                /** (52)                                */
-    BGFX_TEXTURE_FORMAT_RGB8,                 /** (53)                                */
-    BGFX_TEXTURE_FORMAT_RGB8I,                /** (54)                                */
-    BGFX_TEXTURE_FORMAT_RGB8U,                /** (55)                                */
-    BGFX_TEXTURE_FORMAT_RGB8S,                /** (56)                                */
-    BGFX_TEXTURE_FORMAT_RGB9E5F,              /** (57)                                */
-    BGFX_TEXTURE_FORMAT_BGRA8,                /** (58)                                */
-    BGFX_TEXTURE_FORMAT_RGBA8,                /** (59)                                */
-    BGFX_TEXTURE_FORMAT_RGBA8I,               /** (60)                                */
-    BGFX_TEXTURE_FORMAT_RGBA8U,               /** (61)                                */
-    BGFX_TEXTURE_FORMAT_RGBA8S,               /** (62)                                */
-    BGFX_TEXTURE_FORMAT_RGBA16,               /** (63)                                */
-    BGFX_TEXTURE_FORMAT_RGBA16I,              /** (64)                                */
-    BGFX_TEXTURE_FORMAT_RGBA16U,              /** (65)                                */
-    BGFX_TEXTURE_FORMAT_RGBA16F,              /** (66)                                */
-    BGFX_TEXTURE_FORMAT_RGBA16S,              /** (67)                                */
-    BGFX_TEXTURE_FORMAT_RGBA32I,              /** (68)                                */
-    BGFX_TEXTURE_FORMAT_RGBA32U,              /** (69)                                */
-    BGFX_TEXTURE_FORMAT_RGBA32F,              /** (70)                                */
-    BGFX_TEXTURE_FORMAT_B5G6R5,               /** (71)                                */
-    BGFX_TEXTURE_FORMAT_R5G6B5,               /** (72)                                */
-    BGFX_TEXTURE_FORMAT_BGRA4,                /** (73)                                */
-    BGFX_TEXTURE_FORMAT_RGBA4,                /** (74)                                */
-    BGFX_TEXTURE_FORMAT_BGR5A1,               /** (75)                                */
-    BGFX_TEXTURE_FORMAT_RGB5A1,               /** (76)                                */
-    BGFX_TEXTURE_FORMAT_RGB10A2,              /** (77)                                */
-    BGFX_TEXTURE_FORMAT_RG11B10F,             /** (78)                                */
-    BGFX_TEXTURE_FORMAT_UNKNOWNDEPTH,         /** (79) Depth formats below.           */
-    BGFX_TEXTURE_FORMAT_D16,                  /** (80)                                */
-    BGFX_TEXTURE_FORMAT_D24,                  /** (81)                                */
-    BGFX_TEXTURE_FORMAT_D24S8,                /** (82)                                */
-    BGFX_TEXTURE_FORMAT_D32,                  /** (83)                                */
-    BGFX_TEXTURE_FORMAT_D16F,                 /** (84)                                */
-    BGFX_TEXTURE_FORMAT_D24F,                 /** (85)                                */
-    BGFX_TEXTURE_FORMAT_D32F,                 /** (86)                                */
-    BGFX_TEXTURE_FORMAT_D0S8,                 /** (87)                                */
+    BGFX_TEXTURE_FORMAT_ASTC5X4,              /** (21) ASTC 5x4 6.40 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC5X5,              /** (22) ASTC 5x5 5.12 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC6X5,              /** (23) ASTC 6x5 4.27 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC6X6,              /** (24) ASTC 6x6 3.56 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC8X5,              /** (25) ASTC 8x5 3.20 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC8X6,              /** (26) ASTC 8x6 2.67 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC8X8,              /** (27) ASTC 8x8 2.00 BPP              */
+    BGFX_TEXTURE_FORMAT_ASTC10X5,             /** (28) ASTC 10x5 2.56 BPP             */
+    BGFX_TEXTURE_FORMAT_ASTC10X6,             /** (29) ASTC 10x6 2.13 BPP             */
+    BGFX_TEXTURE_FORMAT_ASTC10X8,             /** (30) ASTC 10x8 1.60 BPP             */
+    BGFX_TEXTURE_FORMAT_ASTC10X10,            /** (31) ASTC 10x10 1.28 BPP            */
+    BGFX_TEXTURE_FORMAT_ASTC12X10,            /** (32) ASTC 12x10 1.07 BPP            */
+    BGFX_TEXTURE_FORMAT_ASTC12X12,            /** (33) ASTC 12x12 0.89 BPP            */
+    BGFX_TEXTURE_FORMAT_UNKNOWN,              /** (34) Compressed formats above.      */
+    BGFX_TEXTURE_FORMAT_R1,                   /** (35)                                */
+    BGFX_TEXTURE_FORMAT_A8,                   /** (36)                                */
+    BGFX_TEXTURE_FORMAT_R8,                   /** (37)                                */
+    BGFX_TEXTURE_FORMAT_R8I,                  /** (38)                                */
+    BGFX_TEXTURE_FORMAT_R8U,                  /** (39)                                */
+    BGFX_TEXTURE_FORMAT_R8S,                  /** (40)                                */
+    BGFX_TEXTURE_FORMAT_R16,                  /** (41)                                */
+    BGFX_TEXTURE_FORMAT_R16I,                 /** (42)                                */
+    BGFX_TEXTURE_FORMAT_R16U,                 /** (43)                                */
+    BGFX_TEXTURE_FORMAT_R16F,                 /** (44)                                */
+    BGFX_TEXTURE_FORMAT_R16S,                 /** (45)                                */
+    BGFX_TEXTURE_FORMAT_R32I,                 /** (46)                                */
+    BGFX_TEXTURE_FORMAT_R32U,                 /** (47)                                */
+    BGFX_TEXTURE_FORMAT_R32F,                 /** (48)                                */
+    BGFX_TEXTURE_FORMAT_RG8,                  /** (49)                                */
+    BGFX_TEXTURE_FORMAT_RG8I,                 /** (50)                                */
+    BGFX_TEXTURE_FORMAT_RG8U,                 /** (51)                                */
+    BGFX_TEXTURE_FORMAT_RG8S,                 /** (52)                                */
+    BGFX_TEXTURE_FORMAT_RG16,                 /** (53)                                */
+    BGFX_TEXTURE_FORMAT_RG16I,                /** (54)                                */
+    BGFX_TEXTURE_FORMAT_RG16U,                /** (55)                                */
+    BGFX_TEXTURE_FORMAT_RG16F,                /** (56)                                */
+    BGFX_TEXTURE_FORMAT_RG16S,                /** (57)                                */
+    BGFX_TEXTURE_FORMAT_RG32I,                /** (58)                                */
+    BGFX_TEXTURE_FORMAT_RG32U,                /** (59)                                */
+    BGFX_TEXTURE_FORMAT_RG32F,                /** (60)                                */
+    BGFX_TEXTURE_FORMAT_RGB8,                 /** (61)                                */
+    BGFX_TEXTURE_FORMAT_RGB8I,                /** (62)                                */
+    BGFX_TEXTURE_FORMAT_RGB8U,                /** (63)                                */
+    BGFX_TEXTURE_FORMAT_RGB8S,                /** (64)                                */
+    BGFX_TEXTURE_FORMAT_RGB9E5F,              /** (65)                                */
+    BGFX_TEXTURE_FORMAT_BGRA8,                /** (66)                                */
+    BGFX_TEXTURE_FORMAT_RGBA8,                /** (67)                                */
+    BGFX_TEXTURE_FORMAT_RGBA8I,               /** (68)                                */
+    BGFX_TEXTURE_FORMAT_RGBA8U,               /** (69)                                */
+    BGFX_TEXTURE_FORMAT_RGBA8S,               /** (70)                                */
+    BGFX_TEXTURE_FORMAT_RGBA16,               /** (71)                                */
+    BGFX_TEXTURE_FORMAT_RGBA16I,              /** (72)                                */
+    BGFX_TEXTURE_FORMAT_RGBA16U,              /** (73)                                */
+    BGFX_TEXTURE_FORMAT_RGBA16F,              /** (74)                                */
+    BGFX_TEXTURE_FORMAT_RGBA16S,              /** (75)                                */
+    BGFX_TEXTURE_FORMAT_RGBA32I,              /** (76)                                */
+    BGFX_TEXTURE_FORMAT_RGBA32U,              /** (77)                                */
+    BGFX_TEXTURE_FORMAT_RGBA32F,              /** (78)                                */
+    BGFX_TEXTURE_FORMAT_B5G6R5,               /** (79)                                */
+    BGFX_TEXTURE_FORMAT_R5G6B5,               /** (80)                                */
+    BGFX_TEXTURE_FORMAT_BGRA4,                /** (81)                                */
+    BGFX_TEXTURE_FORMAT_RGBA4,                /** (82)                                */
+    BGFX_TEXTURE_FORMAT_BGR5A1,               /** (83)                                */
+    BGFX_TEXTURE_FORMAT_RGB5A1,               /** (84)                                */
+    BGFX_TEXTURE_FORMAT_RGB10A2,              /** (85)                                */
+    BGFX_TEXTURE_FORMAT_RG11B10F,             /** (86)                                */
+    BGFX_TEXTURE_FORMAT_UNKNOWNDEPTH,         /** (87) Depth formats below.           */
+    BGFX_TEXTURE_FORMAT_D16,                  /** (88)                                */
+    BGFX_TEXTURE_FORMAT_D24,                  /** (89)                                */
+    BGFX_TEXTURE_FORMAT_D24S8,                /** (90)                                */
+    BGFX_TEXTURE_FORMAT_D32,                  /** (91)                                */
+    BGFX_TEXTURE_FORMAT_D16F,                 /** (92)                                */
+    BGFX_TEXTURE_FORMAT_D24F,                 /** (93)                                */
+    BGFX_TEXTURE_FORMAT_D32F,                 /** (94)                                */
+    BGFX_TEXTURE_FORMAT_D0S8,                 /** (95)                                */
 
     BGFX_TEXTURE_FORMAT_COUNT
 

+ 1 - 1
include/bgfx/defines.h

@@ -15,7 +15,7 @@
 #ifndef BGFX_DEFINES_H_HEADER_GUARD
 #define BGFX_DEFINES_H_HEADER_GUARD
 
-#define BGFX_API_VERSION UINT32_C(117)
+#define BGFX_API_VERSION UINT32_C(118)
 
 /**
  * Color RGB/alpha/depth write. When it's not specified write will be disabled.

+ 36 - 28
scripts/bgfx.idl

@@ -1,7 +1,7 @@
 -- vim: syntax=lua
 -- bgfx interface
 
-version(117)
+version(118)
 
 typedef "bool"
 typedef "char"
@@ -523,33 +523,41 @@ enum.AttribType { comment = "Attribute types:" }
 ---
 --- @attention Availability depends on Caps (see: formats).
 enum.TextureFormat { comment = "Texture formats:" }
-	.BC1      --- DXT1 R5G6B5A1
-	.BC2      --- DXT3 R5G6B5A4
-	.BC3      --- DXT5 R5G6B5A8
-	.BC4      --- LATC1/ATI1 R8
-	.BC5      --- LATC2/ATI2 RG8
-	.BC6H     --- BC6H RGB16F
-	.BC7      --- BC7 RGB 4-7 bits per color channel, 0-8 bits alpha
-	.ETC1     --- ETC1 RGB8
-	.ETC2     --- ETC2 RGB8
-	.ETC2A    --- ETC2 RGBA8
-	.ETC2A1   --- ETC2 RGB8A1
-	.PTC12    --- PVRTC1 RGB 2BPP
-	.PTC14    --- PVRTC1 RGB 4BPP
-	.PTC12A   --- PVRTC1 RGBA 2BPP
-	.PTC14A   --- PVRTC1 RGBA 4BPP
-	.PTC22    --- PVRTC2 RGBA 2BPP
-	.PTC24    --- PVRTC2 RGBA 4BPP
-	.ATC      --- ATC RGB 4BPP
-	.ATCE     --- ATCE RGBA 8 BPP explicit alpha
-	.ATCI     --- ATCI RGBA 8 BPP interpolated alpha
-	.ASTC4x4  --- ASTC 4x4 8.0 BPP
-	.ASTC5x5  --- ASTC 5x5 5.12 BPP
-	.ASTC6x6  --- ASTC 6x6 3.56 BPP
-	.ASTC8x5  --- ASTC 8x5 3.20 BPP
-	.ASTC8x6  --- ASTC 8x6 2.67 BPP
-	.ASTC10x5 --- ASTC 10x5 2.56 BPP
-	.Unknown  --- Compressed formats above.
+	.BC1       --- DXT1 R5G6B5A1
+	.BC2       --- DXT3 R5G6B5A4
+	.BC3       --- DXT5 R5G6B5A8
+	.BC4       --- LATC1/ATI1 R8
+	.BC5       --- LATC2/ATI2 RG8
+	.BC6H      --- BC6H RGB16F
+	.BC7       --- BC7 RGB 4-7 bits per color channel, 0-8 bits alpha
+	.ETC1      --- ETC1 RGB8
+	.ETC2      --- ETC2 RGB8
+	.ETC2A     --- ETC2 RGBA8
+	.ETC2A1    --- ETC2 RGB8A1
+	.PTC12     --- PVRTC1 RGB 2BPP
+	.PTC14     --- PVRTC1 RGB 4BPP
+	.PTC12A    --- PVRTC1 RGBA 2BPP
+	.PTC14A    --- PVRTC1 RGBA 4BPP
+	.PTC22     --- PVRTC2 RGBA 2BPP
+	.PTC24     --- PVRTC2 RGBA 4BPP
+	.ATC       --- ATC RGB 4BPP
+	.ATCE      --- ATCE RGBA 8 BPP explicit alpha
+	.ATCI      --- ATCI RGBA 8 BPP interpolated alpha
+	.ASTC4x4   --- ASTC 4x4 8.0 BPP
+	.ASTC5x4   --- ASTC 5x4 6.40 BPP
+	.ASTC5x5   --- ASTC 5x5 5.12 BPP
+	.ASTC6x5   --- ASTC 6x5 4.27 BPP
+	.ASTC6x6   --- ASTC 6x6 3.56 BPP
+	.ASTC8x5   --- ASTC 8x5 3.20 BPP
+	.ASTC8x6   --- ASTC 8x6 2.67 BPP
+	.ASTC8x8   --- ASTC 8x8 2.00 BPP
+	.ASTC10x5  --- ASTC 10x5 2.56 BPP
+	.ASTC10x6  --- ASTC 10x6 2.13 BPP
+	.ASTC10x8  --- ASTC 10x8 1.60 BPP
+	.ASTC10x10 --- ASTC 10x10 1.28 BPP
+	.ASTC12x10 --- ASTC 12x10 1.07 BPP
+	.ASTC12x12 --- ASTC 12x12 0.89 BPP
+	.Unknown   --- Compressed formats above.
 	.R1
 	.A8
 	.R8

+ 24 - 0
scripts/build.ninja

@@ -33,9 +33,15 @@ rule texturec_bc7
 rule texturec_astc4x4
     command = texturec -f $in -o $out -t astc4x4 -m
 
+rule texturec_astc5x4
+    command = texturec -f $in -o $out -t astc5x4 -m
+
 rule texturec_astc5x5
     command = texturec -f $in -o $out -t astc5x5 -m
 
+rule texturec_astc6x5
+    command = texturec -f $in -o $out -t astc6x5 -m
+
 rule texturec_astc6x6
     command = texturec -f $in -o $out -t astc6x6 -m
 
@@ -48,6 +54,24 @@ rule texturec_astc8x6
 rule texturec_astc10x5
     command = texturec -f $in -o $out -t astc10x5 -m
 
+rule texturec_astc10x6
+    command = texturec -f $in -o $out -t astc10x6 -m
+
+rule texturec_astc8x8
+    command = texturec -f $in -o $out -t astc8x8 -m
+
+rule texturec_astc10x8
+    command = texturec -f $in -o $out -t astc10x8 -m
+
+rule texturec_astc10x10
+    command = texturec -f $in -o $out -t astc10x10 -m
+
+rule texturec_astc12x10
+    command = texturec -f $in -o $out -t astc12x10 -m
+
+rule texturec_astc12x12
+    command = texturec -f $in -o $out -t astc12x12 -m
+
 rule texturec_etc1
     command = texturec -f $in -o $out -t etc1 -m
 

+ 16 - 0
src/bgfx.cpp

@@ -1868,11 +1868,19 @@ namespace bgfx
 		TextureFormat::ATCE,
 		TextureFormat::ATCI,
 		TextureFormat::ASTC4x4,
+		TextureFormat::ASTC5x4,
 		TextureFormat::ASTC5x5,
+		TextureFormat::ASTC6x5,
 		TextureFormat::ASTC6x6,
 		TextureFormat::ASTC8x5,
 		TextureFormat::ASTC8x6,
+		TextureFormat::ASTC8x8,
 		TextureFormat::ASTC10x5,
+		TextureFormat::ASTC10x6,
+		TextureFormat::ASTC10x8,
+		TextureFormat::ASTC10x10,
+		TextureFormat::ASTC12x10,
+		TextureFormat::ASTC12x12,
 		TextureFormat::BGRA8, // GL doesn't support BGRA8 without extensions.
 		TextureFormat::RGBA8, // D3D9 doesn't support RGBA8
 	};
@@ -5600,11 +5608,19 @@ BGFX_TEXTURE_FORMAT_BIMG(ATC);
 BGFX_TEXTURE_FORMAT_BIMG(ATCE);
 BGFX_TEXTURE_FORMAT_BIMG(ATCI);
 BGFX_TEXTURE_FORMAT_BIMG(ASTC4x4);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC5x4);
 BGFX_TEXTURE_FORMAT_BIMG(ASTC5x5);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC6x5);
 BGFX_TEXTURE_FORMAT_BIMG(ASTC6x6);
 BGFX_TEXTURE_FORMAT_BIMG(ASTC8x5);
 BGFX_TEXTURE_FORMAT_BIMG(ASTC8x6);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC8x8);
 BGFX_TEXTURE_FORMAT_BIMG(ASTC10x5);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC10x6);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC10x8);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC10x10);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC12x10);
+BGFX_TEXTURE_FORMAT_BIMG(ASTC12x12);
 BGFX_TEXTURE_FORMAT_BIMG(Unknown);
 BGFX_TEXTURE_FORMAT_BIMG(R1);
 BGFX_TEXTURE_FORMAT_BIMG(A8);

+ 8 - 0
src/renderer_d3d11.cpp

@@ -224,11 +224,19 @@ namespace bgfx { namespace d3d11
 		{ DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN              }, // ATCE
 		{ DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN              }, // ATCI
 		{ DXGI_FORMAT_ASTC_4X4_UNORM,     DXGI_FORMAT_ASTC_4X4_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_4X4_UNORM_SRGB  }, // ASTC4x4
+		{ DXGI_FORMAT_ASTC_5X4_UNORM,     DXGI_FORMAT_ASTC_5X4_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_5X4_UNORM_SRGB  }, // ASTC5x4
 		{ DXGI_FORMAT_ASTC_5X5_UNORM,     DXGI_FORMAT_ASTC_5X5_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_5X5_UNORM_SRGB  }, // ASTC5x5
+		{ DXGI_FORMAT_ASTC_6X5_UNORM,     DXGI_FORMAT_ASTC_6X5_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_6X5_UNORM_SRGB  }, // ASTC6x5
 		{ DXGI_FORMAT_ASTC_6X6_UNORM,     DXGI_FORMAT_ASTC_6X6_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_6X6_UNORM_SRGB  }, // ASTC6x6
 		{ DXGI_FORMAT_ASTC_8X5_UNORM,     DXGI_FORMAT_ASTC_8X5_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_8X5_UNORM_SRGB  }, // ASTC8x5
 		{ DXGI_FORMAT_ASTC_8X6_UNORM,     DXGI_FORMAT_ASTC_8X6_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_8X6_UNORM_SRGB  }, // ASTC8x6
+		{ DXGI_FORMAT_ASTC_8X8_UNORM,     DXGI_FORMAT_ASTC_8X8_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_8X8_UNORM_SRGB  }, // ASTC8x8
 		{ DXGI_FORMAT_ASTC_10X5_UNORM,    DXGI_FORMAT_ASTC_10X5_UNORM,       DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X5_UNORM_SRGB }, // ASTC10x5
+		{ DXGI_FORMAT_ASTC_10X6_UNORM,    DXGI_FORMAT_ASTC_10X6_UNORM,       DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X6_UNORM_SRGB }, // ASTC10x6
+		{ DXGI_FORMAT_ASTC_10X8_UNORM,    DXGI_FORMAT_ASTC_10X8_UNORM,       DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X8_UNORM_SRGB }, // ASTC10x8
+		{ DXGI_FORMAT_ASTC_10X10_UNORM,   DXGI_FORMAT_ASTC_10X10_UNORM,      DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X10_UNORM_SRGB}, // ASTC10x10
+		{ DXGI_FORMAT_ASTC_12X10_UNORM,   DXGI_FORMAT_ASTC_12X10_UNORM,      DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_12X10_UNORM_SRGB}, // ASTC12x10
+		{ DXGI_FORMAT_ASTC_12X12_UNORM,   DXGI_FORMAT_ASTC_12X12_UNORM,      DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_12X12_UNORM_SRGB}, // ASTC12x12
 		{ DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN              }, // Unknown
 		{ DXGI_FORMAT_R1_UNORM,           DXGI_FORMAT_R1_UNORM,              DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN              }, // R1
 		{ DXGI_FORMAT_A8_UNORM,           DXGI_FORMAT_A8_UNORM,              DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN              }, // A8

+ 8 - 0
src/renderer_d3d12.cpp

@@ -214,11 +214,19 @@ namespace bgfx { namespace d3d12
 		{ DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN,              D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ATCE
 		{ DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN,              D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ATCI
 		{ DXGI_FORMAT_ASTC_4X4_UNORM,     DXGI_FORMAT_ASTC_4X4_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_4X4_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC4x4
+		{ DXGI_FORMAT_ASTC_5X4_UNORM,     DXGI_FORMAT_ASTC_5X4_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_5X4_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC5x4
 		{ DXGI_FORMAT_ASTC_5X5_UNORM,     DXGI_FORMAT_ASTC_5X5_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_5X5_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC5x5
+		{ DXGI_FORMAT_ASTC_6X5_UNORM,     DXGI_FORMAT_ASTC_6X5_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_6X5_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC6x5
 		{ DXGI_FORMAT_ASTC_6X6_UNORM,     DXGI_FORMAT_ASTC_6X6_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_6X6_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC6x6
 		{ DXGI_FORMAT_ASTC_8X5_UNORM,     DXGI_FORMAT_ASTC_8X5_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_8X5_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC8x5
 		{ DXGI_FORMAT_ASTC_8X6_UNORM,     DXGI_FORMAT_ASTC_8X6_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_8X6_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC8x6
+		{ DXGI_FORMAT_ASTC_8X8_UNORM,     DXGI_FORMAT_ASTC_8X8_UNORM,        DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_8X8_UNORM_SRGB,  D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC8x8
 		{ DXGI_FORMAT_ASTC_10X5_UNORM,    DXGI_FORMAT_ASTC_10X5_UNORM,       DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X5_UNORM_SRGB, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC10x5
+		{ DXGI_FORMAT_ASTC_10X6_UNORM,    DXGI_FORMAT_ASTC_10X6_UNORM,       DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X6_UNORM_SRGB, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC10x6
+		{ DXGI_FORMAT_ASTC_10X8_UNORM,    DXGI_FORMAT_ASTC_10X8_UNORM,       DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X8_UNORM_SRGB, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC10x8
+		{ DXGI_FORMAT_ASTC_10X10_UNORM,   DXGI_FORMAT_ASTC_10X10_UNORM,      DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_10X10_UNORM_SRGB,D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC10x10
+		{ DXGI_FORMAT_ASTC_12X10_UNORM,   DXGI_FORMAT_ASTC_12X10_UNORM,      DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_12X10_UNORM_SRGB,D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC12x10
+		{ DXGI_FORMAT_ASTC_12X12_UNORM,   DXGI_FORMAT_ASTC_12X12_UNORM,      DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_ASTC_12X12_UNORM_SRGB,D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // ASTC12x12
 		{ DXGI_FORMAT_UNKNOWN,            DXGI_FORMAT_UNKNOWN,               DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN,              D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // Unknown
 		{ DXGI_FORMAT_R1_UNORM,           DXGI_FORMAT_R1_UNORM,              DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN,              D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // R1
 		{ DXGI_FORMAT_A8_UNORM,           DXGI_FORMAT_A8_UNORM,              DXGI_FORMAT_UNKNOWN,           DXGI_FORMAT_UNKNOWN,              D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING                }, // A8

+ 14 - 6
src/renderer_d3d9.cpp

@@ -183,12 +183,20 @@ namespace bgfx { namespace d3d9
 		{ D3DFMT_UNKNOWN       }, // ATC,
 		{ D3DFMT_UNKNOWN       }, // ATCE,
 		{ D3DFMT_UNKNOWN       }, // ATCI,
-		{ D3DFMT_UNKNOWN       }, // ASTC4x4,
-		{ D3DFMT_UNKNOWN       }, // ASTC5x5,
-		{ D3DFMT_UNKNOWN       }, // ASTC6x6,
-		{ D3DFMT_UNKNOWN       }, // ASTC8x5,
-		{ D3DFMT_UNKNOWN       }, // ASTC8x6,
-		{ D3DFMT_UNKNOWN       }, // ASTC10x5,
+		{ D3DFMT_UNKNOWN       }, // ASTC4x4
+		{ D3DFMT_UNKNOWN       }, // ASTC5x4
+		{ D3DFMT_UNKNOWN       }, // ASTC5x5
+		{ D3DFMT_UNKNOWN       }, // ASTC6x5
+		{ D3DFMT_UNKNOWN       }, // ASTC6x6
+		{ D3DFMT_UNKNOWN       }, // ASTC8x5
+		{ D3DFMT_UNKNOWN       }, // ASTC8x6
+		{ D3DFMT_UNKNOWN       }, // ASTC8x8
+		{ D3DFMT_UNKNOWN       }, // ASTC10x5
+		{ D3DFMT_UNKNOWN       }, // ASTC10x6
+		{ D3DFMT_UNKNOWN       }, // ASTC10x8
+		{ D3DFMT_UNKNOWN       }, // ASTC10x10
+		{ D3DFMT_UNKNOWN       }, // ASTC12x10
+		{ D3DFMT_UNKNOWN       }, // ASTC12x12
 		{ D3DFMT_UNKNOWN       }, // Unknown
 		{ D3DFMT_A1            }, // R1
 		{ D3DFMT_A8            }, // A8

+ 24 - 0
src/renderer_gl.cpp

@@ -237,11 +237,19 @@ namespace bgfx { namespace gl
 		{ GL_ATC_RGBA_EXPLICIT_ALPHA_AMD,              GL_ZERO,                                      GL_ATC_RGBA_EXPLICIT_ALPHA_AMD,              GL_ATC_RGBA_EXPLICIT_ALPHA_AMD,              GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ATCE
 		{ GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD,          GL_ZERO,                                      GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD,          GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD,          GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ATCI
 		{ GL_COMPRESSED_RGBA_ASTC_4x4_KHR,             GL_COMPRESSED_SRGB8_ASTC_4x4_KHR,             GL_COMPRESSED_RGBA_ASTC_4x4_KHR,             GL_COMPRESSED_RGBA_ASTC_4x4_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC4x4
+		{ GL_COMPRESSED_RGBA_ASTC_5x4_KHR,             GL_COMPRESSED_SRGB8_ASTC_5x4_KHR,             GL_COMPRESSED_RGBA_ASTC_5x4_KHR,             GL_COMPRESSED_RGBA_ASTC_5x4_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC5x4
 		{ GL_COMPRESSED_RGBA_ASTC_5x5_KHR,             GL_COMPRESSED_SRGB8_ASTC_5x5_KHR,             GL_COMPRESSED_RGBA_ASTC_5x5_KHR,             GL_COMPRESSED_RGBA_ASTC_5x5_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC5x5
+		{ GL_COMPRESSED_RGBA_ASTC_6x5_KHR,             GL_COMPRESSED_SRGB8_ASTC_6x5_KHR,             GL_COMPRESSED_RGBA_ASTC_6x5_KHR,             GL_COMPRESSED_RGBA_ASTC_6x5_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC6x5
 		{ GL_COMPRESSED_RGBA_ASTC_6x6_KHR,             GL_COMPRESSED_SRGB8_ASTC_6x6_KHR,             GL_COMPRESSED_RGBA_ASTC_6x6_KHR,             GL_COMPRESSED_RGBA_ASTC_6x6_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC6x6
 		{ GL_COMPRESSED_RGBA_ASTC_8x5_KHR,             GL_COMPRESSED_SRGB8_ASTC_8x5_KHR,             GL_COMPRESSED_RGBA_ASTC_8x5_KHR,             GL_COMPRESSED_RGBA_ASTC_8x5_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC8x5
 		{ GL_COMPRESSED_RGBA_ASTC_8x6_KHR,             GL_COMPRESSED_SRGB8_ASTC_8x6_KHR,             GL_COMPRESSED_RGBA_ASTC_8x6_KHR,             GL_COMPRESSED_RGBA_ASTC_8x6_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC8x6
+		{ GL_COMPRESSED_RGBA_ASTC_8x8_KHR,             GL_COMPRESSED_SRGB8_ASTC_8x8_KHR,             GL_COMPRESSED_RGBA_ASTC_8x8_KHR,             GL_COMPRESSED_RGBA_ASTC_8x8_KHR,             GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC8x8
 		{ GL_COMPRESSED_RGBA_ASTC_10x5_KHR,            GL_COMPRESSED_SRGB8_ASTC_10x5_KHR,            GL_COMPRESSED_RGBA_ASTC_10x5_KHR,            GL_COMPRESSED_RGBA_ASTC_10x5_KHR,            GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC10x5
+		{ GL_COMPRESSED_RGBA_ASTC_10x6_KHR,            GL_COMPRESSED_SRGB8_ASTC_10x6_KHR,            GL_COMPRESSED_RGBA_ASTC_10x6_KHR,            GL_COMPRESSED_RGBA_ASTC_10x6_KHR,            GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC10x6
+		{ GL_COMPRESSED_RGBA_ASTC_10x8_KHR,            GL_COMPRESSED_SRGB8_ASTC_10x8_KHR,            GL_COMPRESSED_RGBA_ASTC_10x8_KHR,            GL_COMPRESSED_RGBA_ASTC_10x8_KHR,            GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC10x8
+		{ GL_COMPRESSED_RGBA_ASTC_10x10_KHR,           GL_COMPRESSED_SRGB8_ASTC_10x10_KHR,           GL_COMPRESSED_RGBA_ASTC_10x10_KHR,           GL_COMPRESSED_RGBA_ASTC_10x10_KHR,           GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC10x10
+		{ GL_COMPRESSED_RGBA_ASTC_12x10_KHR,           GL_COMPRESSED_SRGB8_ASTC_12x10_KHR,           GL_COMPRESSED_RGBA_ASTC_12x10_KHR,           GL_COMPRESSED_RGBA_ASTC_12x10_KHR,           GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC12x10
+		{ GL_COMPRESSED_RGBA_ASTC_12x12_KHR,           GL_COMPRESSED_SRGB8_ASTC_12x12_KHR,           GL_COMPRESSED_RGBA_ASTC_12x12_KHR,           GL_COMPRESSED_RGBA_ASTC_12x12_KHR,           GL_ZERO,                         false, { $_, $_, $_, $_ } }, // ASTC12x12
 		{ GL_ZERO,                                     GL_ZERO,                                      GL_ZERO,                                     GL_ZERO,                                     GL_ZERO,                         false, { $_, $_, $_, $_ } }, // Unknown
 		{ GL_ZERO,                                     GL_ZERO,                                      GL_ZERO,                                     GL_ZERO,                                     GL_ZERO,                         false, { $_, $_, $_, $_ } }, // R1
 		{ GL_ALPHA,                                    GL_ZERO,                                      GL_ALPHA,                                    GL_ALPHA,                                    GL_UNSIGNED_BYTE,                false, { $_, $_, $_, $_ } }, // A8
@@ -339,11 +347,19 @@ namespace bgfx { namespace gl
 		GL_ZERO,               // ATCE
 		GL_ZERO,               // ATCI
 		GL_ZERO,               // ASTC4x4
+		GL_ZERO,               // ASTC5x4
 		GL_ZERO,               // ASTC5x5
+		GL_ZERO,               // ASTC6x5
 		GL_ZERO,               // ASTC6x6
 		GL_ZERO,               // ASTC8x5
 		GL_ZERO,               // ASTC8x6
+		GL_ZERO,               // ASTC8x8
 		GL_ZERO,               // ASTC10x5
+		GL_ZERO,               // ASTC10x6
+		GL_ZERO,               // ASTC10x8
+		GL_ZERO,               // ASTC10x10
+		GL_ZERO,               // ASTC12x10
+		GL_ZERO,               // ASTC12x12
 		GL_ZERO,               // Unknown
 		GL_ZERO,               // R1
 		GL_ALPHA,              // A8
@@ -432,11 +448,19 @@ namespace bgfx { namespace gl
 		GL_ZERO,           // ATCE
 		GL_ZERO,           // ATCI
 		GL_ZERO,           // ASTC4x4
+		GL_ZERO,           // ASTC5x4
 		GL_ZERO,           // ASTC5x5
+		GL_ZERO,           // ASTC6x5
 		GL_ZERO,           // ASTC6x6
 		GL_ZERO,           // ASTC8x5
 		GL_ZERO,           // ASTC8x6
+		GL_ZERO,           // ASTC8x8
 		GL_ZERO,           // ASTC10x5
+		GL_ZERO,           // ASTC10x6
+		GL_ZERO,           // ASTC10x8
+		GL_ZERO,           // ASTC10x10
+		GL_ZERO,           // ASTC12x10
+		GL_ZERO,           // ASTC12x12
 		GL_ZERO,           // Unknown
 		GL_ZERO,           // R1
 		GL_ALPHA,          // A8

+ 32 - 0
src/renderer_gl.h

@@ -546,10 +546,18 @@ typedef uint64_t GLuint64;
 #   define GL_COMPRESSED_SRGB8_ASTC_4x4_KHR 0x93D0
 #endif
 
+#ifndef GL_COMPRESSED_SRGB8_ASTC_5x4_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_5x4_KHR 0x93D1
+#endif
+
 #ifndef GL_COMPRESSED_SRGB8_ASTC_5x5_KHR
 #   define GL_COMPRESSED_SRGB8_ASTC_5x5_KHR 0x93D2
 #endif
 
+#ifndef GL_COMPRESSED_SRGB8_ASTC_6x5_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_6x5_KHR 0x93D3
+#endif
+
 #ifndef GL_COMPRESSED_SRGB8_ASTC_6x6_KHR
 #   define GL_COMPRESSED_SRGB8_ASTC_6x6_KHR 0x93D4
 #endif
@@ -562,10 +570,34 @@ typedef uint64_t GLuint64;
 #   define GL_COMPRESSED_SRGB8_ASTC_8x6_KHR 0x93D6
 #endif
 
+#ifndef GL_COMPRESSED_SRGB8_ASTC_8x8_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_8x8_KHR 0x93D7
+#endif
+
 #ifndef GL_COMPRESSED_SRGB8_ASTC_10x5_KHR
 #   define GL_COMPRESSED_SRGB8_ASTC_10x5_KHR 0x93D8
 #endif
 
+#ifndef GL_COMPRESSED_SRGB8_ASTC_10x6_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_10x6_KHR 0x93D9
+#endif
+
+#ifndef GL_COMPRESSED_SRGB8_ASTC_10x8_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_10x8_KHR 0x93DA
+#endif
+
+#ifndef GL_COMPRESSED_SRGB8_ASTC_10x10_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_10x10_KHR 0x93DB
+#endif
+
+#ifndef GL_COMPRESSED_SRGB8_ASTC_12x10_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_12x10_KHR 0x93DC
+#endif
+
+#ifndef GL_COMPRESSED_SRGB8_ASTC_12x12_KHR
+#   define GL_COMPRESSED_SRGB8_ASTC_12x12_KHR 0x93DD
+#endif
+
 #ifndef GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
 #	define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
 #endif // GL_COMPRESSED_RGBA_BPTC_UNORM_ARB

+ 16 - 0
src/renderer_mtl.mm

@@ -246,18 +246,34 @@ namespace bgfx { namespace mtl
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ATCI
 #if BX_PLATFORM_IOS && !TARGET_OS_MACCATALYST
 		{ MTLPixelFormatASTC_4x4_LDR,                   MTLPixelFormatASTC_4x4_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC4x4
+		{ MTLPixelFormatASTC_5x4_LDR,                   MTLPixelFormatASTC_5x4_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC5x4
 		{ MTLPixelFormatASTC_5x5_LDR,                   MTLPixelFormatASTC_5x5_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC5x5
+		{ MTLPixelFormatASTC_6x5_LDR,                   MTLPixelFormatASTC_6x5_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC6x5
 		{ MTLPixelFormatASTC_6x6_LDR,                   MTLPixelFormatASTC_6x6_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC6x6
 		{ MTLPixelFormatASTC_8x5_LDR,                   MTLPixelFormatASTC_8x5_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC8x5
 		{ MTLPixelFormatASTC_8x6_LDR,                   MTLPixelFormatASTC_8x6_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC8x6
+		{ MTLPixelFormatASTC_8x8_LDR,                   MTLPixelFormatASTC_8x8_sRGB,                 MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC8x8
 		{ MTLPixelFormatASTC_10x5_LDR,                  MTLPixelFormatASTC_10x5_sRGB,                MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x5
+		{ MTLPixelFormatASTC_10x6_LDR,                  MTLPixelFormatASTC_10x6_sRGB,                MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x6
+		{ MTLPixelFormatASTC_10x8_LDR,                  MTLPixelFormatASTC_10x8_sRGB,                MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x8
+		{ MTLPixelFormatASTC_10x10_LDR,                 MTLPixelFormatASTC_10x10_sRGB,               MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x10
+		{ MTLPixelFormatASTC_12x10_LDR,                 MTLPixelFormatASTC_12x10_sRGB,               MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC12x10
+		{ MTLPixelFormatASTC_12x12_LDR,                 MTLPixelFormatASTC_12x12_sRGB,               MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC12x12
 #else
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC4x4
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC5x4
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC5x5
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC6x5
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC6x6
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC8x5
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC8x6
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC8x8
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x5
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x6
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x8
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC10x10
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC12x10
+		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // ASTC12x12
 #endif // BX_PLATFORM_IOS && !TARGET_OS_MACCATALYST
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // Unknown
 		{ MTLPixelFormatInvalid,                        MTLPixelFormatInvalid,                       MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, false }, // R1

+ 14 - 6
src/renderer_vk.cpp

@@ -187,12 +187,20 @@ VK_IMPORT_DEVICE
 		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ATC
 		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ATCE
 		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ATCI
-		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ASTC4x4
-		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ASTC5x5
-		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ASTC6x6
-		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ASTC8x5
-		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ASTC8x6
-		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // ASTC10x5
+		{ VK_FORMAT_ASTC_4x4_UNORM_BLOCK,      VK_FORMAT_ASTC_4x4_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_4x4_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC4x4
+		{ VK_FORMAT_ASTC_5x4_UNORM_BLOCK,      VK_FORMAT_ASTC_5x4_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_5x4_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC5x4
+		{ VK_FORMAT_ASTC_5x5_UNORM_BLOCK,      VK_FORMAT_ASTC_5x5_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_5x5_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC5x5
+		{ VK_FORMAT_ASTC_6x5_UNORM_BLOCK,      VK_FORMAT_ASTC_6x5_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_6x5_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC6x5
+		{ VK_FORMAT_ASTC_6x6_UNORM_BLOCK,      VK_FORMAT_ASTC_6x6_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_6x6_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC6x6
+		{ VK_FORMAT_ASTC_8x5_UNORM_BLOCK,      VK_FORMAT_ASTC_8x5_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_8x5_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC8x5
+		{ VK_FORMAT_ASTC_8x6_UNORM_BLOCK,      VK_FORMAT_ASTC_8x6_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_8x6_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC8x6
+		{ VK_FORMAT_ASTC_8x8_UNORM_BLOCK,      VK_FORMAT_ASTC_8x8_UNORM_BLOCK,     VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_8x8_SRGB_BLOCK,      { $_, $_, $_, $_ } }, // ASTC8x8
+		{ VK_FORMAT_ASTC_10x5_UNORM_BLOCK,     VK_FORMAT_ASTC_10x5_UNORM_BLOCK,    VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_10x5_SRGB_BLOCK,     { $_, $_, $_, $_ } }, // ASTC10x5
+		{ VK_FORMAT_ASTC_10x6_UNORM_BLOCK,     VK_FORMAT_ASTC_10x6_UNORM_BLOCK,    VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_10x6_SRGB_BLOCK,     { $_, $_, $_, $_ } }, // ASTC10x6
+		{ VK_FORMAT_ASTC_10x8_UNORM_BLOCK,     VK_FORMAT_ASTC_10x8_UNORM_BLOCK,    VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_10x8_SRGB_BLOCK,     { $_, $_, $_, $_ } }, // ASTC10x8
+		{ VK_FORMAT_ASTC_10x10_UNORM_BLOCK,    VK_FORMAT_ASTC_10x10_UNORM_BLOCK,   VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_10x10_SRGB_BLOCK,    { $_, $_, $_, $_ } }, // ASTC10x10
+		{ VK_FORMAT_ASTC_12x10_UNORM_BLOCK,    VK_FORMAT_ASTC_12x10_UNORM_BLOCK,   VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_12x10_SRGB_BLOCK,    { $_, $_, $_, $_ } }, // ASTC12x10
+		{ VK_FORMAT_ASTC_12x12_UNORM_BLOCK,    VK_FORMAT_ASTC_12x12_UNORM_BLOCK,   VK_FORMAT_UNDEFINED,           VK_FORMAT_ASTC_12x12_SRGB_BLOCK,    { $_, $_, $_, $_ } }, // ASTC12x12
 		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // Unknown
 		{ VK_FORMAT_UNDEFINED,                 VK_FORMAT_UNDEFINED,                VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $_, $_, $_, $_ } }, // R1
 		{ VK_FORMAT_R8_UNORM,                  VK_FORMAT_R8_UNORM,                 VK_FORMAT_UNDEFINED,           VK_FORMAT_UNDEFINED,                { $0, $0, $0, $R } }, // A8

+ 8 - 0
src/renderer_webgpu.cpp

@@ -306,11 +306,19 @@ namespace bgfx { namespace webgpu
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ATCE
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ATCI
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC4x4
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC5x4
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC5x5
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC6x5
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC6x6
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC8x5
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC8x6
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC8x8
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC10x5
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC10x6
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC10x8
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC10x10
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC12x10
+		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // ASTC12x12
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // Unknown
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // R1
 		{ wgpu::TextureFormat::Undefined,           wgpu::TextureFormat::Undefined        },  // A8