mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-20 18:29:23 +00:00
Remove deprecated SetIndexBuffer (without format).
This also simplifies a bunch of code in backends that was used to handle getting the indexFormat from the pipeline "late". Bug: dawn:502 Change-Id: Ibae50c8df21323fd391515f6036552e9fb868d93 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/32023 Commit-Queue: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
33f29ea9b2
commit
5fad85bbd9
@@ -84,7 +84,7 @@ class DrawIndirectValidationTest : public ValidationTest {
|
||||
uint32_t zeros[100] = {};
|
||||
wgpu::Buffer indexBuffer =
|
||||
utils::CreateBufferFromData(device, zeros, sizeof(zeros), wgpu::BufferUsage::Index);
|
||||
pass.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
pass.DrawIndexedIndirect(indirectBuffer, indirectOffset);
|
||||
} else {
|
||||
pass.DrawIndirect(indirectBuffer, indirectOffset);
|
||||
|
||||
@@ -48,6 +48,21 @@ class IndexBufferValidationTest : public ValidationTest {
|
||||
}
|
||||
};
|
||||
|
||||
// Test that IndexFormat::Undefined is disallowed.
|
||||
TEST_F(IndexBufferValidationTest, UndefinedIndexFormat) {
|
||||
wgpu::BufferDescriptor bufferDesc;
|
||||
bufferDesc.usage = wgpu::BufferUsage::Index;
|
||||
bufferDesc.size = 256;
|
||||
wgpu::Buffer buffer = device.CreateBuffer(&bufferDesc);
|
||||
|
||||
DummyRenderPass renderPass(device);
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Undefined);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
}
|
||||
|
||||
// Test that for OOB validation of index buffer offset and size.
|
||||
TEST_F(IndexBufferValidationTest, IndexBufferOffsetOOBValidation) {
|
||||
wgpu::BufferDescriptor bufferDesc;
|
||||
@@ -61,13 +76,13 @@ TEST_F(IndexBufferValidationTest, IndexBufferOffsetOOBValidation) {
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
|
||||
// Explicit size
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 0, 256);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 0, 256);
|
||||
// Implicit size
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 0, 0);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 256 - 4, 0);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 4, 0);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 0, 0);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 256 - 4, 0);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 4, 0);
|
||||
// Implicit size of zero
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 256, 0);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 256, 0);
|
||||
pass.EndPass();
|
||||
encoder.Finish();
|
||||
}
|
||||
@@ -76,7 +91,7 @@ TEST_F(IndexBufferValidationTest, IndexBufferOffsetOOBValidation) {
|
||||
{
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 4, 256);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 4, 256);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
}
|
||||
@@ -85,7 +100,7 @@ TEST_F(IndexBufferValidationTest, IndexBufferOffsetOOBValidation) {
|
||||
{
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 256 + 4, 0);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 256 + 4, 0);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
}
|
||||
@@ -98,27 +113,27 @@ TEST_F(IndexBufferValidationTest, IndexBufferOffsetOOBValidation) {
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
// Explicit size
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 0, 256);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 0, 256);
|
||||
// Implicit size
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 0, 0);
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 256 - 4, 0);
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 4, 0);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 0, 0);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 256 - 4, 0);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 4, 0);
|
||||
// Implicit size of zero
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 256, 0);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 256, 0);
|
||||
encoder.Finish();
|
||||
}
|
||||
|
||||
// Bad case, offset + size is larger than the buffer
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 4, 256);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 4, 256);
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
}
|
||||
|
||||
// Bad case, size is 0 but the offset is larger than the buffer
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
encoder.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32, 256 + 4, 0);
|
||||
encoder.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32, 256 + 4, 0);
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
}
|
||||
}
|
||||
@@ -141,7 +156,7 @@ TEST_F(IndexBufferValidationTest, IndexBufferFormatMatchesPipelineStripFormat) {
|
||||
// Expected to fail because pipeline and index formats don't match.
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
encoder.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint16);
|
||||
encoder.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint16);
|
||||
encoder.SetPipeline(pipeline32);
|
||||
encoder.DrawIndexed(3);
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
@@ -149,7 +164,7 @@ TEST_F(IndexBufferValidationTest, IndexBufferFormatMatchesPipelineStripFormat) {
|
||||
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
encoder.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.SetPipeline(pipeline16);
|
||||
encoder.DrawIndexed(3);
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
@@ -158,7 +173,7 @@ TEST_F(IndexBufferValidationTest, IndexBufferFormatMatchesPipelineStripFormat) {
|
||||
// Expected to succeed because pipeline and index formats match.
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
encoder.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint16);
|
||||
encoder.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint16);
|
||||
encoder.SetPipeline(pipeline16);
|
||||
encoder.DrawIndexed(3);
|
||||
encoder.Finish();
|
||||
@@ -166,7 +181,7 @@ TEST_F(IndexBufferValidationTest, IndexBufferFormatMatchesPipelineStripFormat) {
|
||||
|
||||
{
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&renderBundleDesc);
|
||||
encoder.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.SetPipeline(pipeline32);
|
||||
encoder.DrawIndexed(3);
|
||||
encoder.Finish();
|
||||
|
||||
@@ -582,10 +582,7 @@ TEST_F(RenderPipelineValidationTest, StripIndexFormatRequired) {
|
||||
// primitive topology isn't a strip type.
|
||||
device.CreateRenderPipeline(&descriptor);
|
||||
} else {
|
||||
// TODO(crbug.com/dawn/502): Once setIndexBuffer requires an
|
||||
// indexFormat. this should fail. For now it succeeds to allow
|
||||
// backwards compatibility during the deprecation period.
|
||||
EXPECT_DEPRECATION_WARNING(device.CreateRenderPipeline(&descriptor));
|
||||
ASSERT_DEVICE_ERROR(device.CreateRenderPipeline(&descriptor));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace {
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
DummyRenderPass dummyRenderPass(device);
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetVertexBuffer(0, buffer);
|
||||
pass.EndPass();
|
||||
encoder.Finish();
|
||||
@@ -135,7 +135,7 @@ namespace {
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
DummyRenderPass dummyRenderPass(device);
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, bg);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
@@ -258,12 +258,12 @@ namespace {
|
||||
DummyRenderPass dummyRenderPass(device);
|
||||
|
||||
wgpu::RenderPassEncoder pass0 = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass0.SetIndexBufferWithFormat(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass0.SetIndexBuffer(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass0.SetBindGroup(0, bg1);
|
||||
pass0.EndPass();
|
||||
|
||||
wgpu::RenderPassEncoder pass1 = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass1.SetIndexBufferWithFormat(buffer1, wgpu::IndexFormat::Uint32);
|
||||
pass1.SetIndexBuffer(buffer1, wgpu::IndexFormat::Uint32);
|
||||
pass1.SetBindGroup(0, bg0);
|
||||
pass1.EndPass();
|
||||
|
||||
@@ -349,7 +349,7 @@ namespace {
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetPipeline(rp);
|
||||
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.Draw(3);
|
||||
|
||||
pass.SetBindGroup(0, bg);
|
||||
@@ -414,7 +414,7 @@ namespace {
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetPipeline(rp);
|
||||
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, writeBG);
|
||||
pass.Draw(3);
|
||||
|
||||
@@ -514,8 +514,8 @@ namespace {
|
||||
{
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBufferWithFormat(buffer1, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer1, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, bg);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
@@ -526,8 +526,8 @@ namespace {
|
||||
{
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer1, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBufferWithFormat(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer1, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, bg);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
@@ -584,7 +584,7 @@ namespace {
|
||||
{
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, bg0);
|
||||
pass.SetBindGroup(0, bg1);
|
||||
pass.EndPass();
|
||||
@@ -596,7 +596,7 @@ namespace {
|
||||
{
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer0, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, bg1);
|
||||
pass.SetBindGroup(0, bg0);
|
||||
pass.EndPass();
|
||||
@@ -724,7 +724,7 @@ namespace {
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
DummyRenderPass dummyRenderPass(device);
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&dummyRenderPass);
|
||||
pass.SetIndexBufferWithFormat(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(buffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetBindGroup(0, bg);
|
||||
pass.EndPass();
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
@@ -60,7 +60,7 @@ TEST_F(UnsafeAPIValidationTest, DrawIndexedIndirectDisallowed) {
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
|
||||
pass.SetPipeline(pipeline);
|
||||
|
||||
pass.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
pass.DrawIndexed(1);
|
||||
|
||||
pass.DrawIndirect(indirectBuffer, 0);
|
||||
@@ -73,7 +73,7 @@ TEST_F(UnsafeAPIValidationTest, DrawIndexedIndirectDisallowed) {
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&bundleDesc);
|
||||
encoder.SetPipeline(pipeline);
|
||||
|
||||
encoder.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.DrawIndexed(1);
|
||||
|
||||
encoder.DrawIndirect(indirectBuffer, 0);
|
||||
@@ -86,7 +86,7 @@ TEST_F(UnsafeAPIValidationTest, DrawIndexedIndirectDisallowed) {
|
||||
wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass);
|
||||
|
||||
pass.SetPipeline(pipeline);
|
||||
pass.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
pass.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
pass.DrawIndexedIndirect(indirectBuffer, 0);
|
||||
|
||||
pass.EndPass();
|
||||
@@ -98,7 +98,7 @@ TEST_F(UnsafeAPIValidationTest, DrawIndexedIndirectDisallowed) {
|
||||
wgpu::RenderBundleEncoder encoder = device.CreateRenderBundleEncoder(&bundleDesc);
|
||||
|
||||
encoder.SetPipeline(pipeline);
|
||||
encoder.SetIndexBufferWithFormat(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.SetIndexBuffer(indexBuffer, wgpu::IndexFormat::Uint32);
|
||||
encoder.DrawIndexedIndirect(indirectBuffer, 0);
|
||||
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
Reference in New Issue
Block a user