[Mesa-stable] [PATCH v3 16/19] st/nine: Queries: Fix D3DISSUE_END behaviour.
David Heidelberg
david at ixit.cz
Mon Nov 24 15:38:16 PST 2014
From: Axel Davy <axel.davy at ens.fr>
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, no resetting
previous queries.
Cc: "10.4" <mesa-stable at lists.freedesktop.org>
Tested-by: David Heidelberg <david at ixit.cz>
Signed-off-by: Axel Davy <axel.davy at ens.fr>
---
src/gallium/state_trackers/nine/query9.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/gallium/state_trackers/nine/query9.c b/src/gallium/state_trackers/nine/query9.c
index 38841e6..e174586 100644
--- a/src/gallium/state_trackers/nine/query9.c
+++ b/src/gallium/state_trackers/nine/query9.c
@@ -172,10 +172,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;
}
--
2.1.3
More information about the mesa-stable
mailing list