[Mesa-dev] [PATCH 2/4] i965: Drop has_pln checks in unlit centroid workaround.

Timothy Arceri timothy.arceri at collabora.com
Sat Jul 16 23:14:28 UTC 2016


On Fri, 2016-07-15 at 23:43 -0700, Kenneth Graunke wrote:
> The unlit centroid workaround starts being necessary on Gen6, which
> is the first platform with multisampling.  PLN exists on G45+, so all
> platforms which need this workaround have PLN.
> 
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp
> b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 446cf3a..940f425 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -1185,16 +1185,13 @@ fs_visitor::emit_general_interpolation(fs_reg
> *attr, const char *name,
>                                 delta_xy[centroid_to_pixel(bary)],
> interp);
>                 inst->predicate = BRW_PREDICATE_NORMAL;
>                 inst->predicate_inverse = true;
> -               if (devinfo->has_pln)
> -                  inst->no_dd_clear = true;
> +               inst->no_dd_clear = true;
>  
>                 inst = bld.emit(FS_OPCODE_LINTERP, *attr,
>                                 delta_xy[bary], interp);
>                 inst->predicate = BRW_PREDICATE_NORMAL;
>                 inst->predicate_inverse = false;
> -               if (devinfo->has_pln)
> -                  inst->no_dd_check = true;
> -
> +               inst->no_dd_check = true;
>              } else {
>                 bld.emit(FS_OPCODE_LINTERP, *attr, delta_xy[bary],
> interp);
>              }

There is code just below this:

   if (devinfo->gen < 6 && interpolation_mode ==
INTERP_QUALIFIER_SMOOTH) {
       bld.MUL(*attr, *attr, this->pixel_w);
   }

Which I think you could change to:

    else {
       bld.emit(FS_OPCODE_LINTERP, *attr, delta_xy[bary], interp);
          if (interpolation_mode == INTERP_QUALIFIER_SMOOTH) {
         
   bld.MUL(*attr, *attr, this->pixel_w);
          }
    }

With or without that change:

Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com


More information about the mesa-dev mailing list