On 20 May 2017 at 14:12, Józef Kucia jkucia@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@gmail.com wrote:
On 20 May 2017 at 14:12, Józef Kucia jkucia@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@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.