[Mesa-dev] [PATCH 4/4] i965: Move pulls_bary setting to emit_pixel_interpolator_send().

Kenneth Graunke kenneth at whitecape.org
Sat Jul 16 06:43:15 UTC 2016


pulls_bary should be set when the shader uses a pixel interpolator
message.  So, setting it from the function that emits pixel interpolator
messages makes a lot of sense.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index 898f23a..5442b73 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
@@ -1639,6 +1639,8 @@ emit_pixel_interpolater_send(const fs_builder &bld,
                              const fs_reg &desc,
                              glsl_interp_mode interpolation)
 {
+   struct brw_wm_prog_data *wm_prog_data =
+      (struct brw_wm_prog_data *) bld.shader->stage_prog_data;
    fs_inst *inst;
    fs_reg payload;
    int mlen;
@@ -1658,6 +1660,8 @@ emit_pixel_interpolater_send(const fs_builder &bld,
    inst->regs_written = 2 * bld.dispatch_width() / 8;
    inst->pi_noperspective = interpolation == INTERP_MODE_NOPERSPECTIVE;
 
+   wm_prog_data->pulls_bary = true;
+
    return inst;
 }
 
@@ -3023,8 +3027,6 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld,
                                   nir_intrinsic_instr *instr)
 {
    assert(stage == MESA_SHADER_FRAGMENT);
-   struct brw_wm_prog_data *wm_prog_data =
-      (struct brw_wm_prog_data *) prog_data;
    const struct brw_wm_prog_key *wm_key = (const struct brw_wm_prog_key *) key;
 
    fs_reg dest;
@@ -3103,8 +3105,6 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld,
        * pre-interpolation.  In order to get the actual location of the bits
        * we get from the vertex fetching hardware, we need the variable.
        */
-      wm_prog_data->pulls_bary = true;
-
       fs_reg dst_xy = bld.vgrf(BRW_REGISTER_TYPE_F, 2);
       const glsl_interp_mode interpolation =
          (glsl_interp_mode) instr->variables[0]->var->data.interpolation;
-- 
2.9.0



More information about the mesa-dev mailing list