diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_queryobj.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c index f32721b837d..7baa2131e11 100644 --- a/src/mesa/drivers/dri/i965/brw_queryobj.c +++ b/src/mesa/drivers/dri/i965/brw_queryobj.c @@ -56,7 +56,12 @@ brw_write_timestamp(struct brw_context *brw, drm_intel_bo *query_bo, int idx) PIPE_CONTROL_STALL_AT_SCOREBOARD); } - brw_emit_pipe_control_write(brw, PIPE_CONTROL_WRITE_TIMESTAMP, + uint32_t flags = PIPE_CONTROL_WRITE_TIMESTAMP; + + if (brw->gen == 9 && brw->gt == 4) + flags |= PIPE_CONTROL_CS_STALL; + + brw_emit_pipe_control_write(brw, flags, query_bo, idx * sizeof(uint64_t), 0, 0); } @@ -66,9 +71,12 @@ brw_write_timestamp(struct brw_context *brw, drm_intel_bo *query_bo, int idx) void brw_write_depth_count(struct brw_context *brw, drm_intel_bo *query_bo, int idx) { - brw_emit_pipe_control_write(brw, - PIPE_CONTROL_WRITE_DEPTH_COUNT | - PIPE_CONTROL_DEPTH_STALL, + uint32_t flags = PIPE_CONTROL_WRITE_DEPTH_COUNT | PIPE_CONTROL_DEPTH_STALL; + + if (brw->gen == 9 && brw->gt == 4) + flags |= PIPE_CONTROL_CS_STALL; + + brw_emit_pipe_control_write(brw, flags, query_bo, idx * sizeof(uint64_t), 0, 0); } |