Implement the frontend part of the ARB_query_buffer_object gallium callback into the driver query_ops.
Signed-off-by: Edward O'Callaghan <eocallag...@alterapraxis.com> --- src/gallium/drivers/radeon/r600_query.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/gallium/drivers/radeon/r600_query.c b/src/gallium/drivers/radeon/r600_query.c index 7a2d2ee..b75ad2d 100644 --- a/src/gallium/drivers/radeon/r600_query.c +++ b/src/gallium/drivers/radeon/r600_query.c @@ -899,6 +899,24 @@ static void r600_query_hw_add_result(struct r600_common_context *ctx, } } +static void r600_get_query_result_resource(struct pipe_context *ctx, + struct pipe_query *query, boolean wait, + enum pipe_query_value_type result_type, + int index, struct pipe_resource *resource, + unsigned offset) +{ + struct r600_common_context *rctx = (struct r600_common_context *)ctx; + struct r600_query *rquery = (struct r600_query *)query; + + if (!rquery->ops->get_query_result_resource) { + assert(!"Unexpected lack of get_query_result_resource"); + return; + } + + rquery->ops->get_query_result_resource(rctx, rquery, wait, result_type, + index, resource, offset); +} + static boolean r600_get_query_result(struct pipe_context *ctx, struct pipe_query *query, boolean wait, union pipe_query_result *result) @@ -1269,6 +1287,7 @@ void r600_query_init(struct r600_common_context *rctx) rctx->b.begin_query = r600_begin_query; rctx->b.end_query = r600_end_query; rctx->b.get_query_result = r600_get_query_result; + rctx->b.get_query_result_resource = r600_get_query_result_resource; rctx->render_cond_atom.emit = r600_emit_query_predication; if (((struct r600_common_screen*)rctx->b.screen)->info.num_render_backends > 0) -- 2.5.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev