diff --git a/dlls/d3d9/query.c b/dlls/d3d9/query.c index 335a960de4e..df7eb6ec121 100644 --- a/dlls/d3d9/query.c +++ b/dlls/d3d9/query.c @@ -187,7 +187,11 @@ HRESULT query_init(struct d3d9_query *query, struct d3d9_device *device, D3DQUER if (type > D3DQUERYTYPE_MEMORYPRESSURE) { - WARN("Invalid query type %#x.\n", type); + if (type == 0x16) + FIXME("Undocumented query %#x created.\n", type); + else + WARN("Invalid query type %#x.\n", type); + return D3DERR_NOTAVAILABLE; } diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 8f9985c2a83..82ced8372b4 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -5561,7 +5561,9 @@ static void test_query_support(void) for (i = 0; i < 40; ++i) { - if (D3DQUERYTYPE_VCACHE <= i && i <= D3DQUERYTYPE_MEMORYPRESSURE) + /* Windows 10 17.09 (build 16299.19) added an undocumented query with an enum value of 0x16 (=22). + * It returns D3D_OK when asking for support and E_FAIL when trying to actually create it. */ + if ((D3DQUERYTYPE_VCACHE <= i && i <= D3DQUERYTYPE_MEMORYPRESSURE) || i == 0x16) continue; hr = IDirect3DDevice9_CreateQuery(device, i, NULL);