freedreno/query: some queries don't have ->begin_query()
Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
9d23d7b7cb
commit
0e91dccf9c
|
@ -65,4 +65,16 @@ fd_query(struct pipe_query *pq)
|
||||||
void fd_query_screen_init(struct pipe_screen *pscreen);
|
void fd_query_screen_init(struct pipe_screen *pscreen);
|
||||||
void fd_query_context_init(struct pipe_context *pctx);
|
void fd_query_context_init(struct pipe_context *pctx);
|
||||||
|
|
||||||
|
static inline bool
|
||||||
|
skip_begin_query(int type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case PIPE_QUERY_TIMESTAMP:
|
||||||
|
case PIPE_QUERY_GPU_FINISHED:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* FREEDRENO_QUERY_H_ */
|
#endif /* FREEDRENO_QUERY_H_ */
|
||||||
|
|
|
@ -160,6 +160,12 @@ static void
|
||||||
fd_hw_end_query(struct fd_context *ctx, struct fd_query *q)
|
fd_hw_end_query(struct fd_context *ctx, struct fd_query *q)
|
||||||
{
|
{
|
||||||
struct fd_hw_query *hq = fd_hw_query(q);
|
struct fd_hw_query *hq = fd_hw_query(q);
|
||||||
|
/* there are a couple special cases, which don't have
|
||||||
|
* a matching ->begin_query():
|
||||||
|
*/
|
||||||
|
if (skip_begin_query(q->type) && !q->active) {
|
||||||
|
fd_hw_begin_query(ctx, q);
|
||||||
|
}
|
||||||
if (!q->active)
|
if (!q->active)
|
||||||
return;
|
return;
|
||||||
if (is_active(hq, ctx->stage))
|
if (is_active(hq, ctx->stage))
|
||||||
|
|
Loading…
Reference in New Issue