diff --git a/include/bgfx.c99.h b/include/bgfx.c99.h index 355263492..0ef6fcef9 100644 --- a/include/bgfx.c99.h +++ b/include/bgfx.c99.h @@ -98,6 +98,7 @@ typedef enum bgfx_texture_format BGFX_TEXTURE_FORMAT_UNKNOWN, BGFX_TEXTURE_FORMAT_R1, + BGFX_TEXTURE_FORMAT_A8, BGFX_TEXTURE_FORMAT_R8, BGFX_TEXTURE_FORMAT_R8I, BGFX_TEXTURE_FORMAT_R8U, @@ -107,6 +108,7 @@ typedef enum bgfx_texture_format BGFX_TEXTURE_FORMAT_R16U, BGFX_TEXTURE_FORMAT_R16F, BGFX_TEXTURE_FORMAT_R16S, + BGFX_TEXTURE_FORMAT_R32I, BGFX_TEXTURE_FORMAT_R32U, BGFX_TEXTURE_FORMAT_R32F, BGFX_TEXTURE_FORMAT_RG8, @@ -118,6 +120,7 @@ typedef enum bgfx_texture_format BGFX_TEXTURE_FORMAT_RG16U, BGFX_TEXTURE_FORMAT_RG16F, BGFX_TEXTURE_FORMAT_RG16S, + BGFX_TEXTURE_FORMAT_RG32I, BGFX_TEXTURE_FORMAT_RG32U, BGFX_TEXTURE_FORMAT_RG32F, BGFX_TEXTURE_FORMAT_BGRA8, @@ -130,6 +133,7 @@ typedef enum bgfx_texture_format BGFX_TEXTURE_FORMAT_RGBA16U, BGFX_TEXTURE_FORMAT_RGBA16F, BGFX_TEXTURE_FORMAT_RGBA16S, + BGFX_TEXTURE_FORMAT_RGBA32I, BGFX_TEXTURE_FORMAT_RGBA32U, BGFX_TEXTURE_FORMAT_RGBA32F, BGFX_TEXTURE_FORMAT_R5G6B5, diff --git a/include/bgfx.h b/include/bgfx.h index 2f7264c9b..304170d04 100644 --- a/include/bgfx.h +++ b/include/bgfx.h @@ -159,16 +159,18 @@ namespace bgfx Unknown, // compressed formats above R1, // Notation: - R8, // - R8I, // RGBA16S - R8U, // ^ ^ ^ - R8S, // | | +-- [ ]Unorm - R16, // | | [F]loat - R16I, // | | [S]norm - R16U, // | | [I]nt - R16F, // | | [U]int - R16S, // | +---- Number of bits per component - R32U, // +-------- Components + A8, // + R8, // RGBA16S + R8I, // ^ ^ ^ + R8U, // | | +-- [ ]Unorm + R8S, // | | [F]loat + R16, // | | [S]norm + R16I, // | | [I]nt + R16U, // | | [U]int + R16F, // | +---- Number of bits per component + R16S, // +-------- Components + R32I, + R32U, R32F, RG8, RG8I, @@ -179,6 +181,7 @@ namespace bgfx RG16U, RG16F, RG16S, + RG32I, RG32U, RG32F, BGRA8, @@ -191,6 +194,7 @@ namespace bgfx RGBA16U, RGBA16F, RGBA16S, + RGBA32I, RGBA32U, RGBA32F, R5G6B5, diff --git a/src/image.cpp b/src/image.cpp index 23dac0b8d..4db41e096 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -41,6 +41,7 @@ namespace bgfx { 4, 4, 4, 8, 2, 2, 0, 0, uint8_t(EncodingType::Unorm) }, // PTC24 { 0, 0, 0, 0, 0, 0, 0, 0, uint8_t(EncodingType::Count) }, // Unknown { 1, 8, 1, 1, 1, 1, 0, 0, uint8_t(EncodingType::Unorm) }, // R1 + { 8, 1, 1, 1, 1, 1, 0, 0, uint8_t(EncodingType::Unorm) }, // A8 { 8, 1, 1, 1, 1, 1, 0, 0, uint8_t(EncodingType::Unorm) }, // R8 { 8, 1, 1, 1, 1, 1, 0, 0, uint8_t(EncodingType::Int ) }, // R8I { 8, 1, 1, 1, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // R8U @@ -50,6 +51,7 @@ namespace bgfx { 16, 1, 1, 2, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // R16U { 16, 1, 1, 2, 1, 1, 0, 0, uint8_t(EncodingType::Float) }, // R16F { 16, 1, 1, 2, 1, 1, 0, 0, uint8_t(EncodingType::Snorm) }, // R16S + { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Int ) }, // R32I { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // R32U { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Float) }, // R32F { 16, 1, 1, 2, 1, 1, 0, 0, uint8_t(EncodingType::Unorm) }, // RG8 @@ -61,6 +63,7 @@ namespace bgfx { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // RG16U { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Float) }, // RG16F { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Snorm) }, // RG16S + { 64, 1, 1, 8, 1, 1, 0, 0, uint8_t(EncodingType::Int ) }, // RG32I { 64, 1, 1, 8, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // RG32U { 64, 1, 1, 8, 1, 1, 0, 0, uint8_t(EncodingType::Float) }, // RG32F { 32, 1, 1, 4, 1, 1, 0, 0, uint8_t(EncodingType::Unorm) }, // BGRA8 @@ -73,6 +76,7 @@ namespace bgfx { 64, 1, 1, 8, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // RGBA16U { 64, 1, 1, 8, 1, 1, 0, 0, uint8_t(EncodingType::Float) }, // RGBA16F { 64, 1, 1, 8, 1, 1, 0, 0, uint8_t(EncodingType::Snorm) }, // RGBA16S + { 128, 1, 1, 16, 1, 1, 0, 0, uint8_t(EncodingType::Int ) }, // RGBA32I { 128, 1, 1, 16, 1, 1, 0, 0, uint8_t(EncodingType::Uint ) }, // RGBA32U { 128, 1, 1, 16, 1, 1, 0, 0, uint8_t(EncodingType::Float) }, // RGBA32F { 16, 1, 1, 2, 1, 1, 0, 0, uint8_t(EncodingType::Unorm) }, // R5G6B5 @@ -113,6 +117,7 @@ namespace bgfx "PTC24", // PTC24 "", // Unknown "R1", // R1 + "A8", // A8 "R8", // R8 "R8I", // R8I "R8U", // R8U @@ -122,6 +127,7 @@ namespace bgfx "R16U", // R16U "R16F", // R16F "R16S", // R16S + "R32I", // R32I "R32U", // R32U "R32F", // R32F "RG8", // RG8 @@ -133,7 +139,8 @@ namespace bgfx "RG16U", // RG16U "RG16F", // RG16F "RG16S", // RG16S - "RG32", // RG32U + "RG32I", // RG32I + "RG32U", // RG32U "RG32F", // RG32F "BGRA8", // BGRA8 "RGBA8", // RGBA8 @@ -145,7 +152,8 @@ namespace bgfx "RGBA16U", // RGBA16U "RGBA16F", // RGBA16F "RGBA16S", // RGBA16S - "RGBA32", // RGBA32U + "RGBA32I", // RGBA32I + "RGBA32U", // RGBA32U "RGBA32F", // RGBA32F "R5G6B5", // R5G6B5 "RGBA4", // RGBA4 @@ -1552,7 +1560,7 @@ namespace bgfx { if ( (caps[1] & DDS_CUBEMAP_ALLFACES) != DDS_CUBEMAP_ALLFACES) { - // parital cube map is not supported. + // partial cube map is not supported. return false; } } diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index c1309dbec..8a8c094cd 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -211,6 +211,7 @@ namespace bgfx { namespace d3d11 { DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // PTC24 { 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 { DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R8 { DXGI_FORMAT_R8_SINT, DXGI_FORMAT_R8_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R8I { DXGI_FORMAT_R8_UINT, DXGI_FORMAT_R8_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R8U @@ -220,6 +221,7 @@ namespace bgfx { namespace d3d11 { DXGI_FORMAT_R16_UINT, DXGI_FORMAT_R16_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R16U { DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R16F { DXGI_FORMAT_R16_SNORM, DXGI_FORMAT_R16_SNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R16S + { DXGI_FORMAT_R32_SINT, DXGI_FORMAT_R32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R32I { DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R32U { DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R32F { DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG8 @@ -231,6 +233,7 @@ namespace bgfx { namespace d3d11 { DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG16U { DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG16F { DXGI_FORMAT_R16G16_SNORM, DXGI_FORMAT_R16G16_SNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG16S + { DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32I { DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32U { DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32F { DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB }, // BGRA8 @@ -243,6 +246,7 @@ namespace bgfx { namespace d3d11 { DXGI_FORMAT_R16G16B16A16_UINT, DXGI_FORMAT_R16G16B16A16_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA16U { DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA16F { DXGI_FORMAT_R16G16B16A16_SNORM, DXGI_FORMAT_R16G16B16A16_SNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA16S + { 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 }, // R5G6B5 diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index 48965dd12..a5d4b281a 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -195,6 +195,7 @@ namespace bgfx { namespace d3d12 { DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // PTC24 { 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 { DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R8 { DXGI_FORMAT_R8_SINT, DXGI_FORMAT_R8_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R8I { DXGI_FORMAT_R8_UINT, DXGI_FORMAT_R8_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R8U @@ -204,6 +205,7 @@ namespace bgfx { namespace d3d12 { DXGI_FORMAT_R16_UNORM, DXGI_FORMAT_R16_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R16U { DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R16F { DXGI_FORMAT_R16_SNORM, DXGI_FORMAT_R16_SNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R16S + { DXGI_FORMAT_R32_SINT, DXGI_FORMAT_R32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R32I { DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R32U { DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // R32F { DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG8 @@ -215,6 +217,7 @@ namespace bgfx { namespace d3d12 { DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG16U { DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG16F { DXGI_FORMAT_R16G16_SNORM, DXGI_FORMAT_R16G16_SNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG16S + { DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32I { DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32U { DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RG32F { DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_B8G8R8A8_UNORM_SRGB }, // BGRA8 @@ -227,6 +230,7 @@ namespace bgfx { namespace d3d12 { DXGI_FORMAT_R16G16B16A16_UINT, DXGI_FORMAT_R16G16B16A16_UINT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA16U { DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA16F { DXGI_FORMAT_R16G16B16A16_SNORM, DXGI_FORMAT_R16G16B16A16_SNORM, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, // RGBA16S + { 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 }, // R5G6B5 @@ -334,12 +338,12 @@ namespace bgfx { namespace d3d12 return elem; } - void setResourceBarrier(ID3D12GraphicsCommandList* _commandList, ID3D12Resource* _resource, D3D12_RESOURCE_STATES _stateBefore, D3D12_RESOURCE_STATES _stateAfter) + void setResourceBarrier(ID3D12GraphicsCommandList* _commandList, const ID3D12Resource* _resource, D3D12_RESOURCE_STATES _stateBefore, D3D12_RESOURCE_STATES _stateAfter) { D3D12_RESOURCE_BARRIER barrier; barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; barrier.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE; - barrier.Transition.pResource = _resource; + barrier.Transition.pResource = const_cast(_resource); barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; barrier.Transition.StateBefore = _stateBefore; barrier.Transition.StateAfter = _stateAfter; @@ -3070,7 +3074,8 @@ data.NumQualityLevels = 0; cmd.vbv[0].SizeInBytes = vb.m_size; if (isValid(_draw.m_instanceDataBuffer) ) { - const VertexBufferD3D12& inst = s_renderD3D12->m_vertexBuffers[_draw.m_instanceDataBuffer.idx]; + VertexBufferD3D12& inst = s_renderD3D12->m_vertexBuffers[_draw.m_instanceDataBuffer.idx]; + inst.setState(_commandList, D3D12_RESOURCE_STATE_GENERIC_READ); cmd.vbv[1].BufferLocation = inst.m_gpuVA + _draw.m_instanceDataOffset; cmd.vbv[1].StrideInBytes = _draw.m_instanceDataStride; cmd.vbv[1].SizeInBytes = _draw.m_numInstances * _draw.m_instanceDataStride; @@ -3110,7 +3115,8 @@ data.NumQualityLevels = 0; cmd.vbv[0].SizeInBytes = vb.m_size; if (isValid(_draw.m_instanceDataBuffer) ) { - const VertexBufferD3D12& inst = s_renderD3D12->m_vertexBuffers[_draw.m_instanceDataBuffer.idx]; + VertexBufferD3D12& inst = s_renderD3D12->m_vertexBuffers[_draw.m_instanceDataBuffer.idx]; + inst.setState(_commandList, D3D12_RESOURCE_STATE_GENERIC_READ); cmd.vbv[1].BufferLocation = inst.m_gpuVA + _draw.m_instanceDataOffset; cmd.vbv[1].StrideInBytes = _draw.m_instanceDataStride; cmd.vbv[1].SizeInBytes = _draw.m_numInstances * _draw.m_instanceDataStride; @@ -4389,6 +4395,8 @@ data.NumQualityLevels = 0; m_commandList->SetComputeRootDescriptorTable(Rdt::SRV, srvHandle[0]); m_commandList->SetComputeRootDescriptorTable(Rdt::UAV, srvHandle[0]); + + bindLru.add(bindHash, srvHandle[0], 0); } else { diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index f2b12e612..5c33fb0a4 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -208,6 +208,7 @@ namespace bgfx { namespace d3d9 { D3DFMT_UNKNOWN }, // PTC24 { D3DFMT_UNKNOWN }, // Unknown { D3DFMT_A1 }, // R1 + { D3DFMT_A8 }, // A8 { D3DFMT_L8 }, // R8 { D3DFMT_UNKNOWN }, // R8I { D3DFMT_UNKNOWN }, // R8U @@ -217,6 +218,7 @@ namespace bgfx { namespace d3d9 { D3DFMT_UNKNOWN }, // R16U { D3DFMT_R16F }, // R16F { D3DFMT_UNKNOWN }, // R16S + { D3DFMT_UNKNOWN }, // R32I { D3DFMT_UNKNOWN }, // R32U { D3DFMT_R32F }, // R32F { D3DFMT_A8L8 }, // RG8 @@ -228,6 +230,7 @@ namespace bgfx { namespace d3d9 { D3DFMT_UNKNOWN }, // RG16U { D3DFMT_G16R16F }, // RG16F { D3DFMT_UNKNOWN }, // RG16S + { D3DFMT_UNKNOWN }, // RG32I { D3DFMT_UNKNOWN }, // RG32U { D3DFMT_G32R32F }, // RG32F { D3DFMT_A8R8G8B8 }, // BGRA8 @@ -240,6 +243,7 @@ namespace bgfx { namespace d3d9 { D3DFMT_UNKNOWN }, // RGBA16U { D3DFMT_A16B16G16R16F }, // RGBA16F { D3DFMT_UNKNOWN }, // RGBA16S + { D3DFMT_UNKNOWN }, // RGBA32I { D3DFMT_UNKNOWN }, // RGBA32U { D3DFMT_A32B32G32R32F }, // RGBA32F { D3DFMT_R5G6B5 }, // R5G6B5 diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index decddf082..ae2a61b3b 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -206,6 +206,7 @@ namespace bgfx { namespace gl { GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG, GL_ZERO, GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG, GL_ZERO, false }, // PTC24 { GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, false }, // Unknown { GL_ZERO, GL_ZERO, GL_ZERO, GL_ZERO, false }, // R1 + { GL_ALPHA, GL_ZERO, GL_ALPHA, GL_UNSIGNED_BYTE, false }, // A8 { GL_R8, GL_ZERO, GL_RED, GL_UNSIGNED_BYTE, false }, // R8 { GL_R8I, GL_ZERO, GL_RED, GL_BYTE, false }, // R8S { GL_R8UI, GL_ZERO, GL_RED, GL_UNSIGNED_BYTE, false }, // R8S @@ -215,6 +216,7 @@ namespace bgfx { namespace gl { GL_R16UI, GL_ZERO, GL_RED, GL_UNSIGNED_SHORT, false }, // R16U { GL_R16F, GL_ZERO, GL_RED, GL_HALF_FLOAT, false }, // R16F { GL_R16_SNORM, GL_ZERO, GL_RED, GL_SHORT, false }, // R16S + { GL_R32I, GL_ZERO, GL_RED, GL_INT, false }, // R32I { GL_R32UI, GL_ZERO, GL_RED, GL_UNSIGNED_INT, false }, // R32U { GL_R32F, GL_ZERO, GL_RED, GL_FLOAT, false }, // R32F { GL_RG8, GL_ZERO, GL_RG, GL_UNSIGNED_BYTE, false }, // RG8 @@ -226,6 +228,7 @@ namespace bgfx { namespace gl { GL_RG16UI, GL_ZERO, GL_RG, GL_UNSIGNED_SHORT, false }, // RG16 { GL_RG16F, GL_ZERO, GL_RG, GL_FLOAT, false }, // RG16F { GL_RG16_SNORM, GL_ZERO, GL_RG, GL_SHORT, false }, // RG16S + { GL_RG32I, GL_ZERO, GL_RG, GL_INT, false }, // RG32I { GL_RG32UI, GL_ZERO, GL_RG, GL_UNSIGNED_INT, false }, // RG32U { GL_RG32F, GL_ZERO, GL_RG, GL_FLOAT, false }, // RG32F { GL_RGBA8, GL_SRGB8_ALPHA8, GL_BGRA, GL_UNSIGNED_BYTE, false }, // BGRA8 @@ -238,6 +241,7 @@ namespace bgfx { namespace gl { GL_RGBA16UI, GL_ZERO, GL_RGBA, GL_UNSIGNED_SHORT, false }, // RGBA16U { GL_RGBA16F, GL_ZERO, GL_RGBA, GL_HALF_FLOAT, false }, // RGBA16F { GL_RGBA16_SNORM, GL_ZERO, GL_RGBA, GL_SHORT, false }, // RGBA16S + { GL_RGBA32I, GL_ZERO, GL_RGBA, GL_INT, false }, // RGBA32I { GL_RGBA32UI, GL_ZERO, GL_RGBA, GL_UNSIGNED_INT, false }, // RGBA32U { GL_RGBA32F, GL_ZERO, GL_RGBA, GL_FLOAT, false }, // RGBA32F { GL_RGB565, GL_ZERO, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, false }, // R5G6B5 @@ -280,6 +284,7 @@ namespace bgfx { namespace gl GL_ZERO, // PTC24 GL_ZERO, // Unknown GL_ZERO, // R1 + GL_ALPHA, // A8 GL_R8, // R8 GL_R8I, // R8I GL_R8UI, // R8U @@ -289,6 +294,7 @@ namespace bgfx { namespace gl GL_R16UI, // R16U GL_R16F, // R16F GL_R16_SNORM, // R16S + GL_R32I, // R32I GL_R32UI, // R32U GL_R32F, // R32F GL_RG8, // RG8 @@ -300,6 +306,7 @@ namespace bgfx { namespace gl GL_RG16UI, // RG16U GL_RG16F, // RG16F GL_RG16_SNORM, // RG16S + GL_RG32I, // RG32I GL_RG32UI, // RG32U GL_RG32F, // RG32F GL_RGBA8, // BGRA8 @@ -312,6 +319,7 @@ namespace bgfx { namespace gl GL_RGBA16UI, // RGBA16U GL_RGBA16F, // RGBA16F GL_RGBA16_SNORM, // RGBA16S + GL_RGBA32I, // RGBA32I GL_RGBA32UI, // RGBA32U GL_RGBA32F, // RGBA32F GL_RGB565, // R5G6B5 @@ -352,6 +360,7 @@ namespace bgfx { namespace gl GL_ZERO, // PTC24 GL_ZERO, // Unknown GL_ZERO, // R1 + GL_ALPHA, // A8 GL_R8, // R8 GL_R8I, // R8I GL_R8UI, // R8UI @@ -361,6 +370,7 @@ namespace bgfx { namespace gl GL_R16UI, // R16U GL_R16F, // R16F GL_R16_SNORM, // R16S + GL_R32I, // R32I GL_R32UI, // R32U GL_R32F, // R32F GL_RG8, // RG8 @@ -372,6 +382,7 @@ namespace bgfx { namespace gl GL_RG16UI, // RG16U GL_RG16F, // RG16F GL_RG16_SNORM, // RG16S + GL_RG32I, // RG32I GL_RG32UI, // RG32U GL_RG32F, // RG32F GL_RGBA8, // BGRA8 @@ -384,6 +395,7 @@ namespace bgfx { namespace gl GL_RGBA16UI, // RGBA16U GL_RGBA16F, // RGBA16F GL_RGBA16_SNORM, // RGBA16S + GL_RGBA32I, // RGBA32I GL_RGBA32UI, // RGBA32U GL_RGBA32F, // RGBA32F GL_RGB565, // R5G6B5 diff --git a/src/renderer_mtl.mm b/src/renderer_mtl.mm index c917df69d..8b041d9c0 100644 --- a/src/renderer_mtl.mm +++ b/src/renderer_mtl.mm @@ -264,6 +264,7 @@ namespace bgfx { namespace mtl { MTLPixelFormatInvalid, MTLPixelFormatInvalid }, // PTC24 { MTLPixelFormatInvalid, MTLPixelFormatInvalid }, // Unknown { MTLPixelFormatInvalid, MTLPixelFormatInvalid }, // R1 + { MTLPixelFormatA8Unorm, MTLPixelFormatInvalid }, // A8 { MTLPixelFormatR8Unorm, MTLPixelFormatR8Unorm_sRGB }, // R8 { MTLPixelFormatR8Sint, MTLPixelFormatInvalid }, // R8I { MTLPixelFormatR8Uint, MTLPixelFormatInvalid }, // R8U @@ -273,6 +274,7 @@ namespace bgfx { namespace mtl { MTLPixelFormatR16Uint, MTLPixelFormatInvalid }, // R16U { MTLPixelFormatR16Float, MTLPixelFormatInvalid }, // R16F { MTLPixelFormatR16Snorm, MTLPixelFormatInvalid }, // R16S + { MTLPixelFormatR32Sint, MTLPixelFormatInvalid }, // R32I { MTLPixelFormatR32Uint, MTLPixelFormatInvalid }, // R32U { MTLPixelFormatR32Float, MTLPixelFormatInvalid }, // R32F { MTLPixelFormatRG8Unorm, MTLPixelFormatRG8Unorm_sRGB }, // RG8 @@ -284,6 +286,7 @@ namespace bgfx { namespace mtl { MTLPixelFormatRG16Uint, MTLPixelFormatInvalid }, // RG16U { MTLPixelFormatRG16Float, MTLPixelFormatInvalid }, // RG16F { MTLPixelFormatRG16Snorm, MTLPixelFormatInvalid }, // RG16S + { MTLPixelFormatRG32Sint, MTLPixelFormatInvalid }, // RG32I { MTLPixelFormatRG32Uint, MTLPixelFormatInvalid }, // RG32U { MTLPixelFormatRG32Float, MTLPixelFormatInvalid }, // RG32F { MTLPixelFormatBGRA8Unorm, MTLPixelFormatBGRA8Unorm_sRGB }, // BGRA8 @@ -296,6 +299,7 @@ namespace bgfx { namespace mtl { MTLPixelFormatRGBA16Uint, MTLPixelFormatInvalid }, // RGBA16I { MTLPixelFormatRGBA16Float, MTLPixelFormatInvalid }, // RGBA16F { MTLPixelFormatRGBA16Snorm, MTLPixelFormatInvalid }, // RGBA16S + { MTLPixelFormatRGBA32Sint, MTLPixelFormatInvalid }, // RGBA32I { MTLPixelFormatRGBA32Uint, MTLPixelFormatInvalid }, // RGBA32U { MTLPixelFormatRGBA32Float, MTLPixelFormatInvalid }, // RGBA32F { MTLPixelFormatB5G6R5Unorm, MTLPixelFormatInvalid }, // R5G6B5