mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
st/nine: Queries: allow app to call GetData without Issuing first
Nine was allowing that behaviour, but was not filling the result. Tested-by: David Heidelberg <david@ixit.cz> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
eac0b9b68a
commit
225d7f8e0e
1 changed files with 9 additions and 4 deletions
|
|
@ -199,7 +199,7 @@ NineQuery9_GetData( struct NineQuery9 *This,
|
|||
DWORD dwGetDataFlags )
|
||||
{
|
||||
struct pipe_context *pipe = This->base.device->pipe;
|
||||
boolean ok;
|
||||
boolean ok, wait_query_result = FALSE;
|
||||
unsigned i;
|
||||
union pipe_query_result presult;
|
||||
union nine_query_result nresult;
|
||||
|
|
@ -215,13 +215,18 @@ NineQuery9_GetData( struct NineQuery9 *This,
|
|||
user_assert(dwGetDataFlags == 0 ||
|
||||
dwGetDataFlags == D3DGETDATA_FLUSH, D3DERR_INVALIDCALL);
|
||||
|
||||
if (This->state == NINE_QUERY_STATE_FRESH)
|
||||
return S_OK;
|
||||
if (This->state == NINE_QUERY_STATE_FRESH) {
|
||||
/* App forgot calling Issue. call it for it.
|
||||
* However Wine states that return value should
|
||||
* be S_OK, so wait for the result to return S_OK. */
|
||||
NineQuery9_Issue(This, D3DISSUE_END);
|
||||
wait_query_result = TRUE;
|
||||
}
|
||||
|
||||
/* Note: We ignore dwGetDataFlags, because get_query_result will
|
||||
* flush automatically if needed */
|
||||
|
||||
ok = pipe->get_query_result(pipe, This->pq, FALSE, &presult);
|
||||
ok = pipe->get_query_result(pipe, This->pq, wait_query_result, &presult);
|
||||
|
||||
if (!ok) return S_FALSE;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue