From: Matteo Bruni mbruni@codeweavers.com
Share the code with the existing d3dcompiler_47 tests. --- configure | 1 + configure.ac | 1 + dlls/d3dcompiler_42/tests/Makefile.in | 11 +++++ dlls/d3dcompiler_43/tests/hlsl_d3d11.c | 24 ++++++---- dlls/d3dcompiler_43/tests/reflection.c | 61 ++++++++++++++++---------- 5 files changed, 68 insertions(+), 30 deletions(-) create mode 100644 dlls/d3dcompiler_42/tests/Makefile.in
diff --git a/configure b/configure index 90b41de54be..08e7a3f7077 100755 --- a/configure +++ b/configure @@ -22221,6 +22221,7 @@ wine_fn_config_makefile dlls/d3dcompiler_39 enable_d3dcompiler_39 wine_fn_config_makefile dlls/d3dcompiler_40 enable_d3dcompiler_40 wine_fn_config_makefile dlls/d3dcompiler_41 enable_d3dcompiler_41 wine_fn_config_makefile dlls/d3dcompiler_42 enable_d3dcompiler_42 +wine_fn_config_makefile dlls/d3dcompiler_42/tests enable_tests wine_fn_config_makefile dlls/d3dcompiler_43 enable_d3dcompiler_43 wine_fn_config_makefile dlls/d3dcompiler_43/tests enable_tests wine_fn_config_makefile dlls/d3dcompiler_46 enable_d3dcompiler_46 diff --git a/configure.ac b/configure.ac index 3012a4d7b5b..306cbe03146 100644 --- a/configure.ac +++ b/configure.ac @@ -2515,6 +2515,7 @@ WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_39) WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_40) WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_41) WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_42) +WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_42/tests) WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_43) WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_43/tests) WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_46) diff --git a/dlls/d3dcompiler_42/tests/Makefile.in b/dlls/d3dcompiler_42/tests/Makefile.in new file mode 100644 index 00000000000..78dd100dc40 --- /dev/null +++ b/dlls/d3dcompiler_42/tests/Makefile.in @@ -0,0 +1,11 @@ +TESTDLL = d3dcompiler_42.dll +IMPORTS = d3d9 user32 d3dcompiler_42 +EXTRADEFS = -DD3D_COMPILER_VERSION=42 +PARENTSRC = ../../d3dcompiler_43/tests + +SOURCES = \ + asm.c \ + blob.c \ + hlsl_d3d11.c \ + hlsl_d3d9.c \ + reflection.c diff --git a/dlls/d3dcompiler_43/tests/hlsl_d3d11.c b/dlls/d3dcompiler_43/tests/hlsl_d3d11.c index 309ba6b2663..67f61c30a44 100644 --- a/dlls/d3dcompiler_43/tests/hlsl_d3d11.c +++ b/dlls/d3dcompiler_43/tests/hlsl_d3d11.c @@ -924,16 +924,24 @@ static void check_parameter_desc(const D3D11_SIGNATURE_PARAMETER_DESC *desc, const D3D11_SIGNATURE_PARAMETER_DESC *expect) { todo_wine_if(strcmp(desc->SemanticName, expect->SemanticName)) - ok(!strcmp(desc->SemanticName, expect->SemanticName), "Got name %s.\n", debugstr_a(desc->SemanticName)); - ok(desc->SemanticIndex == expect->SemanticIndex, "Got index %u.\n", desc->SemanticIndex); - ok(desc->Register == expect->Register, "Got register %u.\n", desc->Register); + ok(!strcmp(desc->SemanticName, expect->SemanticName), "Got name %s, expected %s.\n", + debugstr_a(desc->SemanticName), debugstr_a(expect->SemanticName)); + ok(desc->SemanticIndex == expect->SemanticIndex, "Got index %u, expected %u.\n", + desc->SemanticIndex, expect->SemanticIndex); + ok(desc->Register == expect->Register, "Got register %u, expected %u.\n", + desc->Register, expect->Register); todo_wine_if(desc->SystemValueType != expect->SystemValueType) - ok(desc->SystemValueType == expect->SystemValueType, "Got sysval %u.\n", desc->SystemValueType); - ok(desc->ComponentType == expect->ComponentType, "Got data type %u.\n", desc->ComponentType); - ok(desc->Mask == expect->Mask, "Got mask %#x.\n", desc->Mask); + ok(desc->SystemValueType == expect->SystemValueType, "Got sysval %u, expected %u.\n", + desc->SystemValueType, expect->SystemValueType); + ok(desc->ComponentType == expect->ComponentType, "Got data type %u, expected %u.\n", + desc->ComponentType, expect->ComponentType); + ok(desc->Mask == expect->Mask, "Got mask %#x, expected %#x.\n", desc->Mask, expect->Mask); todo_wine_if(desc->ReadWriteMask != expect->ReadWriteMask) - ok(desc->ReadWriteMask == expect->ReadWriteMask, "Got used mask %#x.\n", desc->ReadWriteMask); - ok(desc->Stream == expect->Stream, "Got stream %u.\n", desc->Stream); + ok(desc->ReadWriteMask == expect->ReadWriteMask + || broken(expect->ReadWriteMask == 0x5 && (desc->ReadWriteMask == 0 || desc->ReadWriteMask == 0x7)), + "Got used mask %#x, expected %#x.\n", + desc->ReadWriteMask, expect->ReadWriteMask); + ok(desc->Stream == expect->Stream, "Got stream %u, expected %u.\n", desc->Stream, expect->Stream); }
static void test_semantic_reflection(void) diff --git a/dlls/d3dcompiler_43/tests/reflection.c b/dlls/d3dcompiler_43/tests/reflection.c index ff6a5f8925b..85c2097c0fb 100644 --- a/dlls/d3dcompiler_43/tests/reflection.c +++ b/dlls/d3dcompiler_43/tests/reflection.c @@ -107,11 +107,10 @@ static void test_reflection_references(void) ok(!count, "Got unexpected count %lu.\n", count);
/* check invalid cases */ -#if D3D_COMPILER_VERSION >= 46 - expected = E_INVALIDARG; -#else - expected = E_NOINTERFACE; -#endif + if (D3D_COMPILER_VERSION >= 46) + expected = E_INVALIDARG; + else + expected = E_NOINTERFACE; hr = D3DReflect(test_reflection_blob, test_reflection_blob[6], &IID_ID3D10ShaderReflection, (void **)&ref10); ok(hr == expected || broken(hr == E_NOINTERFACE) /* Windows 8 */, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected); @@ -120,35 +119,48 @@ static void test_reflection_references(void) ok(hr == expected || broken(hr == E_NOINTERFACE) /* Windows 8 */, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
+ if (D3D_COMPILER_VERSION >= 43) + expected = D3DERR_INVALIDCALL; + else if (D3D_COMPILER_VERSION) + expected = E_INVALIDARG; + else + expected = E_FAIL; hr = D3DReflect(NULL, test_reflection_blob[6], &IID_ID3D10ShaderReflection1, (void **)&ref10_1); - ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#lx.\n", hr); + ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
hr = D3DReflect(NULL, test_reflection_blob[6], &IID_ID3D11ShaderReflection, (void **)&ref11); - ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#lx.\n", hr); + ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
/* returns different errors with different sizes */ hr = D3DReflect(test_reflection_blob, 31, &IID_ID3D10ShaderReflection1, (void **)&ref10_1); - ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#lx.\n", hr); + ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
-#if D3D_COMPILER_VERSION >= 46 - expected = D3DERR_INVALIDCALL; -#else - expected = E_FAIL; -#endif + if (D3D_COMPILER_VERSION >= 46) + expected = D3DERR_INVALIDCALL; + else if (D3D_COMPILER_VERSION == 42) + expected = E_INVALIDARG; + else + expected = E_FAIL; hr = D3DReflect(test_reflection_blob, 32, &IID_ID3D10ShaderReflection1, (void **)&ref10_1); ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
hr = D3DReflect(test_reflection_blob, test_reflection_blob[6]-1, &IID_ID3D10ShaderReflection1, (void **)&ref10_1); ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
- hr = D3DReflect(test_reflection_blob, 31, &IID_ID3D11ShaderReflection, (void **)&ref11); - ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#lx.\n", hr); - hr = D3DReflect(test_reflection_blob, 32, &IID_ID3D11ShaderReflection, (void **)&ref11); ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected);
hr = D3DReflect(test_reflection_blob, test_reflection_blob[6]-1, &IID_ID3D11ShaderReflection, (void **)&ref11); ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected); + + if (D3D_COMPILER_VERSION >= 43) + expected = D3DERR_INVALIDCALL; + else if (D3D_COMPILER_VERSION) + expected = E_INVALIDARG; + else + expected = D3DERR_INVALIDCALL; + hr = D3DReflect(test_reflection_blob, 31, &IID_ID3D11ShaderReflection, (void **)&ref11); + ok(hr == expected, "Got unexpected hr %#lx, expected %#lx.\n", hr, expected); } #endif
@@ -776,7 +788,9 @@ static void test_reflection_desc_ps(void) D3D_NAME expected; unsigned int i; #if D3D_COMPILER_VERSION +#if D3D_COMPILER_VERSION >= 43 UINT size_x, size_y, size_z, size_total; +#endif UINT ret; #endif
@@ -920,7 +934,7 @@ static void test_reflection_desc_ps(void) ok(!desc.Stream, "(%u): got unexpected Stream %u.\n", i, desc.Stream); }
-#if D3D_COMPILER_VERSION +#if D3D_COMPILER_VERSION >= 43 size_x = 0xdeadbeef; size_y = 0xdeadbeef; size_z = 0xdeadbeef; @@ -1070,7 +1084,7 @@ static void test_reflection_desc_ps_output(void) for (i = 0; i < ARRAY_SIZE(tests); ++i) { hr = call_reflect(tests[i].blob, tests[i].blob[6], &IID_ID3D11ShaderReflection, (void **)&ref11); - if (!D3D_COMPILER_VERSION) + if (D3D_COMPILER_VERSION < 43) { todo_wine ok(hr == E_INVALIDARG, "%u: Got unexpected hr %#lx.\n", i, hr); if (SUCCEEDED(hr)) @@ -1264,10 +1278,13 @@ static void test_reflection_cs(void) if (FAILED(hr)) return; size_total = ref11->lpVtbl->GetThreadGroupSize(ref11, &size_x, &size_y, &size_z); - ok(size_x == 16, "Unexpected size %u.\n", size_x); - ok(size_y == 8, "Unexpected size %u.\n", size_y); - ok(size_z == 4, "Unexpected size %u.\n", size_z); - ok(size_total == size_x * size_y * size_z, "Unexpected size %u.\n", size_total); + if (D3D_COMPILER_VERSION >= 43) + { + ok(size_x == 16, "Unexpected size %u.\n", size_x); + ok(size_y == 8, "Unexpected size %u.\n", size_y); + ok(size_z == 4, "Unexpected size %u.\n", size_z); + ok(size_total == size_x * size_y * size_z, "Unexpected size %u.\n", size_total); + }
ref11->lpVtbl->Release(ref11); }