arb_gpu_shader5: add support for indexed queries

Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
macos/master
Dave Airlie 7 years ago
parent 027a0df49e
commit 0337bcd3ce
  1. 2
      src/vrend_decode.c
  2. 10
      src/vrend_renderer.c

@ -659,7 +659,7 @@ static int vrend_decode_create_query(struct vrend_decode_ctx *ctx, uint32_t hand
tmp = get_buf_entry(ctx, VIRGL_OBJ_QUERY_TYPE_INDEX);
query_type = VIRGL_OBJ_QUERY_TYPE(tmp);
query_index = VIRGL_OBJ_QUERY_INDEX(tmp);
query_index = (tmp >> 16) & 0xffff;
offset = get_buf_entry(ctx, VIRGL_OBJ_QUERY_OFFSET);
res_handle = get_buf_entry(ctx, VIRGL_OBJ_QUERY_RES_HANDLE);

@ -6443,7 +6443,10 @@ void vrend_begin_query(struct vrend_context *ctx, uint32_t handle)
if (q->gltype == GL_TIMESTAMP)
return;
glBeginQuery(q->gltype, q->id);
if (q->index > 0)
glBeginQueryIndexed(q->gltype, q->index, q->id);
else
glBeginQuery(q->gltype, q->id);
}
void vrend_end_query(struct vrend_context *ctx, uint32_t handle)
@ -6465,7 +6468,10 @@ void vrend_end_query(struct vrend_context *ctx, uint32_t handle)
return;
}
glEndQuery(q->gltype);
if (q->index > 0)
glEndQueryIndexed(q->gltype, q->index);
else
glEndQuery(q->gltype);
}
void vrend_get_query_result(struct vrend_context *ctx, uint32_t handle,

Loading…
Cancel
Save