Avoid double ForceSet() on Mali
Toggles::ForceSet() must only be called once.
Fixed: chromium:1508671
Change-Id: I2dbf6e5599e1b13cb4d36f677f97e2666b700d5d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/164800
Auto-Submit: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Kokoro: James Price <jrprice@google.com>
diff --git a/src/dawn/native/vulkan/PhysicalDeviceVk.cpp b/src/dawn/native/vulkan/PhysicalDeviceVk.cpp
index 9757ae68..37f36a0 100644
--- a/src/dawn/native/vulkan/PhysicalDeviceVk.cpp
+++ b/src/dawn/native/vulkan/PhysicalDeviceVk.cpp
@@ -664,14 +664,11 @@
// The environment can only request to use VK_KHR_zero_initialize_workgroup_memory when the
// extension is available. Override the decision if it is not applicable or
// zeroInitializeWorkgroupMemoryFeatures.shaderZeroInitializeWorkgroupMemory == VK_FALSE.
+ // Never use the extension on Mali devices due to a known bug (see crbug.com/tint/2101).
if (!GetDeviceInfo().HasExt(DeviceExt::ZeroInitializeWorkgroupMemory) ||
GetDeviceInfo().zeroInitializeWorkgroupMemoryFeatures.shaderZeroInitializeWorkgroupMemory ==
- VK_FALSE) {
- deviceToggles->ForceSet(Toggle::VulkanUseZeroInitializeWorkgroupMemoryExtension, false);
- }
- // Never use VK_KHR_zero_initialize_workgroup_memory on Mali devices due to a known bug.
- // See crbug.com/tint/2101.
- if (IsAndroidARM()) {
+ VK_FALSE ||
+ IsAndroidARM()) {
deviceToggles->ForceSet(Toggle::VulkanUseZeroInitializeWorkgroupMemoryExtension, false);
}
// By default try to initialize workgroup memory with OpConstantNull according to the Vulkan