D3D12: Disable GBV when using partial validation.

GBV's ability to patch shaders with validation code
was hanging several end2end tests. Since disabling
GBV shader patching would render partial validation
ineffective, partial validation was re-mapped to have
GBV disabled while full validation enables GBV by default.

End2end tests now default to partial validation so
tests that would otherwise not run with GBV can still
have some coverage.

BUG=dawn:592

Change-Id: Iafb271b5ee8862592152fa45c34f188d64432e60
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46725
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
Auto-Submit: Bryan Bernhart <bryan.bernhart@intel.com>
This commit is contained in:
Bryan Bernhart
2021-04-26 18:26:36 +00:00
committed by Commit Bot service account
parent 3d71624bfd
commit e688e52e6c
3 changed files with 6 additions and 28 deletions

View File

@@ -39,10 +39,8 @@ namespace dawn_native { namespace d3d12 {
functions->d3d12GetDebugInterface(IID_PPV_ARGS(&debugController)))) {
ASSERT(debugController != nullptr);
debugController->EnableDebugLayer();
debugController->SetEnableGPUBasedValidation(true);
if (validationLevel == BackendValidationLevel::Partial) {
debugController->SetGPUBasedValidationFlags(
D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING);
if (validationLevel == BackendValidationLevel::Full) {
debugController->SetEnableGPUBasedValidation(true);
}
// Enable additional debug layers.