From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/tests/effect.c | 49 ++++++ dlls/d3d10_1/tests/d3d10_1.c | 217 ++++++++++++++++++++++++- dlls/d3dcompiler_43/tests/reflection.c | 3 +- 3 files changed, 265 insertions(+), 4 deletions(-)
diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index b1fdc357f7d..54539ddd080 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -9011,6 +9011,54 @@ static void test_effect_fx_4_1(void) ok(!refcount, "Device has %lu references left.\n", refcount); }
+#if 0 +BlendState blend_state +{ + srcblend = one; +}; +#endif +static DWORD fx_4_1_test_blend_state[] = +{ + 0x43425844, 0xe4566da7, 0x2242fb47, 0xa5924d09, 0x8280296f, 0x00000001, 0x000001a7, 0x00000001, + 0x00000024, 0x30315846, 0x0000017b, 0xfeff1011, 0x00000000, 0x00000000, 0x00000001, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000097, 0x00000000, 0x00000000, 0x00000000, 0x00000001, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6e656c42, + 0x61745364, 0x04006574, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, + 0x62000000, 0x646e656c, 0x6174735f, 0x01006574, 0x02000000, 0x02000000, 0x01000000, 0x02000000, + 0x02000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, + 0x02000000, 0x02000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, 0x02000000, 0x02000000, + 0x01000000, 0x02000000, 0x02000000, 0x2b000000, 0x0f000000, 0x00000000, 0xff000000, 0x08ffffff, + 0x26000000, 0x00000000, 0x01000000, 0x37000000, 0x26000000, 0x01000000, 0x01000000, 0x43000000, + 0x26000000, 0x02000000, 0x01000000, 0x4f000000, 0x26000000, 0x03000000, 0x01000000, 0x5b000000, + 0x26000000, 0x04000000, 0x01000000, 0x67000000, 0x26000000, 0x05000000, 0x01000000, 0x73000000, + 0x26000000, 0x06000000, 0x01000000, 0x7f000000, 0x26000000, 0x07000000, 0x01000000, 0x8b000000, + 0x00000000, 0x00000000, +}; + +static void test_effect_fx_4_1_blend_state(void) +{ + ID3D10Effect *effect = NULL; + ID3D10Device *device; + ULONG refcount; + HRESULT hr; + + if (!(device = create_device())) + { + skip("Failed to create device, skipping tests.\n"); + return; + } + + hr = create_effect(fx_4_1_test_blend_state, 0, device, NULL, &effect); + todo_wine + ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr); + + if (effect) + effect->lpVtbl->Release(effect); + + refcount = ID3D10Device_Release(device); + ok(!refcount, "Device has %lu references left.\n", refcount); +} + START_TEST(effect) { test_effect_constant_buffer_type(); @@ -9038,4 +9086,5 @@ START_TEST(effect) test_effect_index_expression(); test_effect_value_expression(); test_effect_fx_4_1(); + test_effect_fx_4_1_blend_state(); } diff --git a/dlls/d3d10_1/tests/d3d10_1.c b/dlls/d3d10_1/tests/d3d10_1.c index e7c55a6d324..f3ee944a90a 100644 --- a/dlls/d3d10_1/tests/d3d10_1.c +++ b/dlls/d3d10_1/tests/d3d10_1.c @@ -18,8 +18,6 @@ */
#define COBJMACROS -#include "d3d10_1.h" -#include "initguid.h" #include "d3d11_1.h" #include "wine/test.h"
@@ -752,6 +750,220 @@ static void test_getdc(void) ok(!refcount, "Device has %lu references left.\n", refcount); }
+static inline HRESULT create_effect(DWORD *data, UINT flags, ID3D10Device1 *device, + ID3D10EffectPool *effect_pool, ID3D10Effect **effect) +{ + /* + * Don't use sizeof(data), use data[6] as size, + * because the DWORD data[] has only complete DWORDs and + * so it could happen that there are padded bytes at the end. + * + * The fx size (data[6]) could be up to 3 BYTEs smaller + * than the sizeof(data). + */ + return D3D10CreateEffectFromMemory(data, data[6], flags, (ID3D10Device *)device, effect_pool, effect); +} + +#if 0 +BlendState blend_state +{ + blendenable[0] = true; + blendenable[1] = true; + blendenable[2] = true; + blendenable[3] = true; + blendenable[4] = true; + blendenable[5] = true; + blendenable[6] = true; + blendenable[7] = true; + srcblend = one; + srcblend[0] = zero; +}; + +BlendState default_blend_state {}; +#endif +static DWORD fx_4_1_test_blend_state[] = +{ + 0x43425844, 0x9e1570b0, 0x0ed82fb4, 0x16300839, 0x88b70426, 0x00000001, 0x000002b3, 0x00000001, + 0x00000024, 0x30315846, 0x00000287, 0xfeff1011, 0x00000000, 0x00000000, 0x00000002, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x0000010b, 0x00000000, 0x00000000, 0x00000000, 0x00000002, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6e656c42, + 0x61745364, 0x04006574, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, + 0x62000000, 0x646e656c, 0x6174735f, 0x01006574, 0x04000000, 0x01000000, 0x01000000, 0x04000000, + 0x01000000, 0x01000000, 0x04000000, 0x01000000, 0x01000000, 0x04000000, 0x01000000, 0x01000000, + 0x04000000, 0x01000000, 0x01000000, 0x04000000, 0x01000000, 0x01000000, 0x04000000, 0x01000000, + 0x01000000, 0x04000000, 0x01000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, 0x02000000, + 0x02000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, + 0x02000000, 0x02000000, 0x01000000, 0x02000000, 0x02000000, 0x01000000, 0x02000000, 0x02000000, + 0x01000000, 0x02000000, 0x01000000, 0x64000000, 0x75616665, 0x625f746c, 0x646e656c, 0x6174735f, + 0x2b006574, 0x0f000000, 0x00000000, 0xff000000, 0x10ffffff, 0x25000000, 0x00000000, 0x01000000, + 0x37000000, 0x25000000, 0x01000000, 0x01000000, 0x43000000, 0x25000000, 0x02000000, 0x01000000, + 0x4f000000, 0x25000000, 0x03000000, 0x01000000, 0x5b000000, 0x25000000, 0x04000000, 0x01000000, + 0x67000000, 0x25000000, 0x05000000, 0x01000000, 0x73000000, 0x25000000, 0x06000000, 0x01000000, + 0x7f000000, 0x25000000, 0x07000000, 0x01000000, 0x8b000000, 0x26000000, 0x01000000, 0x01000000, + 0x97000000, 0x26000000, 0x02000000, 0x01000000, 0xa3000000, 0x26000000, 0x03000000, 0x01000000, + 0xaf000000, 0x26000000, 0x04000000, 0x01000000, 0xbb000000, 0x26000000, 0x05000000, 0x01000000, + 0xc7000000, 0x26000000, 0x06000000, 0x01000000, 0xd3000000, 0x26000000, 0x07000000, 0x01000000, + 0xdf000000, 0x26000000, 0x00000000, 0x01000000, 0xeb000000, 0x00000000, 0xf7000000, 0x0f000000, + 0x00000000, 0xff000000, 0x00ffffff, 0x00000000, 0x00000000, +}; + +static void test_fx_4_1_blend_state(void) +{ + ID3D10EffectBlendVariable *blend; + ID3D10EffectVariable *v; + D3D10_BLEND_DESC1 desc1; + ID3D10BlendState1 *bs1; + ID3D10Device1 *device; + D3D10_BLEND_DESC desc; + ID3D10Effect *effect; + ID3D10BlendState *bs; + ULONG refcount; + unsigned int i; + HRESULT hr; + + if (!(device = create_device(NULL))) + { + skip("Failed to create device, skipping tests.\n"); + return; + } + + hr = create_effect(fx_4_1_test_blend_state, 0, device, NULL, &effect); + todo_wine + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + if (FAILED(hr)) goto done; + + v = effect->lpVtbl->GetVariableByName(effect, "blend_state"); + ok(v->lpVtbl->IsValid(v), "Invalid variable.\n"); + blend = v->lpVtbl->AsBlend(v); + ok(blend->lpVtbl->IsValid(blend), "Invalid variable.\n"); + + memset(&desc, 0, sizeof(desc)); + hr = blend->lpVtbl->GetBackingStore(blend, 0, &desc); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + ok(desc.BlendEnable[0], "Unexpected value %d.\n", desc.BlendEnable[0]); + ok(desc.BlendEnable[1], "Unexpected value %d.\n", desc.BlendEnable[1]); + ok(desc.BlendEnable[2], "Unexpected value %d.\n", desc.BlendEnable[2]); + ok(desc.BlendEnable[3], "Unexpected value %d.\n", desc.BlendEnable[3]); + ok(desc.BlendEnable[4], "Unexpected value %d.\n", desc.BlendEnable[4]); + ok(desc.BlendEnable[5], "Unexpected value %d.\n", desc.BlendEnable[5]); + ok(desc.BlendEnable[6], "Unexpected value %d.\n", desc.BlendEnable[6]); + ok(desc.BlendEnable[7], "Unexpected value %d.\n", desc.BlendEnable[7]); + ok(desc.SrcBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.SrcBlend); + ok(desc.DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlend); + ok(desc.BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOp); + ok(desc.SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", desc.SrcBlendAlpha); + ok(desc.DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlendAlpha); + ok(desc.BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOpAlpha); + ok(desc.RenderTargetWriteMask[0] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[0]); + ok(desc.RenderTargetWriteMask[1] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[1]); + ok(desc.RenderTargetWriteMask[2] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[2]); + ok(desc.RenderTargetWriteMask[3] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[3]); + ok(desc.RenderTargetWriteMask[4] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[4]); + ok(desc.RenderTargetWriteMask[5] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[5]); + ok(desc.RenderTargetWriteMask[6] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[6]); + ok(desc.RenderTargetWriteMask[7] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[7]); + + hr = blend->lpVtbl->GetBlendState(blend, 0, &bs); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10BlendState_GetDesc(bs, &desc); + ok(desc.SrcBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.SrcBlend); + ok(desc.DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlend); + ok(desc.BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOp); + ok(desc.SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", desc.SrcBlendAlpha); + ok(desc.DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlendAlpha); + ok(desc.BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOpAlpha); + ok(desc.RenderTargetWriteMask[0] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[0]); + ok(desc.RenderTargetWriteMask[1] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[1]); + ok(desc.RenderTargetWriteMask[2] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[2]); + ok(desc.RenderTargetWriteMask[3] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[3]); + ok(desc.RenderTargetWriteMask[4] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[4]); + ok(desc.RenderTargetWriteMask[5] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[5]); + ok(desc.RenderTargetWriteMask[6] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[6]); + ok(desc.RenderTargetWriteMask[7] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[7]); + + hr = ID3D10BlendState_QueryInterface(bs, &IID_ID3D10BlendState1, (void **)&bs1); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10BlendState1_GetDesc1(bs1, &desc1); + ok(!desc1.AlphaToCoverageEnable, "Unexpected value %d.\n", desc1.AlphaToCoverageEnable); + ok(desc1.IndependentBlendEnable, "Unexpected value %d.\n", desc1.IndependentBlendEnable); + for (i = 0; i < ARRAY_SIZE(desc1.RenderTarget); ++i) + { + const D3D10_RENDER_TARGET_BLEND_DESC1 *p = &desc1.RenderTarget[i]; + + winetest_push_context("Test %u", i); + + ok(p->BlendEnable, "Unexpected value %d.\n", p->BlendEnable); + ok(p->SrcBlend == (i == 0 ? D3D10_BLEND_ZERO : D3D10_BLEND_ONE), "Unexpected value %d.\n", p->SrcBlend); + ok(p->DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", p->DestBlend); + ok(p->BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", p->BlendOp); + ok(p->SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", p->SrcBlendAlpha); + ok(p->DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", p->DestBlendAlpha); + ok(p->BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", p->BlendOpAlpha); + ok(p->RenderTargetWriteMask == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", p->RenderTargetWriteMask); + + winetest_pop_context(); + } + ID3D10BlendState1_Release(bs1); + + ID3D10BlendState_Release(bs); + + /* Default state. */ + v = effect->lpVtbl->GetVariableByName(effect, "default_blend_state"); + ok(v->lpVtbl->IsValid(v), "Invalid variable.\n"); + blend = v->lpVtbl->AsBlend(v); + ok(blend->lpVtbl->IsValid(blend), "Invalid variable.\n"); + + memset(&desc, 0, sizeof(desc)); + hr = blend->lpVtbl->GetBackingStore(blend, 0, &desc); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + ok(desc.SrcBlend == D3D10_BLEND_ONE, "Unexpected value %d.\n", desc.SrcBlend); + ok(desc.DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlend); + ok(desc.BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOp); + ok(desc.SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", desc.SrcBlendAlpha); + ok(desc.DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlendAlpha); + ok(desc.BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOpAlpha); + ok(desc.RenderTargetWriteMask[0] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[0]); + ok(desc.RenderTargetWriteMask[1] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[1]); + ok(desc.RenderTargetWriteMask[2] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[2]); + ok(desc.RenderTargetWriteMask[3] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[3]); + ok(desc.RenderTargetWriteMask[4] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[4]); + ok(desc.RenderTargetWriteMask[5] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[5]); + ok(desc.RenderTargetWriteMask[6] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[6]); + ok(desc.RenderTargetWriteMask[7] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[7]); + + hr = blend->lpVtbl->GetBlendState(blend, 0, &bs); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + hr = ID3D10BlendState_QueryInterface(bs, &IID_ID3D10BlendState1, (void **)&bs1); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10BlendState1_GetDesc1(bs1, &desc1); + ok(!desc1.AlphaToCoverageEnable, "Unexpected value %d.\n", desc1.AlphaToCoverageEnable); + ok(desc1.IndependentBlendEnable, "Unexpected value %d.\n", desc1.IndependentBlendEnable); + for (i = 0; i < ARRAY_SIZE(desc1.RenderTarget); ++i) + { + const D3D10_RENDER_TARGET_BLEND_DESC1 *p = &desc1.RenderTarget[i]; + + ok(!p->BlendEnable, "Unexpected value %d.\n", p->BlendEnable); + ok(p->SrcBlend == D3D10_BLEND_ONE, "Unexpected value %d.\n", p->SrcBlend); + ok(p->DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", p->DestBlend); + ok(p->BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", p->BlendOp); + ok(p->SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", p->SrcBlendAlpha); + ok(p->DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", p->DestBlendAlpha); + ok(p->BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", p->BlendOpAlpha); + ok(p->RenderTargetWriteMask == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", p->RenderTargetWriteMask); + } + ID3D10BlendState1_Release(bs1); + ID3D10BlendState_Release(bs); + + effect->lpVtbl->Release(effect); + +done: + refcount = ID3D10Device1_Release(device); + ok(!refcount, "Device has %lu references left.\n", refcount); +} + START_TEST(d3d10_1) { test_create_device(); @@ -759,4 +971,5 @@ START_TEST(d3d10_1) test_create_shader_resource_view(); test_create_blend_state(); test_getdc(); + test_fx_4_1_blend_state(); } diff --git a/dlls/d3dcompiler_43/tests/reflection.c b/dlls/d3dcompiler_43/tests/reflection.c index 70f3a51683a..ff6a5f8925b 100644 --- a/dlls/d3dcompiler_43/tests/reflection.c +++ b/dlls/d3dcompiler_43/tests/reflection.c @@ -28,8 +28,7 @@ #include "wine/test.h"
/* includes for older reflection interfaces */ -#include "d3d10.h" -#include "d3d10_1shader.h" +#include "d3d11_1.h"
/* * This doesn't belong here, but for some functions it is possible to return that value,
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=137753
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w7u_adm (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w7u_el (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w8 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w8adm (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w864 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064v1507 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064v1809 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064_tsign (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w10pro64 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w10pro64_en_AE_u8 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w11pro64 (32 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w7pro64 (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w864 (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064v1507 (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064v1809 (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064_2qxl (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064_adm (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w1064_tsign (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w10pro64 (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w10pro64_ar (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w10pro64_ja (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w10pro64_zh_CN (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
=== w11pro64_amd (64 bit report) ===
d3d10: effect.c:9053: Test failed: Got unexpected hr 0x80004005.
Matteo Bruni (@Mystral) commented about dlls/d3d10_1/tests/d3d10_1.c:
- }
- hr = create_effect(fx_4_1_test_blend_state, 0, device, NULL, &effect);
- todo_wine
- ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
- if (FAILED(hr)) goto done;
- v = effect->lpVtbl->GetVariableByName(effect, "blend_state");
- ok(v->lpVtbl->IsValid(v), "Invalid variable.\n");
- blend = v->lpVtbl->AsBlend(v);
- ok(blend->lpVtbl->IsValid(blend), "Invalid variable.\n");
- memset(&desc, 0, sizeof(desc));
- hr = blend->lpVtbl->GetBackingStore(blend, 0, &desc);
- ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
- ok(desc.BlendEnable[0], "Unexpected value %d.\n", desc.BlendEnable[0]);
Nitpick: we usually print BOOL values with the "%#x" format string.
Matteo Bruni (@Mystral) commented about dlls/d3d10_1/tests/d3d10_1.c:
- ok(v->lpVtbl->IsValid(v), "Invalid variable.\n");
- blend = v->lpVtbl->AsBlend(v);
- ok(blend->lpVtbl->IsValid(blend), "Invalid variable.\n");
- memset(&desc, 0, sizeof(desc));
- hr = blend->lpVtbl->GetBackingStore(blend, 0, &desc);
- ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
- ok(desc.BlendEnable[0], "Unexpected value %d.\n", desc.BlendEnable[0]);
- ok(desc.BlendEnable[1], "Unexpected value %d.\n", desc.BlendEnable[1]);
- ok(desc.BlendEnable[2], "Unexpected value %d.\n", desc.BlendEnable[2]);
- ok(desc.BlendEnable[3], "Unexpected value %d.\n", desc.BlendEnable[3]);
- ok(desc.BlendEnable[4], "Unexpected value %d.\n", desc.BlendEnable[4]);
- ok(desc.BlendEnable[5], "Unexpected value %d.\n", desc.BlendEnable[5]);
- ok(desc.BlendEnable[6], "Unexpected value %d.\n", desc.BlendEnable[6]);
- ok(desc.BlendEnable[7], "Unexpected value %d.\n", desc.BlendEnable[7]);
- ok(desc.SrcBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.SrcBlend);
Similarly, we generally use "%u" for enum values. Also for consistency with test_create_blend_state().
Matteo Bruni (@Mystral) commented about dlls/d3d10_1/tests/d3d10_1.c:
- ok(desc.DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlendAlpha);
- ok(desc.BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOpAlpha);
- ok(desc.RenderTargetWriteMask[0] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[0]);
- ok(desc.RenderTargetWriteMask[1] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[1]);
- ok(desc.RenderTargetWriteMask[2] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[2]);
- ok(desc.RenderTargetWriteMask[3] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[3]);
- ok(desc.RenderTargetWriteMask[4] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[4]);
- ok(desc.RenderTargetWriteMask[5] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[5]);
- ok(desc.RenderTargetWriteMask[6] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[6]);
- ok(desc.RenderTargetWriteMask[7] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[7]);
- hr = blend->lpVtbl->GetBlendState(blend, 0, &bs);
- ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
- ID3D10BlendState_GetDesc(bs, &desc);
- ok(desc.SrcBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.SrcBlend);
There are no surprises here but I'd add some checks for the first two fields:
```suggestion:-1+0 ID3D10BlendState_GetDesc(bs, &desc); ok(!desc.AlphaToCoverageEnable, "Unexpected value %#x.\n", desc.AlphaToCoverageEnable); for (i = 0; i < ARRAY_SIZE(desc.BlendEnable); ++i) ok(desc.BlendEnable[i], "Unexpected value %#x.\n", desc.BlendEnable[i]); ok(desc.SrcBlend == D3D10_BLEND_ZERO, "Unexpected value %u.\n", desc.SrcBlend); ```
Matteo Bruni (@Mystral) commented about dlls/d3d10_1/tests/d3d10_1.c:
- ID3D10BlendState_GetDesc(bs, &desc);
- ok(desc.SrcBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.SrcBlend);
- ok(desc.DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlend);
- ok(desc.BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOp);
- ok(desc.SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", desc.SrcBlendAlpha);
- ok(desc.DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", desc.DestBlendAlpha);
- ok(desc.BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", desc.BlendOpAlpha);
- ok(desc.RenderTargetWriteMask[0] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[0]);
- ok(desc.RenderTargetWriteMask[1] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[1]);
- ok(desc.RenderTargetWriteMask[2] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[2]);
- ok(desc.RenderTargetWriteMask[3] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[3]);
- ok(desc.RenderTargetWriteMask[4] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[4]);
- ok(desc.RenderTargetWriteMask[5] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[5]);
- ok(desc.RenderTargetWriteMask[6] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[6]);
- ok(desc.RenderTargetWriteMask[7] == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", desc.RenderTargetWriteMask[7]);
This could be a loop, ideally with a mention of the loop index in the ok() message.
Matteo Bruni (@Mystral) commented about dlls/d3d10_1/tests/d3d10_1.c:
winetest_push_context("Test %u", i);
ok(p->BlendEnable, "Unexpected value %d.\n", p->BlendEnable);
ok(p->SrcBlend == (i == 0 ? D3D10_BLEND_ZERO : D3D10_BLEND_ONE), "Unexpected value %d.\n", p->SrcBlend);
ok(p->DestBlend == D3D10_BLEND_ZERO, "Unexpected value %d.\n", p->DestBlend);
ok(p->BlendOp == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", p->BlendOp);
ok(p->SrcBlendAlpha == D3D10_BLEND_ONE, "Unexpected value %d.\n", p->SrcBlendAlpha);
ok(p->DestBlendAlpha == D3D10_BLEND_ZERO, "Unexpected value %d.\n", p->DestBlendAlpha);
ok(p->BlendOpAlpha == D3D10_BLEND_OP_ADD, "Unexpected value %d.\n", p->BlendOpAlpha);
ok(p->RenderTargetWriteMask == D3D10_COLOR_WRITE_ENABLE_ALL, "Unexpected value %d.\n", p->RenderTargetWriteMask);
winetest_pop_context();
- }
- ID3D10BlendState1_Release(bs1);
Probably unintended whitespace line here.
Matteo Bruni (@Mystral) commented about dlls/d3d10_1/tests/d3d10_1.c:
winetest_pop_context();
- }
- ID3D10BlendState1_Release(bs1);
- ID3D10BlendState_Release(bs);
- /* Default state. */
- v = effect->lpVtbl->GetVariableByName(effect, "default_blend_state");
- ok(v->lpVtbl->IsValid(v), "Invalid variable.\n");
- blend = v->lpVtbl->AsBlend(v);
- ok(blend->lpVtbl->IsValid(blend), "Invalid variable.\n");
- memset(&desc, 0, sizeof(desc));
- hr = blend->lpVtbl->GetBackingStore(blend, 0, &desc);
- ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
- ok(desc.SrcBlend == D3D10_BLEND_ONE, "Unexpected value %d.\n", desc.SrcBlend);
Again this could check the AlphaToCoverageEnable and BlendEnable[] values as well.