Unblock multi-mip stencil textures on Metal

These textures still have some outstanding issues on both Intel and AMD,
where the wrong subresource can be read from.
Zero-initialization workarounds have been enabled to ensure that even
when the wrong subresource is read, uninitialized data is not read.

Bug: dawn:704, dawn:791, dawn:838
Change-Id: Ib118eff0c5ed5e7812fa70e88ece5317c1af13b0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/116849
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
This commit is contained in:
Austin Eng 2023-02-13 18:04:00 +00:00 committed by Dawn LUCI CQ
parent 20881f39e7
commit 44032e5084
1 changed files with 0 additions and 9 deletions

View File

@ -376,15 +376,6 @@ MaybeError ValidateTextureDescriptor(const DeviceBase* device,
descriptor->dimension, format->format);
DAWN_TRY(ValidateTextureSize(device, descriptor, format));
// TODO(crbug.com/dawn/838): Implement a workaround for this issue.
// Readbacks from the non-zero mip of a stencil texture may contain garbage data.
DAWN_INVALID_IF(device->IsToggleEnabled(Toggle::DisallowUnsafeAPIs) && format->HasStencil() &&
descriptor->mipLevelCount > 1 &&
device->GetAdapter()->GetBackendType() == wgpu::BackendType::Metal,
"https://crbug.com/dawn/838: Stencil textures with more than one mip level are "
"disabled on Metal.");
return {};
}