mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-14 15:46:28 +00:00
Fixing a deprecated arrayLayer value inside Queue::WriteTexture
Chromium always sends arrayLayer instead of origin.depth since the migration hasn't been finished yet. This wasn't caught in Dawn's testing since we are using origin.depth everywhere. Bug: dawn:483 Change-Id: I13b1ccfb016eea01a3291ca439457db09966e9a3 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/26160 Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Tomek Ponitka <tommek@google.com>
This commit is contained in:
committed by
Commit Bot service account
parent
8c201dfadc
commit
eac38cfbc1
@@ -207,9 +207,17 @@ TEST_P(TextureCopyViewArrayLayerDeprecationTests, DeprecationWarning) {
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyTextureToTexture(&texNewCopy, &texOldCopy, ©Size));
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyTextureToBuffer(&texOldCopy, &bufCopy, ©Size));
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyTextureToTexture(&texOldCopy, &texNewCopy, ©Size));
|
||||
|
||||
wgpu::CommandBuffer command = encoder.Finish();
|
||||
|
||||
queue.Submit(1, &command);
|
||||
|
||||
// TODO(dawn:483): Add other backends after implementing WriteTexture in them.
|
||||
if (IsMetal() || IsVulkan()) {
|
||||
std::vector<uint32_t> data = {1};
|
||||
EXPECT_DEPRECATION_WARNING(
|
||||
queue.WriteTexture(&texOldCopy, data.data(), 4, &bufCopy.layout, ©Size));
|
||||
}
|
||||
}
|
||||
|
||||
// Test that using both TextureCopyView::arrayLayer and origin.z is an error.
|
||||
@@ -233,30 +241,44 @@ TEST_P(TextureCopyViewArrayLayerDeprecationTests, BothArrayLayerAndOriginZIsErro
|
||||
encoder = device.CreateCommandEncoder();
|
||||
encoder.CopyTextureToTexture(&texErrorCopy, &texNewCopy, ©Size);
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
// TODO(dawn:483): Add other backends after implementing WriteTexture in them.
|
||||
if (IsMetal() || IsVulkan()) {
|
||||
std::vector<uint32_t> data = {1};
|
||||
ASSERT_DEVICE_ERROR(
|
||||
queue.WriteTexture(&texErrorCopy, data.data(), 4, &bufCopy.layout, ©Size));
|
||||
}
|
||||
}
|
||||
|
||||
// Test that using TextureCopyView::arrayLayer is correctly taken into account
|
||||
TEST_P(TextureCopyViewArrayLayerDeprecationTests, StateTracking) {
|
||||
wgpu::TextureCopyView texOOBCopy = MakeErrorTextureCopyView();
|
||||
wgpu::TextureCopyView texOOBCopy = MakeOldTextureCopyView();
|
||||
texOOBCopy.arrayLayer = 2; // Oh no, it is OOB!
|
||||
wgpu::TextureCopyView texNewCopy = MakeNewTextureCopyView();
|
||||
wgpu::BufferCopyView bufCopy = MakeBufferCopyView();
|
||||
|
||||
wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
|
||||
encoder.CopyBufferToTexture(&bufCopy, &texOOBCopy, ©Size);
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyBufferToTexture(&bufCopy, &texOOBCopy, ©Size));
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
encoder = device.CreateCommandEncoder();
|
||||
encoder.CopyTextureToTexture(&texNewCopy, &texOOBCopy, ©Size);
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyTextureToTexture(&texNewCopy, &texOOBCopy, ©Size));
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
encoder = device.CreateCommandEncoder();
|
||||
encoder.CopyTextureToBuffer(&texOOBCopy, &bufCopy, ©Size);
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyTextureToBuffer(&texOOBCopy, &bufCopy, ©Size));
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
encoder = device.CreateCommandEncoder();
|
||||
encoder.CopyTextureToTexture(&texOOBCopy, &texNewCopy, ©Size);
|
||||
EXPECT_DEPRECATION_WARNING(encoder.CopyTextureToTexture(&texOOBCopy, &texNewCopy, ©Size));
|
||||
ASSERT_DEVICE_ERROR(encoder.Finish());
|
||||
|
||||
// TODO(dawn:483): Add other backends after implementing WriteTexture in them.
|
||||
if (IsMetal() || IsVulkan()) {
|
||||
std::vector<uint32_t> data = {1};
|
||||
EXPECT_DEPRECATION_WARNING(ASSERT_DEVICE_ERROR(
|
||||
queue.WriteTexture(&texOOBCopy, data.data(), 4, &bufCopy.layout, ©Size)));
|
||||
}
|
||||
}
|
||||
|
||||
DAWN_INSTANTIATE_TEST(TextureCopyViewArrayLayerDeprecationTests,
|
||||
|
||||
Reference in New Issue
Block a user