[Mesa-dev] [PATCH] i965/urb/cnl: Apply gen7 CS stall
Rafael Antognolli
rafael.antognolli at intel.com
Fri Apr 20 23:22:29 UTC 2018
On Thu, Apr 19, 2018 at 05:44:06PM +0300, Topi Pohjolainen wrote:
> This didn't actually help the failing tests I'm looking at
> but hopefully has teeth elsewhere.
>
> CC: Jason Ekstrand <jason at jlekstrand.net>
> CC: Jordan Justen <jordan.l.justen at intel.com>
> CC: Anuj Phogat <anuj.phogat at gmail.com>
> Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
> src/mesa/drivers/dri/i965/gen7_urb.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/gen7_urb.c b/src/mesa/drivers/dri/i965/gen7_urb.c
> index 2e5f8e6..9e12657 100644
> --- a/src/mesa/drivers/dri/i965/gen7_urb.c
> +++ b/src/mesa/drivers/dri/i965/gen7_urb.c
> @@ -145,8 +145,15 @@ gen7_emit_push_constant_state(struct brw_context *brw, unsigned vs_size,
> * in the ring after this instruction.
> *
> * No such restriction exists for Haswell or Baytrail.
> + *
> + * From the CNL Bspec, Windower -
> + * 3DSTATE_PUSH_CONSTANT_ALLOC_PS/VS/GS/DS/HS:
> + *
> + * This command must be followed by a PIPE_CONTROL with CS Stall bit
> + * set.
> */
Ugh, this looks really bad. My understanding was that this was part of
the WaPSRandomCSNotDone workaround, and thus only applicable to earlier
steppings of the hardware.
I think we need to get clarification about this on the bspec, otherwise
this won't be the only place we have to apply this workaround :(
> - if (devinfo->gen < 8 && !devinfo->is_haswell && !devinfo->is_baytrail)
> + if ((devinfo->gen < 8 && !devinfo->is_haswell && !devinfo->is_baytrail) ||
> + devinfo->gen >= 10)
> gen7_emit_cs_stall_flush(brw);
> }
>
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list