{
struct r600_context *rctx = r600_context(ctx);
struct r600_query *rquery = NULL;
-#if 0
+#if 1
static int dc = 0;
char dname[256];
#endif
#if 0
sprintf(dname, "gallium-%08d.bof", dc);
- if (dc < 2) {
+ if (dc < 20) {
radeon_ctx_dump_bof(rctx->ctx, dname);
R600_ERR("dumped %s\n", dname);
}
struct r600_draw rdraw;
struct r600_pipe_state vgt;
+
switch (draw->index_size) {
case 2:
vgt_draw_initiator = 0;
struct pipe_fence_handle **fence)
{
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
-#if 1
+#if 0
static int dc = 0;
char dname[256];
#endif
static void r600_begin_query(struct pipe_context *ctx, struct pipe_query *query)
{
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
+ struct r600_query *rquery = (struct r600_query *)query;
+ rquery->result = 0;
+ rquery->num_results = 0;
r600_query_begin(&rctx->ctx, (struct r600_query *)query);
}
boolean wait, void *vresult)
{
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
+ struct r600_query *rquery = (struct r600_query *)query;
+ if (rquery->num_results) {
+ ctx->flush(ctx, 0, NULL);
+ }
return r600_context_query_result(&rctx->ctx, (struct r600_query *)query, wait, vresult);
}