[PATCH 11/11] dxgi/tests: Add option to enable Direct3D 12 validation.
Józef Kucia
jkucia at codeweavers.com
Wed Aug 8 09:11:42 CDT 2018
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
dlls/dxgi/tests/device.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/dxgi/tests/device.c b/dlls/dxgi/tests/device.c
index 6e14010f5c33..81b231a4d36f 100644
--- a/dlls/dxgi/tests/device.c
+++ b/dlls/dxgi/tests/device.c
@@ -37,6 +37,7 @@ static HRESULT (WINAPI *pCreateDXGIFactory1)(REFIID iid, void **factory);
static HRESULT (WINAPI *pCreateDXGIFactory2)(UINT flags, REFIID iid, void **factory);
static PFN_D3D12_CREATE_DEVICE pD3D12CreateDevice;
+static PFN_D3D12_GET_DEBUG_INTERFACE pD3D12GetDebugInterface;
static ULONG get_refcount(IUnknown *iface)
{
@@ -4042,7 +4043,9 @@ static void run_on_d3d12(void (*test_func)(IUnknown *device, BOOL is_d3d12))
START_TEST(device)
{
HMODULE dxgi_module, d3d12_module;
+ BOOL enable_debug_layer = FALSE;
unsigned int argc, i;
+ ID3D12Debug *debug;
char **argv;
dxgi_module = GetModuleHandleA("dxgi.dll");
@@ -4055,7 +4058,9 @@ START_TEST(device)
argc = winetest_get_mainargs(&argv);
for (i = 2; i < argc; ++i)
{
- if (!strcmp(argv[i], "--warp"))
+ if (!strcmp(argv[i], "--validate"))
+ enable_debug_layer = TRUE;
+ else if (!strcmp(argv[i], "--warp"))
use_warp_adapter = TRUE;
else if (!strcmp(argv[i], "--adapter") && i + 1 < argc)
use_adapter_idx = atoi(argv[++i]);
@@ -4091,6 +4096,13 @@ START_TEST(device)
}
pD3D12CreateDevice = (void *)GetProcAddress(d3d12_module, "D3D12CreateDevice");
+ pD3D12GetDebugInterface = (void *)GetProcAddress(d3d12_module, "D3D12GetDebugInterface");
+
+ if (enable_debug_layer && SUCCEEDED(pD3D12GetDebugInterface(&IID_ID3D12Debug, (void **)&debug)))
+ {
+ ID3D12Debug_EnableDebugLayer(debug);
+ ID3D12Debug_Release(debug);
+ }
run_on_d3d12(test_swapchain_backbuffer_index);
--
2.16.4
More information about the wine-devel
mailing list