[dawn][headers] Fix wire Texture properties reflection.
- Defaulting change in
https://dawn-review.googlesource.com/c/dawn/+/230315
broke some Chromium tests, but reverting that change is
hard because it was submitted as a part of a large stack.
- This band-aid fix should fix the roll issue by manually
defaulting the values in the injected Textures. I will
follow up with a more global change to fix this issue
because defaulting does not work the same as in native
for the wire.
Bug: 404731192
Change-Id: I5348dfa0f4def9a6435478d742074236bf34631b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/231676
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Auto-Submit: Loko Kung <lokokung@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
diff --git a/src/dawn/native/Texture.cpp b/src/dawn/native/Texture.cpp
index 90c6ed0..fc2ee35 100644
--- a/src/dawn/native/Texture.cpp
+++ b/src/dawn/native/Texture.cpp
@@ -968,7 +968,8 @@
// static
Ref<TextureBase> TextureBase::MakeError(DeviceBase* device, const TextureDescriptor* descriptor) {
- return AcquireRef(new TextureBase(device, descriptor, ObjectBase::kError));
+ TextureDescriptor reifiedDesc = descriptor->WithTrivialFrontendDefaults();
+ return AcquireRef(new TextureBase(device, &reifiedDesc, ObjectBase::kError));
}
ObjectType TextureBase::GetType() const {
diff --git a/src/dawn/tests/unittests/validation/TextureValidationTests.cpp b/src/dawn/tests/unittests/validation/TextureValidationTests.cpp
index 0c8e400..caf981a 100644
--- a/src/dawn/tests/unittests/validation/TextureValidationTests.cpp
+++ b/src/dawn/tests/unittests/validation/TextureValidationTests.cpp
@@ -995,7 +995,11 @@
EXPECT_EQ(desc.size.depthOrArrayLayers, tex.GetDepthOrArrayLayers());
EXPECT_EQ(desc.mipLevelCount, tex.GetMipLevelCount());
EXPECT_EQ(desc.sampleCount, tex.GetSampleCount());
- EXPECT_EQ(desc.dimension, tex.GetDimension());
+ if (desc.dimension == wgpu::TextureDimension::Undefined) {
+ EXPECT_EQ(wgpu::TextureDimension::e2D, tex.GetDimension());
+ } else {
+ EXPECT_EQ(desc.dimension, tex.GetDimension());
+ }
EXPECT_EQ(desc.usage, tex.GetUsage());
EXPECT_EQ(desc.format, tex.GetFormat());
}
diff --git a/src/dawn/wire/client/Texture.cpp b/src/dawn/wire/client/Texture.cpp
index 48420ba..77d6e01 100644
--- a/src/dawn/wire/client/Texture.cpp
+++ b/src/dawn/wire/client/Texture.cpp
@@ -53,7 +53,8 @@
mSize(descriptor->size),
mMipLevelCount(descriptor->mipLevelCount),
mSampleCount(descriptor->sampleCount),
- mDimension(descriptor->dimension),
+ mDimension(descriptor->dimension == WGPUTextureDimension_Undefined ? WGPUTextureDimension_2D
+ : descriptor->dimension),
mFormat(descriptor->format),
mUsage(static_cast<WGPUTextureUsage>(descriptor->usage)) {}