diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/state_trackers/nine/query9.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/nine/query9.c b/src/gallium/state_trackers/nine/query9.c index 937255667be..6df4ead08c4 100644 --- a/src/gallium/state_trackers/nine/query9.c +++ b/src/gallium/state_trackers/nine/query9.c @@ -163,10 +163,15 @@ NineQuery9_Issue( struct NineQuery9 *This, DBG("This=%p dwIssueFlags=%d\n", This, dwIssueFlags); - user_assert((dwIssueFlags == D3DISSUE_BEGIN && !This->instant) || + user_assert((dwIssueFlags == D3DISSUE_BEGIN) || (dwIssueFlags == 0) || (dwIssueFlags == D3DISSUE_END), D3DERR_INVALIDCALL); + /* Wine tests: always return D3D_OK on D3DISSUE_BEGIN + * even when the call is supposed to be forbidden */ + if (dwIssueFlags == D3DISSUE_BEGIN && This->instant) + return D3D_OK; + if (dwIssueFlags == D3DISSUE_BEGIN) { if (This->state == NINE_QUERY_STATE_RUNNING) { pipe->end_query(pipe, This->pq); |