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.