[Mesa-dev] [PATCH] i965/blorp: Cleanup leftovers from push constant disabling

Pohjolainen, Topi topi.pohjolainen at intel.com
Wed Jul 13 16:01:10 UTC 2016


On Wed, Jul 13, 2016 at 07:14:47AM -0700, Jason Ekstrand wrote:
>    On Jul 13, 2016 1:34 AM, "Topi Pohjolainen"
>    <[1]topi.pohjolainen at intel.com> wrote:
>    >
>    > Setup for pixel shader push constants is the same as for other
>    > stages. Note that on gen8+ the if-else branches were identical
>    > and the generation check for packet size redundant.
> 
>    It tripped me up a bit that you didn't have a generation check for
>    packet size in the gen7 version that's now getting used on gen7-9.

They are still separate, gen7 and gen8+ have their own functions:

gen7_blorp_disable_constant_state() and
gen8_blorp_disable_constant_state()

>    However, the extra dwords just turn into noops anyway so it's OK.
> 
>    > Signed-off-by: Topi Pohjolainen <[2]topi.pohjolainen at intel.com>
>    > ---
>    >  src/mesa/drivers/dri/i965/gen7_blorp.c | 27 ++++--------------
>    >  src/mesa/drivers/dri/i965/gen8_blorp.c | 50
>    ++++------------------------------
>    >  2 files changed, 12 insertions(+), 65 deletions(-)
>    >
>    > diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.c
>    b/src/mesa/drivers/dri/i965/gen7_blorp.c
>    > index abdc4be..72ab082 100644
>    > --- a/src/mesa/drivers/dri/i965/gen7_blorp.c
>    > +++ b/src/mesa/drivers/dri/i965/gen7_blorp.c
>    > @@ -233,7 +233,7 @@ gen7_blorp_emit_surface_state(struct brw_context
>    *brw,
>    >   * buffer are valid.
>    >   */
>    >  static void
>    > -gen7_blorp_emit_disable_constant_state(struct brw_context *brw,
>    > +gen7_blorp_disable_constant_state(struct brw_context *brw,
>    >                                         unsigned opcode)
>    >  {
>    >     BEGIN_BATCH(7);
>    > @@ -570,20 +570,6 @@ gen7_blorp_emit_sampler_state_pointers_ps(struct
>    brw_context *brw,
>    >     ADVANCE_BATCH();
>    >  }
>    >
>    > -void
>    > -gen7_blorp_emit_constant_ps_disable(struct brw_context *brw)
>    > -{
>    > -   BEGIN_BATCH(7);
>    > -   OUT_BATCH(_3DSTATE_CONSTANT_PS << 16 | (7 - 2));
>    > -   OUT_BATCH(0);
>    > -   OUT_BATCH(0);
>    > -   OUT_BATCH(0);
>    > -   OUT_BATCH(0);
>    > -   OUT_BATCH(0);
>    > -   OUT_BATCH(0);
>    > -   ADVANCE_BATCH();
>    > -}
>    > -
>    >  static void
>    >  gen7_blorp_emit_depth_stencil_config(struct brw_context *brw,
>    >                                       const struct brw_blorp_params
>    *params)
>    > @@ -779,10 +765,11 @@ gen7_blorp_exec(struct brw_context *brw,
>    >        gen7_blorp_emit_cc_state_pointer(brw, cc_state_offset);
>    >     }
>    >
>    > -   gen7_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_VS);
>    > -   gen7_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_HS);
>    > -   gen7_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_DS);
>    > -   gen7_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_GS);
>    > +   gen7_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_VS);
>    > +   gen7_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_HS);
>    > +   gen7_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_DS);
>    > +   gen7_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_GS);
>    > +   gen7_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_PS);
>    >
>    >     depthstencil_offset = gen6_blorp_emit_depth_stencil_state(brw,
>    params);
>    >     gen7_blorp_emit_depth_stencil_state_pointers(brw,
>    depthstencil_offset);
>    > @@ -821,8 +808,6 @@ gen7_blorp_exec(struct brw_context *brw,
>    >     if (params->wm_prog_data)
>    >        gen7_blorp_emit_binding_table_pointers_ps(brw,
>    wm_bind_bo_offset);
>    >
>    > -   gen7_blorp_emit_constant_ps_disable(brw);
>    > -
>    >     if (params->[3]src.mt) {
>    >        const uint32_t sampler_offset =
>    >           gen6_blorp_emit_sampler_state(brw, BRW_MAPFILTER_LINEAR, 0,
>    true);
>    > diff --git a/src/mesa/drivers/dri/i965/gen8_blorp.c
>    b/src/mesa/drivers/dri/i965/gen8_blorp.c
>    > index 21fcd9e..f68aba5 100644
>    > --- a/src/mesa/drivers/dri/i965/gen8_blorp.c
>    > +++ b/src/mesa/drivers/dri/i965/gen8_blorp.c
>    > @@ -161,7 +161,7 @@ gen8_blorp_emit_blend_state(struct brw_context
>    *brw,
>    >   * buffer are valid.
>    >   */
>    >  static void
>    > -gen8_blorp_emit_disable_constant_state(struct brw_context *brw,
>    > +gen8_blorp_disable_constant_state(struct brw_context *brw,
>    >                                         unsigned opcode)
>    >  {
>    >     BEGIN_BATCH(11);
>    > @@ -566,44 +566,6 @@ gen8_blorp_emit_depth_stencil_state(struct
>    brw_context *brw,
>    >     ADVANCE_BATCH();
>    >  }
>    >
>    > -static void
>    > -gen8_blorp_emit_disable_constant_ps(struct brw_context *brw)
>    > -{
>    > -   const int dwords = brw->gen >= 8 ? 11 : 7;
>    > -   BEGIN_BATCH(dwords);
>    > -   OUT_BATCH(_3DSTATE_CONSTANT_PS << 16 | (dwords - 2));
>    > -
>    > -   if (brw->gen >= 9) {
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -   } else {
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -   }
>    > -
>    > -   if (brw->gen >= 9) {
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -   } else {
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -      OUT_BATCH(0);
>    > -   }
>    > -
>    > -   ADVANCE_BATCH();
>    > -}
>    > -
>    >  static uint32_t
>    >  gen8_blorp_emit_surface_states(struct brw_context *brw,
>    >                                 const struct brw_blorp_params
>    *params)
>    > @@ -680,12 +642,12 @@ gen8_blorp_exec(struct brw_context *brw, const
>    struct brw_blorp_params *params)
>    >     const uint32_t cc_state_offset = gen6_blorp_emit_cc_state(brw);
>    >     gen7_blorp_emit_cc_state_pointer(brw, cc_state_offset);
>    >
>    > -   gen8_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_VS);
>    > -   gen8_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_HS);
>    > -   gen8_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_DS);
>    > -   gen8_blorp_emit_disable_constant_state(brw,
>    _3DSTATE_CONSTANT_GS);
>    > +   gen8_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_VS);
>    > +   gen8_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_HS);
>    > +   gen8_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_DS);
>    > +   gen8_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_GS);
>    > +   gen8_blorp_disable_constant_state(brw, _3DSTATE_CONSTANT_PS);
>    >
>    > -   gen8_blorp_emit_disable_constant_ps(brw);
>    >     wm_bind_bo_offset = gen8_blorp_emit_surface_states(brw, params);
>    >
>    >     gen7_blorp_emit_binding_table_pointers_ps(brw,
>    wm_bind_bo_offset);
>    > --
>    > 2.5.5
>    >
>    > _______________________________________________
>    > mesa-dev mailing list
>    > [4]mesa-dev at lists.freedesktop.org
>    > [5]https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> References
> 
>    1. mailto:topi.pohjolainen at intel.com
>    2. mailto:topi.pohjolainen at intel.com
>    3. http://src.mt/
>    4. mailto:mesa-dev at lists.freedesktop.org
>    5. https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list