Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- dlls/d3d11/d3d11.spec | 2 +- dlls/gdi32/driver.c | 24 ++++++++++++++++++++++-- dlls/gdi32/tests/driver.c | 4 ++-- 3 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d11/d3d11.spec b/dlls/d3d11/d3d11.spec index 365e5d7c0c..87304b7c13 100644 --- a/dlls/d3d11/d3d11.spec +++ b/dlls/d3d11/d3d11.spec @@ -5,7 +5,7 @@ @ stdcall D3D11CreateDevice(ptr long ptr long ptr long long ptr ptr ptr) @ stdcall D3D11CreateDeviceAndSwapChain(ptr long ptr long ptr long long ptr ptr ptr ptr ptr) @ stdcall D3D11On12CreateDevice(ptr long ptr long ptr long long ptr ptr ptr) -@ stub D3DKMTCloseAdapter +@ stdcall D3DKMTCloseAdapter(ptr) gdi32.D3DKMTCloseAdapter @ stub D3DKMTCreateAllocation @ stub D3DKMTCreateContext @ stub D3DKMTCreateDevice diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c index fe66266e18..e021856b0a 100644 --- a/dlls/gdi32/driver.c +++ b/dlls/gdi32/driver.c @@ -1279,8 +1279,28 @@ NTSTATUS WINAPI D3DKMTEscape( const void *pData ) */ NTSTATUS WINAPI D3DKMTCloseAdapter( const D3DKMT_CLOSEADAPTER *desc ) { - FIXME("(%p): stub\n", desc); - return STATUS_SUCCESS; + NTSTATUS status = STATUS_INVALID_PARAMETER; + struct d3dkmt_adapter *adapter; + + TRACE("(%p)\n", desc); + + if (!desc || !desc->hAdapter) + return STATUS_INVALID_PARAMETER; + + EnterCriticalSection( &driver_section ); + LIST_FOR_EACH_ENTRY( adapter, &d3dkmt_adapters, struct d3dkmt_adapter, entry ) + { + if (adapter->handle == desc->hAdapter) + { + list_remove( &adapter->entry ); + heap_free( adapter ); + status = STATUS_SUCCESS; + break; + } + } + LeaveCriticalSection( &driver_section ); + + return status; }
/****************************************************************************** diff --git a/dlls/gdi32/tests/driver.c b/dlls/gdi32/tests/driver.c index 067c162838..caded27aef 100644 --- a/dlls/gdi32/tests/driver.c +++ b/dlls/gdi32/tests/driver.c @@ -179,11 +179,11 @@ static void test_D3DKMTCloseAdapter(void)
/* Invalid parameters */ status = pD3DKMTCloseAdapter(NULL); - todo_wine ok(status == STATUS_INVALID_PARAMETER, "Got unexpected return code %#x.\n", status); + ok(status == STATUS_INVALID_PARAMETER, "Got unexpected return code %#x.\n", status);
memset(&close_adapter_desc, 0, sizeof(close_adapter_desc)); status = pD3DKMTCloseAdapter(&close_adapter_desc); - todo_wine ok(status == STATUS_INVALID_PARAMETER, "Got unexpected return code %#x.\n", status); + ok(status == STATUS_INVALID_PARAMETER, "Got unexpected return code %#x.\n", status); }
static void test_D3DKMTCreateDevice(void)
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=53304
Your paranoid android.
=== debian9 (32 bit report) ===
d3d11: d3d11.c:6111: Test succeeded inside todo block: Got unexpected PrimitivesStorageNeeded: 0. d3d11.c:16849: Test failed: Got {-1.00787401e+000, 0.00000000e+000, 1.00000000e+000, 5.03937006e-001}, expected {-1.00000000e+000, 0.00000000e+000, 1.00000000e+000, 5.03937006e-001} at (0, 0), sub-resource 0.
=== debian9 (32 bit Chinese:China report) ===
d3d11: d3d11.c:6101: Test succeeded inside todo block: Got unexpected PrimitivesStorageNeeded: 0.
=== debian9 (32 bit WoW report) ===
Report errors: d3d11:d3d11 has no test summary line (early exit of the main process?) d3d11:d3d11 has unaccounted for failure messages d3d11:d3d11 has unaccounted for todo messages d3d11:d3d11 has unaccounted for skip messages d3d11:d3d11 returned success despite having failures
=== debian9 (64 bit WoW report) ===
d3d11: d3d11.c:6111: Test succeeded inside todo block: Got unexpected PrimitivesStorageNeeded: 0. d3d11.c:16849: Test failed: Got {-1.00787401e+000, 0.00000000e+000, 1.00000000e+000, 5.03937006e-001}, expected {-1.00000000e+000, 0.00000000e+000, 1.00000000e+000, 5.03937006e-001} at (0, 0), sub-resource 0. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (200, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (280, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (360, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (440, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (200, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (280, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (360, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 1, test 7: pixel (440, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (200, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (280, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (360, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (440, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (200, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (280, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (360, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 1, test 8: pixel (440, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (200, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (280, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (360, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (440, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (200, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (280, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (360, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 2, test 7: pixel (440, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (200, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (280, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (360, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (440, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (200, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (280, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (360, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 2, test 8: pixel (440, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (200, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (280, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (360, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (440, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (200, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (280, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (360, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 3, test 7: pixel (440, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (200, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (280, 200) has color 00000000, expected ffff0000. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (360, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (440, 200) has color 00000000, expected ff00ff00. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (200, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (280, 270) has color 00000000, expected ff0000ff. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (360, 270) has color 00000000, expected ff000000. d3d11.c:27577: Test failed: Resource type 3, test 8: pixel (440, 270) has color 00000000, expected ff000000. d3d11.c:25813: Test failed: Got depth 2.51951814e-003, expected 2.51948950e-003. d3d11.c:25813: Test failed: Got depth 2.51951814e-003, expected 2.51948950e-003. d3d11.c:25813: Test failed: Got depth 1.27950311e-003, expected 1.27948953e-003. d3d11.c:25813: Test failed: Got depth 1.27950311e-003, expected 1.27948953e-003. d3d11.c:25813: Test failed: Got depth 1.27950311e-003, expected 1.27948953e-003. d3d11.c:25813: Test failed: Got depth 1.27950311e-003, expected 1.27948953e-003. d3d11.c:25813: Test failed: Got depth 1.27950311e-003, expected 1.27948953e-003. d3d11.c:25813: Test failed: Got depth 1.27950311e-003, expected 1.27948953e-003. d3d11.c:25813: Test failed: Got depth 5.03277779e-003, expected 5.03897900e-003. d3d11.c:25813: Test failed: Got depth 5.03277779e-003, expected 5.03897900e-003. d3d11.c:25813: Test failed: Got depth 2.54905224e-003, expected 2.54897905e-003. d3d11.c:25813: Test failed: Got depth 7.52645731e-003, expected 7.53897894e-003. d3d11.c:25813: Test failed: Got depth 7.52645731e-003, expected 7.53897894e-003. d3d11.c:25813: Test failed: Got depth 2.54905224e-003, expected 2.54897905e-003. d3d11.c:25813: Test failed: Got depth 1.25139356e-002, expected 1.25389788e-002. d3d11.c:25813: Test failed: Got depth 1.25139356e-002, expected 1.25389788e-002. d3d11.c:25813: Test failed: Got depth 2.54905224e-003, expected 2.54897905e-003. d3d11.c:25813: Test failed: Got depth 6.40938997e-001, expected 6.42538965e-001. d3d11.c:25813: Test failed: Got depth 6.40938997e-001, expected 6.42538965e-001. d3d11.c:25813: Test failed: Got depth 2.54905224e-003, expected 2.54897905e-003. d3d11.c:25813: Test failed: Got depth 2.54905224e-003, expected 2.54897905e-003. d3d11.c:25813: Test failed: Got depth 2.54905224e-003, expected 2.54897905e-003. d3d11.c:25821: Test failed: Got value 0x149d4 (5.03277809e-003), expected 0x14a3c (5.03897697e-003). d3d11.c:25821: Test failed: Got value 0x149d4 (5.03277809e-003), expected 0x14a3c (5.03897697e-003). d3d11.c:25821: Test failed: Got value 0x5c5c2 (2.25487961e-002), expected 0x5c5c6 (2.25490345e-002). d3d11.c:25821: Test failed: Got value 0x1ed41 (7.52645776e-003), expected 0x1ee13 (7.53897473e-003). d3d11.c:25821: Test failed: Got value 0x1ed41 (7.52645776e-003), expected 0x1ee13 (7.53897473e-003). d3d11.c:25821: Test failed: Got value 0x5c5c2 (2.25487961e-002), expected 0x5c5c6 (2.25490345e-002). d3d11.c:25821: Test failed: Got value 0x3341d (1.25139363e-002), expected 0x335c1 (1.25389703e-002). d3d11.c:25821: Test failed: Got value 0x3341d (1.25139363e-002), expected 0x335c1 (1.25389703e-002). d3d11.c:25821: Test failed: Got value 0x5c5c2 (2.25487961e-002), expected 0x5c5c6 (2.25490345e-002). d3d11.c:25821: Test failed: Got value 0xa41493 (6.40938976e-001), expected 0xa47d6e (6.42538943e-001). d3d11.c:25821: Test failed: Got value 0xa41493 (6.40938976e-001), expected 0xa47d6e (6.42538943e-001). d3d11.c:25821: Test failed: Got value 0x5c5c2 (2.25487961e-002), expected 0x5c5c6 (2.25490345e-002). d3d11.c:25821: Test failed: Got value 0x5c5c2 (2.25487961e-002), expected 0x5c5c6 (2.25490345e-002). d3d11.c:25821: Test failed: Got value 0x5c5c2 (2.25487961e-002), expected 0x5c5c6 (2.25490345e-002). d3d11.c:25830: Test failed: Got value 0x3d8 (1.50148775e-002), expected 0x3da (1.50453956e-002). d3d11.c:25830: Test failed: Got value 0x3d8 (1.50148775e-002), expected 0x3da (1.50453956e-002). d3d11.c:25830: Test failed: Got value 0x333 (1.24971389e-002), expected 0x336 (1.25429160e-002). d3d11.c:25830: Test failed: Got value 0x333 (1.24971389e-002), expected 0x336 (1.25429160e-002). d3d11.c:25830: Test failed: Got value 0x479 (1.74715801e-002), expected 0x47d (1.75326162e-002). d3d11.c:25830: Test failed: Got value 0x479 (1.74715801e-002), expected 0x47d (1.75326162e-002). d3d11.c:25830: Test failed: Got value 0xa414 (6.40939956e-001), expected 0xa47c (6.42526894e-001). d3d11.c:25830: Test failed: Got value 0xa414 (6.40939956e-001), expected 0xa47c (6.42526894e-001).
Report errors: d3d11:d3d11 prints too much data (35753 bytes)
=== debian9 (build log) ===
X Error of failed request: GLXBadFBConfig Major opcode of failed request: 154 (GLX) Minor opcode of failed request: 34 ()