[Mesa-dev] [PATCH] i965/gen8+: Skip depth stalls on state change
Ben Widawsky
ben at bwidawsk.net
Wed Aug 26 10:58:03 PDT 2015
On Wed, Aug 26, 2015 at 10:52:58AM -0700, Ben Widawsky wrote:
> Docs suggest this is no longer required starting with Gen8.
>
> Perf (no regressions in n=20)
> OglMultithread 0.67%
> OglTerrainPanInst 0.12%
> trex 0.45%
> warsow 0.64%
I forgot to mention this data is from BDW GT3
>
> I have a couple of spurious failures in piglit on BSW, and SKL. I have no
> evidence that they are related to this patch.
>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
> src/mesa/drivers/dri/i965/brw_pipe_control.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_pipe_control.c b/src/mesa/drivers/dri/i965/brw_pipe_control.c
> index 7ee3cb6..a2aef8a 100644
> --- a/src/mesa/drivers/dri/i965/brw_pipe_control.c
> +++ b/src/mesa/drivers/dri/i965/brw_pipe_control.c
> @@ -193,6 +193,14 @@ brw_emit_depth_stall_flushes(struct brw_context *brw)
> {
> assert(brw->gen >= 6 && brw->gen <= 9);
>
> + /* Starting on BDW, these pipe controls are unnecessary.
> + *
> + * WM HW will internally manage the draining pipe and flushing of the caches
> + * when this command is issued. The PIPE_CONTROL restrictions are removed.
> + */
> + if (brw->gen >= 8)
> + return;
> +
> brw_emit_pipe_control_flush(brw, PIPE_CONTROL_DEPTH_STALL);
> brw_emit_pipe_control_flush(brw, PIPE_CONTROL_DEPTH_CACHE_FLUSH);
> brw_emit_pipe_control_flush(brw, PIPE_CONTROL_DEPTH_STALL);
> --
> 2.5.0
>
More information about the mesa-dev
mailing list