[Mesa-dev] [PATCH] i965/icl: Allow headerless sampler messages for pre-emptable contexts

Anuj Phogat anuj.phogat at gmail.com
Mon Aug 20 17:26:29 UTC 2018


On Mon, Aug 20, 2018 at 12:18 AM Kenneth Graunke <kenneth at whitecape.org> wrote:
>
> On Friday, August 17, 2018 5:13:25 PM PDT Anuj Phogat wrote:
> > It fixes simulator warnings in piglit tests complaining about missing
> > support for headerless sampler messages for pre-emptable contexts.
> > Bit 5 in SAMPLER MODE register is newly introduced for ICLLP.
> >
> > Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> > ---
> >  src/mesa/drivers/dri/i965/brw_defines.h      |  4 ++++
> >  src/mesa/drivers/dri/i965/brw_state_upload.c | 11 +++++++++++
> >  2 files changed, 15 insertions(+)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h
> > index 855f1c7d744..433314115b1 100644
> > --- a/src/mesa/drivers/dri/i965/brw_defines.h
> > +++ b/src/mesa/drivers/dri/i965/brw_defines.h
> > @@ -1673,4 +1673,8 @@ enum brw_pixel_shader_coverage_mask_mode {
> >  # define GLK_SCEC_BARRIER_MODE_3D_HULL     (1 << 7)
> >  # define GLK_SCEC_BARRIER_MODE_MASK        REG_MASK(1 << 7)
> >
> > +#define GEN11_SAMPLER_MODE                                  0xE18C
> > +# define HEADERLESS_MESSAGE_FOR_PREEMPTABLE_CONTEXTS        (1 << 5)
> > +# define HEADERLESS_MESSAGE_FOR_PREEMPTABLE_CONTEXTS_MASK   REG_MASK(1 << 5)
> > +
> >  #endif
> > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
> > index 757426407c3..5a334b48892 100644
> > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c
> > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
> > @@ -63,6 +63,17 @@ brw_upload_initial_gpu_state(struct brw_context *brw)
> >
> >     brw_upload_invariant_state(brw);
> >
> > +   if (devinfo->gen == 11) {
> > +      /*  The default behavior of bit 5 "Headerless Message for Pre-emptable
> > +       *  Contexts" in SAMPLER MODE register is set to 0, which means
> > +       *  headerless sampler messages are not allowed for pre-emptable
> > +       *  contexts. Set the bit 5 to 1 to allow them.
>
> Bonus space after the stars.  Can we also change this to:
>
>        * contexts.  Set bit 5 to allow them.
>
> Same for the anv patch.  Either way, both are:
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
>
Fixed locally. Thanks.
> I don't know if people are trying to enable pre-emption during GPGPU
> work on pre-Gen11.  If so, that probably will not work, and we'd either
> need to avoid headerless messages (gross) or disable preemption (maybe
> also bad...)
>
Why do you think it'll be problem for Pre-Gen11? I don't see a bit disallowing
preemption+headerless message for pre-Gen11.

> > +       */
> > +      brw_load_register_imm32(brw, GEN11_SAMPLER_MODE,
> > +                              HEADERLESS_MESSAGE_FOR_PREEMPTABLE_CONTEXTS_MASK |
> > +                              HEADERLESS_MESSAGE_FOR_PREEMPTABLE_CONTEXTS);
> > +   }
> > +
> >     if (devinfo->gen == 10 || devinfo->gen == 11) {
> >        /* From gen10 workaround table in h/w specs:
> >         *
> >
>


More information about the mesa-dev mailing list