diff --git a/bindings/bf/bgfx.bf b/bindings/bf/bgfx.bf
index 59e94a4ff3..71d5e2556d 100644
--- a/bindings/bf/bgfx.bf
+++ b/bindings/bf/bgfx.bf
@@ -1678,11 +1678,21 @@ public static class bgfx
///
ASTC4x4,
+ ///
+ /// ASTC 5x4 6.40 BPP
+ ///
+ ASTC5x4,
+
///
/// ASTC 5x5 5.12 BPP
///
ASTC5x5,
+ ///
+ /// ASTC 6x5 4.27 BPP
+ ///
+ ASTC6x5,
+
///
/// ASTC 6x6 3.56 BPP
///
@@ -1698,11 +1708,41 @@ public static class bgfx
///
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.
///
@@ -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]
diff --git a/bindings/cs/bgfx.cs b/bindings/cs/bgfx.cs
index 8d3360cb16..24a2a17e11 100644
--- a/bindings/cs/bgfx.cs
+++ b/bindings/cs/bgfx.cs
@@ -1671,11 +1671,21 @@ public enum TextureFormat
///
ASTC4x4,
+ ///
+ /// ASTC 5x4 6.40 BPP
+ ///
+ ASTC5x4,
+
///
/// ASTC 5x5 5.12 BPP
///
ASTC5x5,
+ ///
+ /// ASTC 6x5 4.27 BPP
+ ///
+ ASTC6x5,
+
///
/// ASTC 6x6 3.56 BPP
///
@@ -1691,11 +1701,41 @@ public enum TextureFormat
///
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.
///
@@ -2027,7 +2067,7 @@ public unsafe struct Limits
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
diff --git a/bindings/d/types.d b/bindings/d/types.d
index e812ffa691..ae44638f4c 100644
--- a/bindings/d/types.d
+++ b/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,
diff --git a/bindings/zig/bgfx.zig b/bindings/zig/bgfx.zig
index 6ad5f7e107..612647d778 100644
--- a/bindings/zig/bgfx.zig
+++ b/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 {
diff --git a/examples/47-pixelformats/pixelformats.cpp b/examples/47-pixelformats/pixelformats.cpp
index 8cfdcc598c..7a78f36723 100644
--- a/examples/47-pixelformats/pixelformats.cpp
+++ b/examples/47-pixelformats/pixelformats.cpp
@@ -470,27 +470,35 @@ class ExamplePixelFormats : public entry::AppI
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));
diff --git a/examples/assets/textures/textures.ninja b/examples/assets/textures/textures.ninja
index 835da68704..22fd3e32ba 100644
--- a/examples/assets/textures/textures.ninja
+++ b/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
diff --git a/examples/runtime/textures/texture_compression_astc_10x10.dds b/examples/runtime/textures/texture_compression_astc_10x10.dds
new file mode 100644
index 0000000000..8ac934e5e9
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_10x10.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_10x5.dds b/examples/runtime/textures/texture_compression_astc_10x5.dds
index 5d83939548..b392a0b315 100644
Binary files a/examples/runtime/textures/texture_compression_astc_10x5.dds and b/examples/runtime/textures/texture_compression_astc_10x5.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_10x6.dds b/examples/runtime/textures/texture_compression_astc_10x6.dds
new file mode 100644
index 0000000000..92edd56d6c
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_10x6.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_10x8.dds b/examples/runtime/textures/texture_compression_astc_10x8.dds
new file mode 100644
index 0000000000..9eb093ae35
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_10x8.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_12x10.dds b/examples/runtime/textures/texture_compression_astc_12x10.dds
new file mode 100644
index 0000000000..23a6470853
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_12x10.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_12x12.dds b/examples/runtime/textures/texture_compression_astc_12x12.dds
new file mode 100644
index 0000000000..9c75905e56
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_12x12.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_4x4.dds b/examples/runtime/textures/texture_compression_astc_4x4.dds
index ada6b45d92..60d17bde3d 100644
Binary files a/examples/runtime/textures/texture_compression_astc_4x4.dds and b/examples/runtime/textures/texture_compression_astc_4x4.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_5x4.dds b/examples/runtime/textures/texture_compression_astc_5x4.dds
new file mode 100644
index 0000000000..e47f966cf4
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_5x4.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_5x5.dds b/examples/runtime/textures/texture_compression_astc_5x5.dds
index bfce304225..1a7619030b 100644
Binary files a/examples/runtime/textures/texture_compression_astc_5x5.dds and b/examples/runtime/textures/texture_compression_astc_5x5.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_6x5.dds b/examples/runtime/textures/texture_compression_astc_6x5.dds
new file mode 100644
index 0000000000..0b716ab819
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_6x5.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_6x6.dds b/examples/runtime/textures/texture_compression_astc_6x6.dds
index a1215b7f95..d4d829e44e 100644
Binary files a/examples/runtime/textures/texture_compression_astc_6x6.dds and b/examples/runtime/textures/texture_compression_astc_6x6.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_8x5.dds b/examples/runtime/textures/texture_compression_astc_8x5.dds
index 55d1754fb9..e1a0dc6fd9 100644
Binary files a/examples/runtime/textures/texture_compression_astc_8x5.dds and b/examples/runtime/textures/texture_compression_astc_8x5.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_8x6.dds b/examples/runtime/textures/texture_compression_astc_8x6.dds
index e205b999ce..24a66a6fef 100644
Binary files a/examples/runtime/textures/texture_compression_astc_8x6.dds and b/examples/runtime/textures/texture_compression_astc_8x6.dds differ
diff --git a/examples/runtime/textures/texture_compression_astc_8x8.dds b/examples/runtime/textures/texture_compression_astc_8x8.dds
new file mode 100644
index 0000000000..d5bad8c423
Binary files /dev/null and b/examples/runtime/textures/texture_compression_astc_8x8.dds differ
diff --git a/include/bgfx/bgfx.h b/include/bgfx/bgfx.h
index bba37b353c..844337d8f7 100644
--- a/include/bgfx/bgfx.h
+++ b/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.
diff --git a/include/bgfx/c99/bgfx.h b/include/bgfx/c99/bgfx.h
index 7b1cf9a22e..04d9bcebee 100644
--- a/include/bgfx/c99/bgfx.h
+++ b/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
diff --git a/include/bgfx/defines.h b/include/bgfx/defines.h
index 01a188c2f9..c5f136b4e0 100644
--- a/include/bgfx/defines.h
+++ b/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.
diff --git a/scripts/bgfx.idl b/scripts/bgfx.idl
index 9d97bc0eb5..a0d9428c6c 100644
--- a/scripts/bgfx.idl
+++ b/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
diff --git a/scripts/build.ninja b/scripts/build.ninja
index 081457fa75..94ac877c42 100644
--- a/scripts/build.ninja
+++ b/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
diff --git a/src/bgfx.cpp b/src/bgfx.cpp
index 2b54f16caf..f9ef0a6e20 100644
--- a/src/bgfx.cpp
+++ b/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);
diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp
index 4c5a1a630c..454621ad4c 100644
--- a/src/renderer_d3d11.cpp
+++ b/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
diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp
index c4416c71c3..3cab184c5b 100644
--- a/src/renderer_d3d12.cpp
+++ b/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
diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp
index 174670d452..95872fa492 100644
--- a/src/renderer_d3d9.cpp
+++ b/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
diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp
index 3b5f18b530..6fdf64225d 100644
--- a/src/renderer_gl.cpp
+++ b/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
diff --git a/src/renderer_gl.h b/src/renderer_gl.h
index 1aa858f41d..1006dbf7a2 100644
--- a/src/renderer_gl.h
+++ b/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
diff --git a/src/renderer_mtl.mm b/src/renderer_mtl.mm
index 16cd8bf36c..2317c16d6b 100644
--- a/src/renderer_mtl.mm
+++ b/src/renderer_mtl.mm
@@ -246,18 +246,34 @@ inline void setViewType(ViewId _view, const bx::StringView _str)
{ 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
diff --git a/src/renderer_vk.cpp b/src/renderer_vk.cpp
index 95242e955e..17ece29828 100644
--- a/src/renderer_vk.cpp
+++ b/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
diff --git a/src/renderer_webgpu.cpp b/src/renderer_webgpu.cpp
index d1273d9107..8f747167ee 100644
--- a/src/renderer_webgpu.cpp
+++ b/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