Add BGR versions of 16 bit formats (#2897)

* pixelformats: Add BGRA4

* pixelformats: Add BGR5A1

* pixelformats: Add B5G6R5

* make idl
This commit is contained in:
Sandy
2022-08-25 19:08:06 -04:00
committed by GitHub
parent 561e91a62b
commit 85910e9778
15 changed files with 84 additions and 18 deletions

View File

@@ -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]

View File

@@ -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

View File

@@ -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,

View File

@@ -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 {

View File

@@ -232,8 +232,11 @@ namespace bgfx
RGBA32I,
RGBA32U,
RGBA32F,
B5G6R5,
R5G6B5,
BGRA4,
RGBA4,
BGR5A1,
RGB5A1,
RGB10A2,
RG11B10F,

View File

@@ -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

View File

@@ -593,8 +593,11 @@ enum.TextureFormat { comment = "Texture formats:" }
.RGBA32I
.RGBA32U
.RGBA32F
.B5G6R5
.R5G6B5
.BGRA4
.RGBA4
.BGR5A1
.RGB5A1
.RGB10A2
.RG11B10F

View File

@@ -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);

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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);