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

Reply via email to