diff --git a/bindings/bf/bgfx.bf b/bindings/bf/bgfx.bf index a27855846..eabf8a0fe 100644 --- a/bindings/bf/bgfx.bf +++ b/bindings/bf/bgfx.bf @@ -1746,8 +1746,11 @@ public static class bgfx RGBA32I, RGBA32U, RGBA32F, + B5G6R5, R5G6B5, + BGRA4, RGBA4, + BGR5A1, RGB5A1, RGB10A2, RG11B10F, @@ -2037,7 +2040,7 @@ public static class bgfx public uint8 numGPUs; public GPU[4] gpu; public Limits limits; - public uint16[85] formats; + public uint16[88] formats; } [CRepr] diff --git a/bindings/cs/bgfx.cs b/bindings/cs/bgfx.cs index da9157c11..5ef717462 100644 --- a/bindings/cs/bgfx.cs +++ b/bindings/cs/bgfx.cs @@ -1739,8 +1739,11 @@ public static partial class bgfx RGBA32I, RGBA32U, RGBA32F, + B5G6R5, R5G6B5, + BGRA4, RGBA4, + BGR5A1, RGB5A1, RGB10A2, RG11B10F, @@ -2019,7 +2022,7 @@ public static partial class bgfx public byte numGPUs; public fixed uint gpu[4]; public Limits limits; - public fixed ushort formats[85]; + public fixed ushort formats[88]; } public unsafe struct InternalData diff --git a/bindings/d/types.d b/bindings/d/types.d index 6e47d3875..afa52cff6 100644 --- a/bindings/d/types.d +++ b/bindings/d/types.d @@ -619,8 +619,11 @@ enum bgfx_texture_format_t BGFX_TEXTURE_FORMAT_RGBA32I, BGFX_TEXTURE_FORMAT_RGBA32U, BGFX_TEXTURE_FORMAT_RGBA32F, + BGFX_TEXTURE_FORMAT_B5G6R5, BGFX_TEXTURE_FORMAT_R5G6B5, + BGFX_TEXTURE_FORMAT_BGRA4, BGFX_TEXTURE_FORMAT_RGBA4, + BGFX_TEXTURE_FORMAT_BGR5A1, BGFX_TEXTURE_FORMAT_RGB5A1, BGFX_TEXTURE_FORMAT_RGB10A2, BGFX_TEXTURE_FORMAT_RG11B10F, diff --git a/bindings/zig/bgfx.zig b/bindings/zig/bgfx.zig index 106fb1fed..6e3ce16dd 100644 --- a/bindings/zig/bgfx.zig +++ b/bindings/zig/bgfx.zig @@ -1082,8 +1082,11 @@ pub const TextureFormat = enum(c_int) { RGBA32I, RGBA32U, RGBA32F, + B5G6R5, R5G6B5, + BGRA4, RGBA4, + BGR5A1, RGB5A1, RGB10A2, RG11B10F, @@ -1285,7 +1288,7 @@ pub const Caps = extern struct { numGPUs: u8, gpu: [4]GPU, limits: Limits, - formats: [85]u16, + formats: [88]u16, }; pub const InternalData = extern struct { diff --git a/include/bgfx/bgfx.h b/include/bgfx/bgfx.h index b3f0a111b..cc328f481 100644 --- a/include/bgfx/bgfx.h +++ b/include/bgfx/bgfx.h @@ -232,8 +232,11 @@ namespace bgfx RGBA32I, RGBA32U, RGBA32F, + B5G6R5, R5G6B5, + BGRA4, RGBA4, + BGR5A1, RGB5A1, RGB10A2, RG11B10F, diff --git a/include/bgfx/c99/bgfx.h b/include/bgfx/c99/bgfx.h index f6cac1402..d096e7c92 100644 --- a/include/bgfx/c99/bgfx.h +++ b/include/bgfx/c99/bgfx.h @@ -244,20 +244,23 @@ typedef enum bgfx_texture_format BGFX_TEXTURE_FORMAT_RGBA32I, /** (68) */ BGFX_TEXTURE_FORMAT_RGBA32U, /** (69) */ BGFX_TEXTURE_FORMAT_RGBA32F, /** (70) */ - BGFX_TEXTURE_FORMAT_R5G6B5, /** (71) */ - BGFX_TEXTURE_FORMAT_RGBA4, /** (72) */ - BGFX_TEXTURE_FORMAT_RGB5A1, /** (73) */ - BGFX_TEXTURE_FORMAT_RGB10A2, /** (74) */ - BGFX_TEXTURE_FORMAT_RG11B10F, /** (75) */ - BGFX_TEXTURE_FORMAT_UNKNOWNDEPTH, /** (76) Depth formats below. */ - BGFX_TEXTURE_FORMAT_D16, /** (77) */ - BGFX_TEXTURE_FORMAT_D24, /** (78) */ - BGFX_TEXTURE_FORMAT_D24S8, /** (79) */ - BGFX_TEXTURE_FORMAT_D32, /** (80) */ - BGFX_TEXTURE_FORMAT_D16F, /** (81) */ - BGFX_TEXTURE_FORMAT_D24F, /** (82) */ - BGFX_TEXTURE_FORMAT_D32F, /** (83) */ - BGFX_TEXTURE_FORMAT_D0S8, /** (84) */ + 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_COUNT diff --git a/scripts/bgfx.idl b/scripts/bgfx.idl index 6069e2ad8..e311b5428 100644 --- a/scripts/bgfx.idl +++ b/scripts/bgfx.idl @@ -593,8 +593,11 @@ enum.TextureFormat { comment = "Texture formats:" } .RGBA32I .RGBA32U .RGBA32F + .B5G6R5 .R5G6B5 + .BGRA4 .RGBA4 + .BGR5A1 .RGB5A1 .RGB10A2 .RG11B10F diff --git a/src/bgfx.cpp b/src/bgfx.cpp index fbb3084ab..830731d0f 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -5633,8 +5633,11 @@ BGFX_TEXTURE_FORMAT_BIMG(RGBA16S); BGFX_TEXTURE_FORMAT_BIMG(RGBA32I); BGFX_TEXTURE_FORMAT_BIMG(RGBA32U); BGFX_TEXTURE_FORMAT_BIMG(RGBA32F); +BGFX_TEXTURE_FORMAT_BIMG(B5G6R5); BGFX_TEXTURE_FORMAT_BIMG(R5G6B5); +BGFX_TEXTURE_FORMAT_BIMG(BGRA4); BGFX_TEXTURE_FORMAT_BIMG(RGBA4); +BGFX_TEXTURE_FORMAT_BIMG(BGR5A1); BGFX_TEXTURE_FORMAT_BIMG(RGB5A1); BGFX_TEXTURE_FORMAT_BIMG(RGB10A2); BGFX_TEXTURE_FORMAT_BIMG(RG11B10F); diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index 02782d53f..166d1b51f 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -274,8 +274,11 @@ namespace bgfx { namespace d3d11 { DXGI_FORMAT_R32G32B32A32_SINT, DXGI_FORMAT_R32G32B32A32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA32I { DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA32U { DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA32F + { DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // B5G6R5 { DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R5G6B5 + { DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // BGRA4 { DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA4 + { DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // BGR5A1 { DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB5A1 { DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGB10A2 { DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG11B10F diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index 5b3c30385..4dc44c1f2 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -264,8 +264,11 @@ namespace bgfx { namespace d3d12 { DXGI_FORMAT_R32G32B32A32_SINT, DXGI_FORMAT_R32G32B32A32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // RGBA32I { DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // RGBA32U { DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // RGBA32F + { DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // B5G6R5 { DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING($B, $G, $R, $1) }, // R5G6B5 + { DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // BGRA4 { DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING($B, $G, $R, $A) }, // RGBA4 + { DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // BGR5A1 { DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING($B, $G, $R, $A) }, // RGB5A1 { DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // RGB10A2 { DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING }, // RG11B10F diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index 7980b2b4e..a24032974 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -234,8 +234,11 @@ namespace bgfx { namespace d3d9 { D3DFMT_UNKNOWN }, // RGBA32I { D3DFMT_UNKNOWN }, // RGBA32U { D3DFMT_A32B32G32R32F }, // RGBA32F + { D3DFMT_R5G6B5 }, // B5G6R5 { D3DFMT_R5G6B5 }, // R5G6B5 + { D3DFMT_A4R4G4B4 }, // BGRA4 { D3DFMT_A4R4G4B4 }, // RGBA4 + { D3DFMT_A1R5G5B5 }, // BGR5A1 { D3DFMT_A1R5G5B5 }, // RGB5A1 { D3DFMT_A2B10G10R10 }, // RGB10A2 { D3DFMT_UNKNOWN }, // RG11B10F diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index e9d055b72..2065c9fb9 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -287,8 +287,11 @@ namespace bgfx { namespace gl { GL_RGBA32I, GL_ZERO, RGBA_INTEGER, GL_RGBA_INTEGER, GL_INT, false, { $_, $_, $_, $_ } }, // RGBA32I { GL_RGBA32UI, GL_ZERO, RGBA_INTEGER, GL_RGBA_INTEGER, GL_UNSIGNED_INT, false, { $_, $_, $_, $_ } }, // RGBA32U { GL_RGBA32F, GL_ZERO, GL_RGBA, GL_RGBA, GL_FLOAT, false, { $_, $_, $_, $_ } }, // RGBA32F + { GL_RGB565, GL_ZERO, GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, false, { $_, $_, $_, $_ } }, // B5G6R5 { GL_RGB565, GL_ZERO, GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, false, { $_, $_, $_, $_ } }, // R5G6B5 + { GL_RGBA4, GL_ZERO, GL_BGRA, GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4_REV, false, { $_, $_, $_, $_ } }, // BGRA4 { GL_RGBA4, GL_ZERO, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4_REV, false, { $_, $_, $_, $_ } }, // RGBA4 + { GL_RGB5_A1, GL_ZERO, GL_BGRA, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, false, { $_, $_, $_, $_ } }, // BGR5A1 { GL_RGB5_A1, GL_ZERO, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV, false, { $_, $_, $_, $_ } }, // RGB5A1 { GL_RGB10_A2, GL_ZERO, GL_RGBA, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, false, { $_, $_, $_, $_ } }, // RGB10A2 { GL_R11F_G11F_B10F, GL_ZERO, GL_RGB, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, false, { $_, $_, $_, $_ } }, // RG11B10F @@ -386,8 +389,11 @@ namespace bgfx { namespace gl GL_RGBA32I, // RGBA32I GL_RGBA32UI, // RGBA32U GL_RGBA32F, // RGBA32F + GL_RGB565, // B5G6R5 GL_RGB565, // R5G6B5 + GL_RGBA4, // BGRA4 GL_RGBA4, // RGBA4 + GL_RGB5_A1, // BGR5A1 GL_RGB5_A1, // RGB5A1 GL_RGB10_A2, // RGB10A2 GL_R11F_G11F_B10F, // RG11B10F @@ -476,8 +482,11 @@ namespace bgfx { namespace gl GL_RGBA32I, // RGBA32I GL_RGBA32UI, // RGBA32U GL_RGBA32F, // RGBA32F + GL_RGB565, // B5G6R5 GL_RGB565, // R5G6B5 + GL_RGBA4, // BGRA4 GL_RGBA4, // RGBA4 + GL_RGB5_A1, // BGR5A1 GL_RGB5_A1, // RGB5A1 GL_RGB10_A2, // RGB10A2 GL_R11F_G11F_B10F, // RG11B10F @@ -1648,8 +1657,11 @@ namespace bgfx { namespace gl { case TextureFormat::A8: case TextureFormat::R8: // Luminance + case TextureFormat::B5G6R5: case TextureFormat::R5G6B5: + case TextureFormat::BGRA4: case TextureFormat::RGBA4: + case TextureFormat::BGR5A1: case TextureFormat::RGB5A1: // GLES2 formats without sRGB. return !_srgb; @@ -1900,8 +1912,11 @@ namespace bgfx { namespace gl switch(_format) { // GLES2 textures + case TextureFormat::B5G6R5: case TextureFormat::R5G6B5: + case TextureFormat::BGRA4: case TextureFormat::RGBA4: + case TextureFormat::BGR5A1: case TextureFormat::RGB5A1: case TextureFormat::D16: return !_srgb; @@ -2514,8 +2529,11 @@ namespace bgfx { namespace gl // internalFormat and format must match: // https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexImage2D.xml setTextureFormat(TextureFormat::RGBA8, GL_RGBA, GL_RGBA, GL_UNSIGNED_BYTE); + setTextureFormat(TextureFormat::B5G6R5, GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5_REV); setTextureFormat(TextureFormat::R5G6B5, GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5_REV); + setTextureFormat(TextureFormat::BGRA4, GL_BGRA, GL_BGRA, GL_UNSIGNED_SHORT_4_4_4_4_REV); setTextureFormat(TextureFormat::RGBA4, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4_REV); + setTextureFormat(TextureFormat::BGR5A1, GL_BGRA, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV); setTextureFormat(TextureFormat::RGB5A1, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV); if (s_extension[Extension::EXT_sRGB].m_supported) @@ -2629,8 +2647,11 @@ namespace bgfx { namespace gl if (BX_ENABLED(BX_PLATFORM_EMSCRIPTEN) ) { // OpenGL ES does not have reversed BGRA4 and BGR5A1 support. + setTextureFormat(TextureFormat::BGRA4, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4); setTextureFormat(TextureFormat::RGBA4, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4); + setTextureFormat(TextureFormat::BGR5A1, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1); setTextureFormat(TextureFormat::RGB5A1, GL_RGBA, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1); + setTextureFormat(TextureFormat::B5G6R5, GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5); setTextureFormat(TextureFormat::R5G6B5, GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5); if (!m_gles3) diff --git a/src/renderer_mtl.mm b/src/renderer_mtl.mm index e6981a9c5..26ea47260 100644 --- a/src/renderer_mtl.mm +++ b/src/renderer_mtl.mm @@ -304,8 +304,11 @@ namespace bgfx { namespace mtl { MTLPixelFormatRGBA32Sint, MTLPixelFormatInvalid, MTLReadWriteTextureTier2, { $R, $G, $B, $A }, true }, // RGBA32I { MTLPixelFormatRGBA32Uint, MTLPixelFormatInvalid, MTLReadWriteTextureTier2, { $R, $G, $B, $A }, true }, // RGBA32U { MTLPixelFormatRGBA32Float, MTLPixelFormatInvalid, MTLReadWriteTextureTier2, { $R, $G, $B, $A }, true }, // RGBA32F + { MTLPixelFormatB5G6R5Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, true }, // B5G6R5 { MTLPixelFormatB5G6R5Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $B, $G, $R, $A }, true }, // R5G6B5 + { MTLPixelFormatABGR4Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $G, $B, $A, $R }, true }, // BGRA4 { MTLPixelFormatABGR4Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $A, $B, $G, $R }, true }, // RGBA4 + { MTLPixelFormatBGR5A1Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, true }, // BGR5A1 { MTLPixelFormatBGR5A1Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $B, $G, $R, $A }, true }, // RGB5A1 { MTLPixelFormatRGB10A2Unorm, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, true }, // RGB10A2 { MTLPixelFormatRG11B10Float, MTLPixelFormatInvalid, MTLReadWriteTextureTierNone, { $R, $G, $B, $A }, true }, // RG11B10F diff --git a/src/renderer_vk.cpp b/src/renderer_vk.cpp index cfb229d1f..20f0f658e 100644 --- a/src/renderer_vk.cpp +++ b/src/renderer_vk.cpp @@ -238,8 +238,11 @@ VK_IMPORT_DEVICE { VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // RGBA32I { VK_FORMAT_R32G32B32A32_UINT, VK_FORMAT_R32G32B32A32_UINT, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // RGBA32U { VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // RGBA32F + { VK_FORMAT_R5G6B5_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // B5G6R5 { VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // R5G6B5 - { VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $A, $R, $G, $B } }, // RGBA4 + { VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $G, $R, $A, $B } }, // BGRA4 + { VK_FORMAT_R4G4B4A4_UNORM_PACK16, VK_FORMAT_R4G4B4A4_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $A, $B, $G, $R } }, // RGBA4 + { VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // BGR5A1 { VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_A1R5G5B5_UNORM_PACK16, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $B, $G, $R, $A } }, // RGB5A1 { VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_A2R10G10B10_UNORM_PACK32, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $B, $G, $R, $A } }, // RGB10A2 { VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_B10G11R11_UFLOAT_PACK32, VK_FORMAT_UNDEFINED, VK_FORMAT_UNDEFINED, { $_, $_, $_, $_ } }, // RG11B10F diff --git a/src/renderer_webgpu.cpp b/src/renderer_webgpu.cpp index 8bf831b96..27ecfdae5 100644 --- a/src/renderer_webgpu.cpp +++ b/src/renderer_webgpu.cpp @@ -356,8 +356,11 @@ namespace bgfx { namespace webgpu { wgpu::TextureFormat::RGBA32Sint, wgpu::TextureFormat::Undefined }, // RGBA32I { wgpu::TextureFormat::RGBA32Uint, wgpu::TextureFormat::Undefined }, // RGBA32U { wgpu::TextureFormat::RGBA32Float, wgpu::TextureFormat::Undefined }, // RGBA32F + { wgpu::TextureFormat::Undefined, wgpu::TextureFormat::Undefined }, // B5G6R5 { wgpu::TextureFormat::Undefined, wgpu::TextureFormat::Undefined }, // R5G6B5 + { wgpu::TextureFormat::Undefined, wgpu::TextureFormat::Undefined }, // BGRA4 { wgpu::TextureFormat::Undefined, wgpu::TextureFormat::Undefined }, // RGBA4 + { wgpu::TextureFormat::Undefined, wgpu::TextureFormat::Undefined }, // BGR5A1 { wgpu::TextureFormat::Undefined, wgpu::TextureFormat::Undefined }, // RGB5A1 { wgpu::TextureFormat::RGB10A2Unorm, wgpu::TextureFormat::Undefined }, // RGB10A2 { wgpu::TextureFormat::RG11B10Ufloat, wgpu::TextureFormat::Undefined }, // RG11B10F @@ -658,8 +661,11 @@ namespace bgfx { namespace webgpu g_caps.formats[TextureFormat::PTC14 ] = g_caps.formats[TextureFormat::PTC12A] = g_caps.formats[TextureFormat::PTC14A] = + g_caps.formats[TextureFormat::B5G6R5] = g_caps.formats[TextureFormat::R5G6B5] = + g_caps.formats[TextureFormat::BGRA4 ] = g_caps.formats[TextureFormat::RGBA4 ] = + g_caps.formats[TextureFormat::BGR5A1] = g_caps.formats[TextureFormat::RGB5A1] = BGFX_CAPS_FORMAT_TEXTURE_NONE; g_caps.formats[TextureFormat::RGB9E5F] &= ~(BGFX_CAPS_FORMAT_TEXTURE_FRAMEBUFFER | BGFX_CAPS_FORMAT_TEXTURE_FRAMEBUFFER_MSAA);