diff --git a/dawn.json b/dawn.json index a93d4043c4..a2102b32ae 100644 --- a/dawn.json +++ b/dawn.json @@ -1191,68 +1191,59 @@ {"value": 2, "name": "R8 uint"}, {"value": 3, "name": "R8 sint"}, - {"value": 4, "name": "R16 unorm"}, - {"value": 5, "name": "R16 snorm"}, - {"value": 6, "name": "R16 uint"}, - {"value": 7, "name": "R16 sint"}, - {"value": 8, "name": "R16 float"}, - {"value": 9, "name": "RG8 unorm"}, - {"value": 10, "name": "RG8 snorm"}, - {"value": 11, "name": "RG8 uint"}, - {"value": 12, "name": "RG8 sint"}, + {"value": 4, "name": "R16 uint"}, + {"value": 5, "name": "R16 sint"}, + {"value": 6, "name": "R16 float"}, + {"value": 7, "name": "RG8 unorm"}, + {"value": 8, "name": "RG8 snorm"}, + {"value": 9, "name": "RG8 uint"}, + {"value": 10, "name": "RG8 sint"}, - {"value": 13, "name": "R32 float"}, - {"value": 14, "name": "R32 uint"}, - {"value": 15, "name": "R32 sint"}, - {"value": 16, "name": "RG16 unorm"}, - {"value": 17, "name": "RG16 snorm"}, - {"value": 18, "name": "RG16 uint"}, - {"value": 19, "name": "RG16 sint"}, - {"value": 20, "name": "RG16 float"}, - {"value": 21, "name": "RGBA8 unorm"}, - {"value": 22, "name": "RGBA8 unorm srgb"}, - {"value": 23, "name": "RGBA8 snorm"}, - {"value": 24, "name": "RGBA8 uint"}, - {"value": 25, "name": "RGBA8 sint"}, - {"value": 26, "name": "BGRA8 unorm"}, - {"value": 27, "name": "BGRA8 unorm srgb"}, - {"value": 28, "name": "RGB10 A2 unorm"}, - {"value": 29, "name": "RG11 B10 float"}, + {"value": 11, "name": "R32 float"}, + {"value": 12, "name": "R32 uint"}, + {"value": 13, "name": "R32 sint"}, + {"value": 14, "name": "RG16 uint"}, + {"value": 15, "name": "RG16 sint"}, + {"value": 16, "name": "RG16 float"}, + {"value": 17, "name": "RGBA8 unorm"}, + {"value": 18, "name": "RGBA8 unorm srgb"}, + {"value": 19, "name": "RGBA8 snorm"}, + {"value": 20, "name": "RGBA8 uint"}, + {"value": 21, "name": "RGBA8 sint"}, + {"value": 22, "name": "BGRA8 unorm"}, + {"value": 23, "name": "BGRA8 unorm srgb"}, + {"value": 24, "name": "RGB10 A2 unorm"}, + {"value": 25, "name": "RG11 B10 float"}, - {"value": 30, "name": "RG32 float"}, - {"value": 31, "name": "RG32 uint"}, - {"value": 32, "name": "RG32 sint"}, - {"value": 33, "name": "RGBA16 unorm"}, - {"value": 34, "name": "RGBA16 snorm"}, - {"value": 35, "name": "RGBA16 uint"}, - {"value": 36, "name": "RGBA16 sint"}, - {"value": 37, "name": "RGBA16 float"}, + {"value": 26, "name": "RG32 float"}, + {"value": 27, "name": "RG32 uint"}, + {"value": 28, "name": "RG32 sint"}, + {"value": 29, "name": "RGBA16 uint"}, + {"value": 30, "name": "RGBA16 sint"}, + {"value": 31, "name": "RGBA16 float"}, - {"value": 38, "name": "RGBA32 float"}, - {"value": 39, "name": "RGBA32 uint"}, - {"value": 40, "name": "RGBA32 sint"}, + {"value": 32, "name": "RGBA32 float"}, + {"value": 33, "name": "RGBA32 uint"}, + {"value": 34, "name": "RGBA32 sint"}, - {"value": 41, "name": "depth32 float"}, - {"value": 42, "name": "depth24 plus"}, - {"value": 43, "name": "depth24 plus stencil8"}, + {"value": 35, "name": "depth32 float"}, + {"value": 36, "name": "depth24 plus"}, + {"value": 37, "name": "depth24 plus stencil8"}, - {"value": 44, "name": "BC1 RGBA unorm"}, - {"value": 45, "name": "BC1 RGBA unorm srgb"}, - {"value": 46, "name": "BC2 RGBA unorm"}, - {"value": 47, "name": "BC2 RGBA unorm srgb"}, - {"value": 48, "name": "BC3 RGBA unorm"}, - {"value": 49, "name": "BC3 RGBA unorm srgb"}, - {"value": 50, "name": "BC4 R unorm"}, - {"value": 51, "name": "BC4 R snorm"}, - {"value": 52, "name": "BC5 RG unorm"}, - {"value": 53, "name": "BC5 RG snorm"}, - {"value": 54, "name": "BC6H RGB ufloat"}, - {"value": 55, "name": "BC6H RGB sfloat"}, - {"value": 56, "name": "BC7 RGBA unorm"}, - {"value": 57, "name": "BC7 RGBA unorm srgb"} - ], - "TODO": [ - "jiawei.shao@intel.com: support BC formats as extension" + {"value": 38, "name": "BC1 RGBA unorm"}, + {"value": 39, "name": "BC1 RGBA unorm srgb"}, + {"value": 40, "name": "BC2 RGBA unorm"}, + {"value": 41, "name": "BC2 RGBA unorm srgb"}, + {"value": 42, "name": "BC3 RGBA unorm"}, + {"value": 43, "name": "BC3 RGBA unorm srgb"}, + {"value": 44, "name": "BC4 R unorm"}, + {"value": 45, "name": "BC4 R snorm"}, + {"value": 46, "name": "BC5 RG unorm"}, + {"value": 47, "name": "BC5 RG snorm"}, + {"value": 48, "name": "BC6H RGB ufloat"}, + {"value": 49, "name": "BC6H RGB sfloat"}, + {"value": 50, "name": "BC7 RGBA unorm"}, + {"value": 51, "name": "BC7 RGBA unorm srgb"} ] }, "texture usage bit": { diff --git a/src/dawn_native/Format.cpp b/src/dawn_native/Format.cpp index 0f904bd1f0..c18f57a3fd 100644 --- a/src/dawn_native/Format.cpp +++ b/src/dawn_native/Format.cpp @@ -117,8 +117,6 @@ namespace dawn_native { AddColorFormat(dawn::TextureFormat::R8Sint, true, 1); // 2 bytes color formats - AddColorFormat(dawn::TextureFormat::R16Unorm, true, 2); - AddColorFormat(dawn::TextureFormat::R16Snorm, false, 2); AddColorFormat(dawn::TextureFormat::R16Uint, true, 2); AddColorFormat(dawn::TextureFormat::R16Sint, true, 2); AddColorFormat(dawn::TextureFormat::R16Float, true, 2); @@ -131,8 +129,6 @@ namespace dawn_native { AddColorFormat(dawn::TextureFormat::R32Uint, true, 4); AddColorFormat(dawn::TextureFormat::R32Sint, true, 4); AddColorFormat(dawn::TextureFormat::R32Float, true, 4); - AddColorFormat(dawn::TextureFormat::RG16Unorm, true, 4); - AddColorFormat(dawn::TextureFormat::RG16Snorm, false, 4); AddColorFormat(dawn::TextureFormat::RG16Uint, true, 4); AddColorFormat(dawn::TextureFormat::RG16Sint, true, 4); AddColorFormat(dawn::TextureFormat::RG16Float, true, 4); @@ -151,8 +147,6 @@ namespace dawn_native { AddColorFormat(dawn::TextureFormat::RG32Uint, true, 8); AddColorFormat(dawn::TextureFormat::RG32Sint, true, 8); AddColorFormat(dawn::TextureFormat::RG32Float, true, 8); - AddColorFormat(dawn::TextureFormat::RGBA16Unorm, true, 8); - AddColorFormat(dawn::TextureFormat::RGBA16Snorm, false, 8); AddColorFormat(dawn::TextureFormat::RGBA16Uint, true, 8); AddColorFormat(dawn::TextureFormat::RGBA16Sint, true, 8); AddColorFormat(dawn::TextureFormat::RGBA16Float, true, 8); diff --git a/src/dawn_native/Format.h b/src/dawn_native/Format.h index 334198cb98..39776d7c3e 100644 --- a/src/dawn_native/Format.h +++ b/src/dawn_native/Format.h @@ -27,7 +27,7 @@ namespace dawn_native { // The number of formats Dawn knows about. Asserts in BuildFormatTable ensure that this is the // exact number of known format. - static constexpr size_t kKnownFormatCount = 58; + static constexpr size_t kKnownFormatCount = 52; // A dawn::TextureFormat along with all the information about it necessary for validation. struct Format { diff --git a/src/dawn_native/d3d12/TextureD3D12.cpp b/src/dawn_native/d3d12/TextureD3D12.cpp index cc36c9d8b3..c200dbba6d 100644 --- a/src/dawn_native/d3d12/TextureD3D12.cpp +++ b/src/dawn_native/d3d12/TextureD3D12.cpp @@ -106,10 +106,6 @@ namespace dawn_native { namespace d3d12 { case dawn::TextureFormat::R8Sint: return DXGI_FORMAT_R8_SINT; - case dawn::TextureFormat::R16Unorm: - return DXGI_FORMAT_R16_UNORM; - case dawn::TextureFormat::R16Snorm: - return DXGI_FORMAT_R16_SNORM; case dawn::TextureFormat::R16Uint: return DXGI_FORMAT_R16_UINT; case dawn::TextureFormat::R16Sint: @@ -131,10 +127,6 @@ namespace dawn_native { namespace d3d12 { return DXGI_FORMAT_R32_SINT; case dawn::TextureFormat::R32Float: return DXGI_FORMAT_R32_FLOAT; - case dawn::TextureFormat::RG16Unorm: - return DXGI_FORMAT_R16G16_UNORM; - case dawn::TextureFormat::RG16Snorm: - return DXGI_FORMAT_R16G16_SNORM; case dawn::TextureFormat::RG16Uint: return DXGI_FORMAT_R16G16_UINT; case dawn::TextureFormat::RG16Sint: @@ -166,10 +158,6 @@ namespace dawn_native { namespace d3d12 { return DXGI_FORMAT_R32G32_SINT; case dawn::TextureFormat::RG32Float: return DXGI_FORMAT_R32G32_FLOAT; - case dawn::TextureFormat::RGBA16Unorm: - return DXGI_FORMAT_R16G16B16A16_UNORM; - case dawn::TextureFormat::RGBA16Snorm: - return DXGI_FORMAT_R16G16B16A16_SNORM; case dawn::TextureFormat::RGBA16Uint: return DXGI_FORMAT_R16G16B16A16_UINT; case dawn::TextureFormat::RGBA16Sint: diff --git a/src/dawn_native/metal/TextureMTL.mm b/src/dawn_native/metal/TextureMTL.mm index 755069c72d..089974daf8 100644 --- a/src/dawn_native/metal/TextureMTL.mm +++ b/src/dawn_native/metal/TextureMTL.mm @@ -134,10 +134,6 @@ namespace dawn_native { namespace metal { case dawn::TextureFormat::R8Sint: return MTLPixelFormatR8Sint; - case dawn::TextureFormat::R16Unorm: - return MTLPixelFormatR16Unorm; - case dawn::TextureFormat::R16Snorm: - return MTLPixelFormatR16Snorm; case dawn::TextureFormat::R16Uint: return MTLPixelFormatR16Uint; case dawn::TextureFormat::R16Sint: @@ -159,10 +155,6 @@ namespace dawn_native { namespace metal { return MTLPixelFormatR32Sint; case dawn::TextureFormat::R32Float: return MTLPixelFormatR32Float; - case dawn::TextureFormat::RG16Unorm: - return MTLPixelFormatRG16Unorm; - case dawn::TextureFormat::RG16Snorm: - return MTLPixelFormatRG16Snorm; case dawn::TextureFormat::RG16Uint: return MTLPixelFormatRG16Uint; case dawn::TextureFormat::RG16Sint: @@ -194,10 +186,6 @@ namespace dawn_native { namespace metal { return MTLPixelFormatRG32Sint; case dawn::TextureFormat::RG32Float: return MTLPixelFormatRG32Float; - case dawn::TextureFormat::RGBA16Unorm: - return MTLPixelFormatRGBA16Unorm; - case dawn::TextureFormat::RGBA16Snorm: - return MTLPixelFormatRGBA16Snorm; case dawn::TextureFormat::RGBA16Uint: return MTLPixelFormatRGBA16Uint; case dawn::TextureFormat::RGBA16Sint: diff --git a/src/dawn_native/opengl/GLFormat.cpp b/src/dawn_native/opengl/GLFormat.cpp index 34cac27ddf..1297e9f8f5 100644 --- a/src/dawn_native/opengl/GLFormat.cpp +++ b/src/dawn_native/opengl/GLFormat.cpp @@ -50,8 +50,6 @@ namespace dawn_native { namespace opengl { AddFormat(dawn::TextureFormat::R8Sint, GL_R8I, GL_RED_INTEGER, GL_BYTE, Type::Int); // 2 bytes color formats - AddFormat(dawn::TextureFormat::R16Unorm, GL_R16, GL_RED, GL_UNSIGNED_SHORT, Type::Float); - AddFormat(dawn::TextureFormat::R16Snorm, GL_R16_SNORM, GL_RED, GL_SHORT, Type::Float); AddFormat(dawn::TextureFormat::R16Uint, GL_R16UI, GL_RED_INTEGER, GL_UNSIGNED_SHORT, Type::Uint); AddFormat(dawn::TextureFormat::R16Sint, GL_R16I, GL_RED_INTEGER, GL_SHORT, Type::Int); AddFormat(dawn::TextureFormat::R16Float, GL_R16F, GL_RED, GL_HALF_FLOAT, Type::Float); @@ -64,8 +62,6 @@ namespace dawn_native { namespace opengl { AddFormat(dawn::TextureFormat::R32Uint, GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT, Type::Uint); AddFormat(dawn::TextureFormat::R32Sint, GL_R32I, GL_RED_INTEGER, GL_INT, Type::Int); AddFormat(dawn::TextureFormat::R32Float, GL_R32F, GL_RED, GL_FLOAT, Type::Float); - AddFormat(dawn::TextureFormat::RG16Unorm, GL_RG16, GL_RG, GL_UNSIGNED_SHORT, Type::Float); - AddFormat(dawn::TextureFormat::RG16Snorm, GL_RG16_SNORM, GL_RG, GL_SHORT, Type::Float); AddFormat(dawn::TextureFormat::RG16Uint, GL_RG16UI, GL_RG_INTEGER, GL_UNSIGNED_SHORT, Type::Uint); AddFormat(dawn::TextureFormat::RG16Sint, GL_RG16I, GL_RG_INTEGER, GL_SHORT, Type::Int); AddFormat(dawn::TextureFormat::RG16Float, GL_RG16F, GL_RG, GL_HALF_FLOAT, Type::Float); @@ -84,8 +80,6 @@ namespace dawn_native { namespace opengl { AddFormat(dawn::TextureFormat::RG32Uint, GL_RG32UI, GL_RG_INTEGER, GL_UNSIGNED_INT, Type::Uint); AddFormat(dawn::TextureFormat::RG32Sint, GL_RG32I, GL_RG_INTEGER, GL_INT, Type::Int); AddFormat(dawn::TextureFormat::RG32Float, GL_RG32F, GL_RG, GL_FLOAT, Type::Float); - AddFormat(dawn::TextureFormat::RGBA16Unorm, GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT, Type::Float); - AddFormat(dawn::TextureFormat::RGBA16Snorm, GL_RGBA16_SNORM, GL_RGBA, GL_SHORT, Type::Float); AddFormat(dawn::TextureFormat::RGBA16Uint, GL_RGBA16UI, GL_RGBA_INTEGER, GL_UNSIGNED_SHORT, Type::Uint); AddFormat(dawn::TextureFormat::RGBA16Sint, GL_RGBA16I, GL_RGBA_INTEGER, GL_SHORT, Type::Int); AddFormat(dawn::TextureFormat::RGBA16Float, GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, Type::Float); diff --git a/src/dawn_native/vulkan/TextureVk.cpp b/src/dawn_native/vulkan/TextureVk.cpp index fc2e03151d..f5c56d0f5a 100644 --- a/src/dawn_native/vulkan/TextureVk.cpp +++ b/src/dawn_native/vulkan/TextureVk.cpp @@ -224,10 +224,6 @@ namespace dawn_native { namespace vulkan { case dawn::TextureFormat::R8Sint: return VK_FORMAT_R8_SINT; - case dawn::TextureFormat::R16Unorm: - return VK_FORMAT_R16_UNORM; - case dawn::TextureFormat::R16Snorm: - return VK_FORMAT_R16_SNORM; case dawn::TextureFormat::R16Uint: return VK_FORMAT_R16_UINT; case dawn::TextureFormat::R16Sint: @@ -249,10 +245,6 @@ namespace dawn_native { namespace vulkan { return VK_FORMAT_R32_SINT; case dawn::TextureFormat::R32Float: return VK_FORMAT_R32_SFLOAT; - case dawn::TextureFormat::RG16Unorm: - return VK_FORMAT_R16G16_UNORM; - case dawn::TextureFormat::RG16Snorm: - return VK_FORMAT_R16G16_SNORM; case dawn::TextureFormat::RG16Uint: return VK_FORMAT_R16G16_UINT; case dawn::TextureFormat::RG16Sint: @@ -284,10 +276,6 @@ namespace dawn_native { namespace vulkan { return VK_FORMAT_R32G32_SINT; case dawn::TextureFormat::RG32Float: return VK_FORMAT_R32G32_SFLOAT; - case dawn::TextureFormat::RGBA16Unorm: - return VK_FORMAT_R16G16B16A16_UNORM; - case dawn::TextureFormat::RGBA16Snorm: - return VK_FORMAT_R16G16B16A16_SNORM; case dawn::TextureFormat::RGBA16Uint: return VK_FORMAT_R16G16B16A16_UINT; case dawn::TextureFormat::RGBA16Sint: diff --git a/src/tests/end2end/NonzeroTextureCreationTests.cpp b/src/tests/end2end/NonzeroTextureCreationTests.cpp index e7fe33b648..02497da500 100644 --- a/src/tests/end2end/NonzeroTextureCreationTests.cpp +++ b/src/tests/end2end/NonzeroTextureCreationTests.cpp @@ -105,13 +105,13 @@ TEST_P(NonzeroTextureCreationTests, NonrenderableTextureFormat) { descriptor.size.depth = 1; descriptor.arrayLayerCount = 1; descriptor.sampleCount = 1; - descriptor.format = dawn::TextureFormat::RGBA16Snorm; + descriptor.format = dawn::TextureFormat::RGBA8Snorm; descriptor.mipLevelCount = 1; descriptor.usage = dawn::TextureUsageBit::CopySrc; dawn::Texture texture = device.CreateTexture(&descriptor); // Set buffer with dirty data so we know it is cleared by the lazy cleared texture copy - uint32_t bufferSize = 8 * kSize * kSize; + uint32_t bufferSize = 4 * kSize * kSize; std::vector data(bufferSize, 100); dawn::Buffer bufferDst = utils::CreateBufferFromData( device, data.data(), static_cast(data.size()), dawn::BufferUsageBit::CopySrc); diff --git a/src/tests/end2end/TextureFormatTests.cpp b/src/tests/end2end/TextureFormatTests.cpp index 674c5ca255..2567fde17e 100644 --- a/src/tests/end2end/TextureFormatTests.cpp +++ b/src/tests/end2end/TextureFormatTests.cpp @@ -475,21 +475,6 @@ TEST_P(TextureFormatTest, RGBA8Unorm) { DoUnormTest({dawn::TextureFormat::RGBA8Unorm, 4, Float, 4}); } -// Test the R16Unorm format -TEST_P(TextureFormatTest, R16Unorm) { - DoUnormTest({dawn::TextureFormat::R16Unorm, 2, Float, 1}); -} - -// Test the RG16Unorm format -TEST_P(TextureFormatTest, RG16Unorm) { - DoUnormTest({dawn::TextureFormat::RG16Unorm, 4, Float, 2}); -} - -// Test the RGBA16Unorm format -TEST_P(TextureFormatTest, RGBA16Unorm) { - DoUnormTest({dawn::TextureFormat::RGBA16Unorm, 8, Float, 4}); -} - // Test the BGRA8Unorm format TEST_P(TextureFormatTest, BGRA8Unorm) { uint8_t maxValue = std::numeric_limits::max(); @@ -516,21 +501,6 @@ TEST_P(TextureFormatTest, RGBA8Snorm) { DoSnormTest({dawn::TextureFormat::RGBA8Snorm, 4, Float, 4}); } -// Test the R16Snorm format -TEST_P(TextureFormatTest, R16Snorm) { - DoSnormTest({dawn::TextureFormat::R16Snorm, 2, Float, 1}); -} - -// Test the RG16Snorm format -TEST_P(TextureFormatTest, RG16Snorm) { - DoSnormTest({dawn::TextureFormat::RG16Snorm, 4, Float, 2}); -} - -// Test the RGBA16Snorm format -TEST_P(TextureFormatTest, RGBA16Snorm) { - DoSnormTest({dawn::TextureFormat::RGBA16Snorm, 8, Float, 4}); -} - // Test the R8Uint format TEST_P(TextureFormatTest, R8Uint) { // TODO(cwallez@chromium.org): This fails on the Intel GL driver, understand why. diff --git a/src/tests/end2end/TextureZeroInitTests.cpp b/src/tests/end2end/TextureZeroInitTests.cpp index 9f10de5c30..9655f45b16 100644 --- a/src/tests/end2end/TextureZeroInitTests.cpp +++ b/src/tests/end2end/TextureZeroInitTests.cpp @@ -87,7 +87,7 @@ class TextureZeroInitTest : public DawnTest { constexpr static dawn::TextureFormat kDepthStencilFormat = dawn::TextureFormat::Depth24PlusStencil8; constexpr static dawn::TextureFormat kNonrenderableColorFormat = - dawn::TextureFormat::RGBA16Snorm; + dawn::TextureFormat::RGBA8Snorm; }; // This tests that the code path of CopyTextureToBuffer clears correctly to Zero after first usage @@ -575,7 +575,7 @@ TEST_P(TextureZeroInitTest, NonRenderableTextureClear) { dawn::Texture texture = device.CreateTexture(&descriptor); // Set buffer with dirty data so we know it is cleared by the lazy cleared texture copy - uint32_t bufferSize = 8 * kSize * kSize; + uint32_t bufferSize = 4 * kSize * kSize; std::vector data(bufferSize, 100); dawn::Buffer bufferDst = utils::CreateBufferFromData( device, data.data(), static_cast(data.size()), dawn::BufferUsageBit::CopySrc); diff --git a/src/tests/unittests/validation/TextureValidationTests.cpp b/src/tests/unittests/validation/TextureValidationTests.cpp index af783ba024..94cd40d245 100644 --- a/src/tests/unittests/validation/TextureValidationTests.cpp +++ b/src/tests/unittests/validation/TextureValidationTests.cpp @@ -248,8 +248,6 @@ TEST_F(TextureValidationTest, NonRenderableAndOutputAttachment) { dawn::TextureFormat nonRenderableFormats[] = { dawn::TextureFormat::RG11B10Float, dawn::TextureFormat::R8Snorm, dawn::TextureFormat::RG8Snorm, dawn::TextureFormat::RGBA8Snorm, - dawn::TextureFormat::R16Snorm, dawn::TextureFormat::RG16Snorm, - dawn::TextureFormat::RGBA16Snorm, }; for (dawn::TextureFormat format : nonRenderableFormats) {