Be consistent in passing along brw_context rather than switching between that and gl_context.
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> --- src/mesa/drivers/dri/i965/gen6_queryobj.c | 30 +++++++++++------------ 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/mesa/drivers/dri/i965/gen6_queryobj.c b/src/mesa/drivers/dri/i965/gen6_queryobj.c index f73f29e8524..f3b9dd24624 100644 --- a/src/mesa/drivers/dri/i965/gen6_queryobj.c +++ b/src/mesa/drivers/dri/i965/gen6_queryobj.c @@ -101,11 +101,10 @@ write_xfb_primitives_written(struct brw_context *brw, } static void -write_xfb_overflow_streams(struct gl_context *ctx, +write_xfb_overflow_streams(struct brw_context *brw, struct brw_bo *bo, int stream, int count, int idx) { - struct brw_context *brw = brw_context(ctx); const struct gen_device_info *devinfo = &brw->screen->devinfo; brw_emit_mi_flush(brw); @@ -209,16 +208,12 @@ emit_pipeline_stat(struct brw_context *brw, struct brw_bo *bo, * Wait on the query object's BO and calculate the final result. */ static void -gen6_queryobj_get_results(struct gl_context *ctx, +gen6_queryobj_get_results(struct brw_context *brw, struct brw_query_object *query, uint64_t *results) { - struct brw_context *brw = brw_context(ctx); const struct gen_device_info *devinfo = &brw->screen->devinfo; - if (query->bo == NULL) - return; - switch (query->Base.Target) { case GL_TIME_ELAPSED: /* The query BO contains the starting and ending timestamps. @@ -235,7 +230,7 @@ gen6_queryobj_get_results(struct gl_context *ctx, /* Ensure the scaled timestamp overflows according to * GL_QUERY_COUNTER_BITS */ - query->Base.Result &= (1ull << ctx->Const.QueryCounterBits.Timestamp) - 1; + query->Base.Result &= (1ull << brw->ctx.Const.QueryCounterBits.Timestamp) - 1; break; case GL_SAMPLES_PASSED_ARB: @@ -401,7 +396,7 @@ gen6_begin_query(struct gl_context *ctx, struct gl_query_object *q) case GL_PRIMITIVES_GENERATED: write_primitives_generated(brw, query->bo, query->Base.Stream, idx); if (query->Base.Stream == 0) - ctx->NewDriverState |= BRW_NEW_RASTERIZER_DISCARD; + brw->ctx.NewDriverState |= BRW_NEW_RASTERIZER_DISCARD; break; case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: @@ -409,11 +404,11 @@ gen6_begin_query(struct gl_context *ctx, struct gl_query_object *q) break; case GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB: - write_xfb_overflow_streams(ctx, query->bo, query->Base.Stream, 1, idx); + write_xfb_overflow_streams(brw, query->bo, query->Base.Stream, 1, idx); break; case GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB: - write_xfb_overflow_streams(ctx, query->bo, 0, MAX_VERTEX_STREAMS, idx); + write_xfb_overflow_streams(brw, query->bo, 0, MAX_VERTEX_STREAMS, idx); break; case GL_VERTICES_SUBMITTED_ARB: @@ -464,7 +459,7 @@ gen6_end_query(struct gl_context *ctx, struct gl_query_object *q) case GL_PRIMITIVES_GENERATED: write_primitives_generated(brw, query->bo, query->Base.Stream, idx); if (query->Base.Stream == 0) - ctx->NewDriverState |= BRW_NEW_RASTERIZER_DISCARD; + brw->ctx.NewDriverState |= BRW_NEW_RASTERIZER_DISCARD; break; case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: @@ -472,11 +467,11 @@ gen6_end_query(struct gl_context *ctx, struct gl_query_object *q) break; case GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB: - write_xfb_overflow_streams(ctx, query->bo, query->Base.Stream, 1, idx); + write_xfb_overflow_streams(brw, query->bo, query->Base.Stream, 1, idx); break; case GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB: - write_xfb_overflow_streams(ctx, query->bo, 0, MAX_VERTEX_STREAMS, idx); + write_xfb_overflow_streams(brw, query->bo, 0, MAX_VERTEX_STREAMS, idx); break; /* calculate overflow here */ @@ -535,6 +530,9 @@ static void gen6_wait_query(struct gl_context *ctx, struct gl_query_object *q) struct brw_context *brw = brw_context(ctx); struct brw_query_object *query = (struct brw_query_object *)q; + if (query->bo == NULL) + return; + /* If the application has requested the query result, but this batch is * still contributing to it, flush it now to finish that work so the * result will become available (eventually). @@ -545,7 +543,7 @@ static void gen6_wait_query(struct gl_context *ctx, struct gl_query_object *q) if (!results[GEN6_QUERY_PREDICATE]) /* not yet available, must wait */ brw_bo_wait_rendering(query->bo); - gen6_queryobj_get_results(ctx, query, results + GEN6_QUERY_RESULTS); + gen6_queryobj_get_results(brw, query, results + GEN6_QUERY_RESULTS); } /** @@ -577,7 +575,7 @@ static void gen6_check_query(struct gl_context *ctx, struct gl_query_object *q) uint64_t *results = query->results; if (results[GEN6_QUERY_PREDICATE] || /* already available, can read async */ !brw_bo_map_busy(query->bo, MAP_READ)) /* GPU hang, results lost? */ - gen6_queryobj_get_results(ctx, query, results + GEN6_QUERY_RESULTS); + gen6_queryobj_get_results(brw, query, results + GEN6_QUERY_RESULTS); } static void -- 2.19.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev