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_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_ */
|
||||
|
|
|
@ -160,6 +160,12 @@ static void
|
|||
fd_hw_end_query(struct fd_context *ctx, struct fd_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)
|
||||
return;
|
||||
if (is_active(hq, ctx->stage))
|
||||
|
|
Loading…
Reference in New Issue