Skip to content
Snippets Groups Projects
Commit fd2852fe authored by Axel Davy's avatar Axel Davy Committed by Emil Velikov
Browse files

st/nine: Queries: Fix D3DISSUE_END behaviour.


Issuing D3DISSUE_END should:
. reset previous queries if possible
. end the query

Previous behaviour wasn't calling end_query for
queries not needing D3DISSUE_BEGIN, nor resetting
previous queries.

This fixes several applications not launching properly.

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
Tested-by: David Heidelberg's avatarDavid Heidelberg <david@ixit.cz>
Reviewed-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: default avatarAxel Davy <axel.davy@ens.fr>
(cherry picked from commit eac0b9b6)

Conflicts:
	src/gallium/state_trackers/nine/query9.c
parent 57057c43
No related branches found
No related tags found
Loading
......@@ -190,10 +190,12 @@ NineQuery9_Issue( struct NineQuery9 *This,
pipe->begin_query(pipe, This->pq);
This->state = NINE_QUERY_STATE_RUNNING;
} else {
if (This->state == NINE_QUERY_STATE_RUNNING) {
pipe->end_query(pipe, This->pq);
This->state = NINE_QUERY_STATE_ENDED;
}
if (This->state != NINE_QUERY_STATE_RUNNING &&
This->type != D3DQUERYTYPE_EVENT &&
This->type != D3DQUERYTYPE_TIMESTAMP)
pipe->begin_query(pipe, This->pq);
pipe->end_query(pipe, This->pq);
This->state = NINE_QUERY_STATE_ENDED;
}
return D3D_OK;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment