Skip to content

Commit 71ab167

Browse files
KangzDawn LUCI CQ
authored andcommitted
Revert "[dawn][vk] Fix uses of pipeline robustness when robustness is disabled."
This reverts commit 20039ea. Reason for revert: breaks the roll into g3, revert before investigating. Original change's description: > [dawn][vk] Fix uses of pipeline robustness when robustness is disabled. > > When Dawn's robustness is disabled we use pipeline robustness to tell > the driver to not do any robustness if it can, so we still need to > enable the Vulkan extension in that case, to allow passing > VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT. > > When robustness is disabled we also need to skip setting the > VulkanUse*RobustAccess2 toggles since the relevant features are not > enabled, which would cause a VVL error when they make pipeline > robustness request "robust access 2". > > Fixed: 443940959 > Change-Id: Icb91b2b316b2a543240e5522f9d631862a7cd8a8 > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/261175 > Reviewed-by: Kyle Charbonneau <[email protected]> > Commit-Queue: Corentin Wallez <[email protected]> > Reviewed-by: Brandon Jones <[email protected]> # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Ibc9175d462fbd840f621b5350c55a0a39cf11acd Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/264694 Commit-Queue: Loko Kung <[email protected]> Reviewed-by: Corentin Wallez <[email protected]> Reviewed-by: Loko Kung <[email protected]>
1 parent da556b4 commit 71ab167

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

src/dawn/native/vulkan/DeviceVk.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -448,15 +448,6 @@ ResultOrError<VulkanDeviceKnobs> Device::CreateDevice(VkPhysicalDevice vkPhysica
448448
usedKnobs.features.shaderSampledImageArrayDynamicIndexing = VK_TRUE;
449449
usedKnobs.features.shaderStorageImageArrayDynamicIndexing = VK_TRUE;
450450

451-
// Always enable pipeline robustness if available as it allows both better control of robustness
452-
// when we want it, and to give hints to not do any robustness when we don't need it.
453-
if (mDeviceInfo.HasExt(DeviceExt::PipelineRobustness)) {
454-
DAWN_ASSERT(usedKnobs.HasExt(DeviceExt::PipelineRobustness));
455-
456-
usedKnobs.pipelineRobustnessFeatures = mDeviceInfo.pipelineRobustnessFeatures;
457-
featuresChain.Add(&usedKnobs.pipelineRobustnessFeatures);
458-
}
459-
460451
if (IsRobustnessEnabled()) {
461452
usedKnobs.features.robustBufferAccess = VK_TRUE;
462453

@@ -470,6 +461,14 @@ ResultOrError<VulkanDeviceKnobs> Device::CreateDevice(VkPhysicalDevice vkPhysica
470461
featuresChain.Add(&usedKnobs.robustness2Features);
471462
}
472463

464+
// Enable pipelineRobustness to better control where robustness happens.
465+
if (mDeviceInfo.HasExt(DeviceExt::PipelineRobustness)) {
466+
DAWN_ASSERT(usedKnobs.HasExt(DeviceExt::PipelineRobustness));
467+
468+
usedKnobs.pipelineRobustnessFeatures = mDeviceInfo.pipelineRobustnessFeatures;
469+
featuresChain.Add(&usedKnobs.pipelineRobustnessFeatures);
470+
}
471+
473472
// robustBufferAccess requires robustBufferAccessUpdateAfterBind to be used with bindless
474473
// enabled. If it is not available, we manual implement robustness for shader buffers and
475474
// rely on pipelineRobustness for vertex buffer robustness.

src/dawn/native/vulkan/PhysicalDeviceVk.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,8 +1116,7 @@ void PhysicalDevice::SetupBackendDeviceToggles(dawn::platform::Platform* platfor
11161116

11171117
// By default try to skip injecting robustness checks on textures using VK_EXT_robustness2. But
11181118
// disable that optimization when the feature is not available.
1119-
if (deviceToggles->IsSet(Toggle::DisableRobustness) ||
1120-
!GetDeviceInfo().HasExt(DeviceExt::Robustness2) ||
1119+
if (!GetDeviceInfo().HasExt(DeviceExt::Robustness2) ||
11211120
GetDeviceInfo().robustness2Features.robustImageAccess2 == VK_FALSE) {
11221121
deviceToggles->ForceSet(Toggle::VulkanUseImageRobustAccess2, false);
11231122
} else {
@@ -1127,8 +1126,7 @@ void PhysicalDevice::SetupBackendDeviceToggles(dawn::platform::Platform* platfor
11271126
// By default try to skip injecting robustness checks on buffers using VK_EXT_robustness2. But
11281127
// disable that optimization when the feature is not available or if it conflicts with bindless
11291128
// support (see comment in the detection of bindless support for more details).
1130-
if (deviceToggles->IsSet(Toggle::DisableRobustness) ||
1131-
!GetDeviceInfo().HasExt(DeviceExt::Robustness2) ||
1129+
if (!GetDeviceInfo().HasExt(DeviceExt::Robustness2) ||
11321130
GetDeviceInfo().robustness2Features.robustBufferAccess2 == VK_FALSE) {
11331131
deviceToggles->ForceSet(Toggle::VulkanUseBufferRobustAccess2, false);
11341132
} else if (GetDeviceInfo().HasExt(DeviceExt::DescriptorIndexing) &&

0 commit comments

Comments
 (0)