From 55f64cef2fa4213302027852fe575a38b75255da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Thu, 1 Aug 2019 18:10:57 +0200 Subject: [PATCH] tests: Add option to enable GPU-based validation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- include/vkd3d_d3d12.idl | 13 +++++++++++++ tests/d3d12_crosstest.h | 19 ++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/include/vkd3d_d3d12.idl b/include/vkd3d_d3d12.idl index 2b395aa1..067db8da 100644 --- a/include/vkd3d_d3d12.idl +++ b/include/vkd3d_d3d12.idl @@ -2329,6 +2329,19 @@ interface ID3D12Debug : IUnknown void EnableDebugLayer(); } +[ + uuid(affaa4ca-63fe-4d8e-b8ad-159000af4304), + object, + local, + pointer_default(unique) +] +interface ID3D12Debug1 : IUnknown +{ + void EnableDebugLayer(); + void SetEnableGPUBasedValidation(BOOL enable); + void SetEnableSynchronizedCommandQueueValidation(BOOL enable); +} + [ uuid(34ab647b-3cc8-46ac-841b-c0965645c046), object, diff --git a/tests/d3d12_crosstest.h b/tests/d3d12_crosstest.h index fbc0e3de..1f7e7648 100644 --- a/tests/d3d12_crosstest.h +++ b/tests/d3d12_crosstest.h @@ -647,7 +647,8 @@ static void parse_args(int argc, char **argv) static void enable_d3d12_debug_layer(int argc, char **argv) { - bool enable_debug_layer = false; + bool enable_debug_layer = false, enable_gpu_based_validation = false; + ID3D12Debug1 *debug1; ID3D12Debug *debug; unsigned int i; @@ -655,6 +656,22 @@ static void enable_d3d12_debug_layer(int argc, char **argv) { if (!strcmp(argv[i], "--validate")) enable_debug_layer = true; + else if (!strcmp(argv[i], "--gbv")) + enable_gpu_based_validation = true; + } + + if (enable_gpu_based_validation) + { + if (SUCCEEDED(D3D12GetDebugInterface(&IID_ID3D12Debug1, (void **)&debug1))) + { + ID3D12Debug1_SetEnableGPUBasedValidation(debug1, true); + ID3D12Debug1_Release(debug1); + enable_debug_layer = true; + } + else + { + trace("Failed to enable GPU-based validation.\n"); + } } if (enable_debug_layer && SUCCEEDED(D3D12GetDebugInterface(&IID_ID3D12Debug, (void **)&debug)))