[Mesa-dev] [PATCH 5/8] st/nine: Queries: Fix D3DISSUE_END behaviour.

Ilia Mirkin imirkin at alum.mit.edu
Tue Dec 2 13:30:05 PST 2014


On Tue, Dec 2, 2014 at 4:12 PM, Axel Davy <axel.davy at ens.fr> wrote:
> 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

noR resetting

> previous queries.
>
> This fixes several applications not launching properly.
>
> 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 a3184d9..dfb17b9 100644
> --- a/src/gallium/state_trackers/nine/query9.c
> +++ b/src/gallium/state_trackers/nine/query9.c
> @@ -174,10 +174,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.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list