From 640f5d39570daee08ad56a445fa4cd6c97ca50c8 Mon Sep 17 00:00:00 2001 From: Ben Widawsky Date: Mon, 4 Jan 2016 10:48:39 -0800 Subject: [PATCH] i965/cnl: Implement depth count workaround Signed-off-by: Ben Widawsky Reviewed-by: Jason Ekstrand --- src/mesa/drivers/dri/i965/brw_queryobj.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c index a7b896243d6..9ad4779322b 100644 --- a/src/mesa/drivers/dri/i965/brw_queryobj.c +++ b/src/mesa/drivers/dri/i965/brw_queryobj.c @@ -111,6 +111,14 @@ brw_write_depth_count(struct brw_context *brw, struct brw_bo *query_bo, int idx) if (brw->gen == 9 && brw->gt == 4) flags |= PIPE_CONTROL_CS_STALL; + if (brw->gen >= 10) { + /* "Driver must program PIPE_CONTROL with only Depth Stall Enable bit set + * prior to programming a PIPE_CONTROL with Write PS Depth Count Post sync + * operation." + */ + brw_emit_pipe_control_flush(brw, PIPE_CONTROL_DEPTH_STALL); + } + brw_emit_pipe_control_write(brw, flags, query_bo, idx * sizeof(uint64_t), 0, 0); -- 2.30.2