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:
parent
a548578f67
commit
4139fa5ca6
33
dawn.json
33
dawn.json
|
@ -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": {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue