[Mesa-dev] [PATCH 2/6] i965/gen8+: Invalidate color calc state when switching to the GPGPU pipeline.

Matt Turner mattst88 at gmail.com
Sun Jan 3 08:57:49 PST 2016


On Sun, Jan 3, 2016 at 1:48 AM, Francisco Jerez <currojerez at riseup.net> wrote:
> This hardware bug can cause a hang on context restore while the
> current pipeline is set to GPGPU (BDWGFX HSD 1909593).  In addition to
> clearing the valid bit, mark the CC state as dirty to make sure that
> the CC indirect state pointer is re-emitted when we switch back to the
> 3D pipeline.
> ---
>  src/mesa/drivers/dri/i965/brw_misc_state.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
> index cf6ba5b..7d53d18 100644
> --- a/src/mesa/drivers/dri/i965/brw_misc_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
> @@ -868,6 +868,26 @@ brw_emit_select_pipeline(struct brw_context *brw, enum brw_pipeline pipeline)
>     const uint32_t _3DSTATE_PIPELINE_SELECT =
>        is_965 ? CMD_PIPELINE_SELECT_965 : CMD_PIPELINE_SELECT_GM45;
>
> +   if (brw->gen >= 8) {
> +      /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction]
> +       * PIPELINE_SELECT [DevBWR+]":
> +       *
> +       *   Project: BDW, SKL

I think we should restrict this block to brw->gen == 8 || brw->gen ==
9 in that case?

I can't find evidence that the workaround applies to later hardware
(and in fact the page cited has a different workaround for a later
generation).


More information about the mesa-dev mailing list