Remove deprecated vertex formats

Bug: dawn:22
Change-Id: Iae2c742e6c7e44f7d99fa9eb9c92bcd4ed516b3f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/51763
Commit-Queue: Brandon Jones <bajones@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
Brandon Jones 2021-05-21 01:29:17 +00:00 committed by Dawn LUCI CQ
parent a548578f67
commit 4139fa5ca6
6 changed files with 2 additions and 287 deletions

View File

@ -2082,38 +2082,7 @@
{"value": 27, "name": "sint32"},
{"value": 28, "name": "sint32x2"},
{"value": 29, "name": "sint32x3"},
{"value": 30, "name": "sint32x4"},
{"value": 101, "name": "uChar2"},
{"value": 102, "name": "uChar4"},
{"value": 103, "name": "char2"},
{"value": 104, "name": "char4"},
{"value": 105, "name": "uChar2 norm"},
{"value": 106, "name": "uChar4 norm"},
{"value": 107, "name": "char2 norm"},
{"value": 108, "name": "char4 norm"},
{"value": 109, "name": "uShort2"},
{"value": 110, "name": "uShort4"},
{"value": 111, "name": "short2"},
{"value": 112, "name": "short4"},
{"value": 113, "name": "uShort2 norm"},
{"value": 114, "name": "uShort4 norm"},
{"value": 115, "name": "short2 norm"},
{"value": 116, "name": "short4 norm"},
{"value": 117, "name": "half2"},
{"value": 118, "name": "half4"},
{"value": 119, "name": "float"},
{"value": 120, "name": "float2"},
{"value": 121, "name": "float3"},
{"value": 122, "name": "float4"},
{"value": 123, "name": "uInt"},
{"value": 124, "name": "uInt2"},
{"value": 125, "name": "uInt3"},
{"value": 126, "name": "uInt4"},
{"value": 127, "name": "int"},
{"value": 128, "name": "int2"},
{"value": 129, "name": "int3"},
{"value": 130, "name": "int4"}
{"value": 30, "name": "sint32x4"}
]
},
"ObjectType": {

View File

@ -18,33 +18,7 @@
namespace dawn {
namespace {
static constexpr wgpu::VertexFormat kFirstDeprecatedVertexFormat =
wgpu::VertexFormat::UChar2;
static constexpr uint32_t kFirstDeprecatedVertexFormatValue =
static_cast<uint32_t>(kFirstDeprecatedVertexFormat);
} // namespace
bool IsDeprecatedVertexFormat(wgpu::VertexFormat format) {
return format >= kFirstDeprecatedVertexFormat;
}
wgpu::VertexFormat NormalizeVertexFormat(wgpu::VertexFormat format) {
// If the specified format is from the deprecated range return the corresponding
// non-deprecated format.
if (format >= kFirstDeprecatedVertexFormat) {
uint32_t formatValue = static_cast<uint32_t>(format);
// Need to add one to account for the "undefined" enum with value 0
return static_cast<wgpu::VertexFormat>(
(formatValue - kFirstDeprecatedVertexFormatValue) + 1);
}
return format;
}
uint32_t VertexFormatNumComponents(wgpu::VertexFormat format) {
format = NormalizeVertexFormat(format);
switch (format) {
case wgpu::VertexFormat::Uint8x4:
case wgpu::VertexFormat::Sint8x4:
@ -83,45 +57,11 @@ namespace dawn {
case wgpu::VertexFormat::Undefined:
break;
// Deprecated formats (should be unreachable after NormalizeVertexFormat call)
case wgpu::VertexFormat::UChar2:
case wgpu::VertexFormat::UChar4:
case wgpu::VertexFormat::Char2:
case wgpu::VertexFormat::Char4:
case wgpu::VertexFormat::UChar2Norm:
case wgpu::VertexFormat::UChar4Norm:
case wgpu::VertexFormat::Char2Norm:
case wgpu::VertexFormat::Char4Norm:
case wgpu::VertexFormat::UShort2:
case wgpu::VertexFormat::UShort4:
case wgpu::VertexFormat::UShort2Norm:
case wgpu::VertexFormat::UShort4Norm:
case wgpu::VertexFormat::Short2:
case wgpu::VertexFormat::Short4:
case wgpu::VertexFormat::Short2Norm:
case wgpu::VertexFormat::Short4Norm:
case wgpu::VertexFormat::Half2:
case wgpu::VertexFormat::Half4:
case wgpu::VertexFormat::Float:
case wgpu::VertexFormat::Float2:
case wgpu::VertexFormat::Float3:
case wgpu::VertexFormat::Float4:
case wgpu::VertexFormat::UInt:
case wgpu::VertexFormat::UInt2:
case wgpu::VertexFormat::UInt3:
case wgpu::VertexFormat::UInt4:
case wgpu::VertexFormat::Int:
case wgpu::VertexFormat::Int2:
case wgpu::VertexFormat::Int3:
case wgpu::VertexFormat::Int4:
break;
}
UNREACHABLE();
}
size_t VertexFormatComponentSize(wgpu::VertexFormat format) {
format = NormalizeVertexFormat(format);
switch (format) {
case wgpu::VertexFormat::Uint8x2:
case wgpu::VertexFormat::Uint8x4:
@ -160,39 +100,6 @@ namespace dawn {
case wgpu::VertexFormat::Undefined:
break;
// Deprecated formats (should be unreachable after NormalizeVertexFormat call)
case wgpu::VertexFormat::UChar2:
case wgpu::VertexFormat::UChar4:
case wgpu::VertexFormat::Char2:
case wgpu::VertexFormat::Char4:
case wgpu::VertexFormat::UChar2Norm:
case wgpu::VertexFormat::UChar4Norm:
case wgpu::VertexFormat::Char2Norm:
case wgpu::VertexFormat::Char4Norm:
case wgpu::VertexFormat::UShort2:
case wgpu::VertexFormat::UShort4:
case wgpu::VertexFormat::UShort2Norm:
case wgpu::VertexFormat::UShort4Norm:
case wgpu::VertexFormat::Short2:
case wgpu::VertexFormat::Short4:
case wgpu::VertexFormat::Short2Norm:
case wgpu::VertexFormat::Short4Norm:
case wgpu::VertexFormat::Half2:
case wgpu::VertexFormat::Half4:
case wgpu::VertexFormat::Float:
case wgpu::VertexFormat::Float2:
case wgpu::VertexFormat::Float3:
case wgpu::VertexFormat::Float4:
case wgpu::VertexFormat::UInt:
case wgpu::VertexFormat::UInt2:
case wgpu::VertexFormat::UInt3:
case wgpu::VertexFormat::UInt4:
case wgpu::VertexFormat::Int:
case wgpu::VertexFormat::Int2:
case wgpu::VertexFormat::Int3:
case wgpu::VertexFormat::Int4:
break;
}
UNREACHABLE();
}
@ -202,7 +109,6 @@ namespace dawn {
}
const char* GetWGSLVertexFormatType(wgpu::VertexFormat format) {
format = NormalizeVertexFormat(format);
switch (format) {
case wgpu::VertexFormat::Float32:
return "f32";
@ -249,39 +155,6 @@ namespace dawn {
case wgpu::VertexFormat::Undefined:
break;
// Deprecated formats (should be unreachable after NormalizeVertexFormat call)
case wgpu::VertexFormat::UChar2:
case wgpu::VertexFormat::UChar4:
case wgpu::VertexFormat::Char2:
case wgpu::VertexFormat::Char4:
case wgpu::VertexFormat::UChar2Norm:
case wgpu::VertexFormat::UChar4Norm:
case wgpu::VertexFormat::Char2Norm:
case wgpu::VertexFormat::Char4Norm:
case wgpu::VertexFormat::UShort2:
case wgpu::VertexFormat::UShort4:
case wgpu::VertexFormat::UShort2Norm:
case wgpu::VertexFormat::UShort4Norm:
case wgpu::VertexFormat::Short2:
case wgpu::VertexFormat::Short4:
case wgpu::VertexFormat::Short2Norm:
case wgpu::VertexFormat::Short4Norm:
case wgpu::VertexFormat::Half2:
case wgpu::VertexFormat::Half4:
case wgpu::VertexFormat::Float:
case wgpu::VertexFormat::Float2:
case wgpu::VertexFormat::Float3:
case wgpu::VertexFormat::Float4:
case wgpu::VertexFormat::UInt:
case wgpu::VertexFormat::UInt2:
case wgpu::VertexFormat::UInt3:
case wgpu::VertexFormat::UInt4:
case wgpu::VertexFormat::Int:
case wgpu::VertexFormat::Int2:
case wgpu::VertexFormat::Int3:
case wgpu::VertexFormat::Int4:
break;
}
UNREACHABLE();
}

View File

@ -37,26 +37,6 @@ namespace dawn {
wgpu::VertexFormat::Sint32x2, wgpu::VertexFormat::Sint32x3, wgpu::VertexFormat::Sint32x4,
};
static constexpr std::array<wgpu::VertexFormat, 30> kAllDeprecatedVertexFormats = {
wgpu::VertexFormat::UChar2, wgpu::VertexFormat::UChar4,
wgpu::VertexFormat::Char2, wgpu::VertexFormat::Char4,
wgpu::VertexFormat::UChar2Norm, wgpu::VertexFormat::UChar4Norm,
wgpu::VertexFormat::Char2Norm, wgpu::VertexFormat::Char4Norm,
wgpu::VertexFormat::UShort2, wgpu::VertexFormat::UShort4,
wgpu::VertexFormat::UShort2Norm, wgpu::VertexFormat::UShort4Norm,
wgpu::VertexFormat::Short2, wgpu::VertexFormat::Short4,
wgpu::VertexFormat::Short2Norm, wgpu::VertexFormat::Short4Norm,
wgpu::VertexFormat::Half2, wgpu::VertexFormat::Half4,
wgpu::VertexFormat::Float, wgpu::VertexFormat::Float2,
wgpu::VertexFormat::Float3, wgpu::VertexFormat::Float4,
wgpu::VertexFormat::UInt, wgpu::VertexFormat::UInt2,
wgpu::VertexFormat::UInt3, wgpu::VertexFormat::UInt4,
wgpu::VertexFormat::Int, wgpu::VertexFormat::Int2,
wgpu::VertexFormat::Int3, wgpu::VertexFormat::Int4,
};
bool IsDeprecatedVertexFormat(wgpu::VertexFormat format);
wgpu::VertexFormat NormalizeVertexFormat(wgpu::VertexFormat format);
uint32_t VertexFormatNumComponents(wgpu::VertexFormat format);
size_t VertexFormatComponentSize(wgpu::VertexFormat format);
size_t VertexFormatSize(wgpu::VertexFormat format);

View File

@ -34,11 +34,6 @@ namespace dawn_native {
std::bitset<kMaxVertexAttributes>* attributesSetMask) {
DAWN_TRY(ValidateVertexFormat(attribute->format));
if (dawn::IsDeprecatedVertexFormat(attribute->format)) {
device->EmitDeprecationWarning(
"Vertex formats have changed and the old types will be removed soon.");
}
if (attribute->shaderLocation >= kMaxVertexAttributes) {
return DAWN_VALIDATION_ERROR("Setting attribute out of bounds");
}
@ -417,9 +412,7 @@ namespace dawn_native {
mAttributeInfos[location].shaderLocation = location;
mAttributeInfos[location].vertexBufferSlot = typedSlot;
mAttributeInfos[location].offset = buffers[slot].attributes[i].offset;
mAttributeInfos[location].format =
dawn::NormalizeVertexFormat(buffers[slot].attributes[i].format);
mAttributeInfos[location].format = buffers[slot].attributes[i].format;
}
}

View File

@ -51,7 +51,6 @@ namespace dawn_native {
}
tint::transform::VertexFormat ToTintVertexFormat(wgpu::VertexFormat format) {
format = dawn::NormalizeVertexFormat(format);
switch (format) {
case wgpu::VertexFormat::Uint8x2:
return tint::transform::VertexFormat::kVec2U8;
@ -116,39 +115,6 @@ namespace dawn_native {
case wgpu::VertexFormat::Undefined:
break;
// Deprecated formats (should be unreachable after NormalizeVertexFormat call)
case wgpu::VertexFormat::UChar2:
case wgpu::VertexFormat::UChar4:
case wgpu::VertexFormat::Char2:
case wgpu::VertexFormat::Char4:
case wgpu::VertexFormat::UChar2Norm:
case wgpu::VertexFormat::UChar4Norm:
case wgpu::VertexFormat::Char2Norm:
case wgpu::VertexFormat::Char4Norm:
case wgpu::VertexFormat::UShort2:
case wgpu::VertexFormat::UShort4:
case wgpu::VertexFormat::UShort2Norm:
case wgpu::VertexFormat::UShort4Norm:
case wgpu::VertexFormat::Short2:
case wgpu::VertexFormat::Short4:
case wgpu::VertexFormat::Short2Norm:
case wgpu::VertexFormat::Short4Norm:
case wgpu::VertexFormat::Half2:
case wgpu::VertexFormat::Half4:
case wgpu::VertexFormat::Float:
case wgpu::VertexFormat::Float2:
case wgpu::VertexFormat::Float3:
case wgpu::VertexFormat::Float4:
case wgpu::VertexFormat::UInt:
case wgpu::VertexFormat::UInt2:
case wgpu::VertexFormat::UInt3:
case wgpu::VertexFormat::UInt4:
case wgpu::VertexFormat::Int:
case wgpu::VertexFormat::Int2:
case wgpu::VertexFormat::Int3:
case wgpu::VertexFormat::Int4:
break;
}
UNREACHABLE();
}

View File

@ -214,72 +214,6 @@ class ImageCopyBufferDeprecationTests : public DeprecationTests {
wgpu::Extent3D copySize = {1, 1, 1};
};
// Tests that deprecated vertex formats properly raise a deprecation warning when used
class VertexFormatDeprecationTests : public DeprecationTests {
protected:
// Runs the test
void DoTest(const wgpu::VertexFormat vertexFormat, bool deprecated) {
std::string attribute = "[[location(0)]] a : ";
attribute += dawn::GetWGSLVertexFormatType(vertexFormat);
std::string attribAccess = dawn::VertexFormatNumComponents(vertexFormat) > 1
? "vec4<f32>(f32(a.x), 0.0, 0.0, 1.0)"
: "vec4<f32>(f32(a), 0.0, 0.0, 1.0)";
wgpu::ShaderModule vsModule = utils::CreateShaderModule(device, (R"(
[[stage(vertex)]] fn main()" + attribute + R"() -> [[builtin(position)]] vec4<f32> {
return )" + attribAccess + R"(;
}
)")
.c_str());
wgpu::ShaderModule fsModule = utils::CreateShaderModule(device, R"(
[[stage(fragment)]] fn main() -> [[location(0)]] vec4<f32> {
return vec4<f32>(1.0, 1.0, 1.0, 1.0);
}
)");
utils::ComboRenderPipelineDescriptor2 descriptor;
descriptor.vertex.module = vsModule;
descriptor.cFragment.module = fsModule;
descriptor.primitive.topology = wgpu::PrimitiveTopology::PointList;
descriptor.vertex.bufferCount = 1;
descriptor.cBuffers[0].arrayStride = 32;
descriptor.cBuffers[0].attributeCount = 1;
descriptor.cAttributes[0].format = vertexFormat;
descriptor.cAttributes[0].offset = 0;
descriptor.cAttributes[0].shaderLocation = 0;
descriptor.cTargets[0].format = utils::BasicRenderPass::kDefaultColorFormat;
if (deprecated) {
EXPECT_DEPRECATION_WARNING(device.CreateRenderPipeline2(&descriptor));
} else {
device.CreateRenderPipeline2(&descriptor);
}
}
};
TEST_P(VertexFormatDeprecationTests, NewVertexFormats) {
// Using the new vertex formats does not emit a warning.
for (auto& format : dawn::kAllVertexFormats) {
DoTest(format, false);
}
}
TEST_P(VertexFormatDeprecationTests, DeprecatedVertexFormats) {
// Using deprecated vertex formats does emit a warning.
for (auto& format : dawn::kAllDeprecatedVertexFormats) {
DoTest(format, true);
}
}
DAWN_INSTANTIATE_TEST(VertexFormatDeprecationTests,
D3D12Backend(),
MetalBackend(),
NullBackend(),
OpenGLBackend(),
OpenGLESBackend(),
VulkanBackend());
// Tests that deprecated blend factors properly raise a deprecation warning when used
class BlendFactorDeprecationTests : public DeprecationTests {
protected: