Re: [PATCH 2/2] d3d11/tests: Add additional test for occlusion query.
On 20 May 2017 at 14:12, Józef Kucia <jkucia(a)codeweavers.com> wrote:
+ for (i = 0; i < 500; ++i) + { + if ((hr = ID3D11DeviceContext_GetData(context, query, NULL, 0, 0)) != S_FALSE) + break; + Sleep(10); + } + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + hr = ID3D11DeviceContext_GetData(context, query, &data, sizeof(data), 0); + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + todo_wine ok(data.dword[0] == 0x1000 && !data.dword[1], + "Got unexpected query result 0x%08x%08x.\n", data.dword[1], data.dword[0]); This fails about half of the time with csmt enabled:
d3d11.c:4872: Test succeeded inside todo block: Got unexpected query result 0x0000000000001000.
On Mon, May 22, 2017 at 11:47 AM, Henri Verbeet <hverbeet(a)gmail.com> wrote:
On 20 May 2017 at 14:12, Józef Kucia <jkucia(a)codeweavers.com> wrote:
+ for (i = 0; i < 500; ++i) + { + if ((hr = ID3D11DeviceContext_GetData(context, query, NULL, 0, 0)) != S_FALSE) + break; + Sleep(10); + } + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + hr = ID3D11DeviceContext_GetData(context, query, &data, sizeof(data), 0); + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + todo_wine ok(data.dword[0] == 0x1000 && !data.dword[1], + "Got unexpected query result 0x%08x%08x.\n", data.dword[1], data.dword[0]); This fails about half of the time with csmt enabled:
d3d11.c:4872: Test succeeded inside todo block: Got unexpected query result 0x0000000000001000.
It's a race condition. A query may result may be retrieved in wined3d_cs_run() before the swapchain is destroyed. Can we get the fix committed without a test case? We've got "wrong thread" FIXME() messages for this issue anyway.
On 22 May 2017 at 18:13, Józef Kucia <joseph.kucia(a)gmail.com> wrote:
It's a race condition. A query may result may be retrieved in wined3d_cs_run() before the swapchain is destroyed. Can we get the fix committed without a test case? We've got "wrong thread" FIXME() messages for this issue anyway.
I think it's useful to have the test to show that it doesn't crash, but perhaps checking the resulting data could be inside an "if (0)" with an appropriate comment.
participants (2)
-
Henri Verbeet -
Józef Kucia