On Mon, Mar 09, 2015 at 01:58:56AM -0700, Kenneth Graunke wrote: > No functional change. In preparation for supporting vertex shaders, > this adds a switch statement on shader stage (since vertex attributes > and fragment shader varyings will need different handling). It also > renames "varying" to "input", to be more general. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > --- > src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 29 +++++++++++++++++++---------- > 1 file changed, 19 insertions(+), 10 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > index d700523..3baafc4 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > @@ -199,18 +199,27 @@ fs_visitor::nir_setup_inputs(nir_shader *shader) > struct hash_entry *entry; > hash_table_foreach(shader->inputs, entry) { > nir_variable *var = (nir_variable *) entry->data; > - fs_reg varying = offset(nir_inputs, var->data.driver_location); > + fs_reg input = offset(nir_inputs, var->data.driver_location); > > fs_reg reg; > - if (var->data.location == VARYING_SLOT_POS) { > - reg = *emit_fragcoord_interpolation(var->data.pixel_center_integer, > - var->data.origin_upper_left); > - emit_percomp(MOV(varying, reg), 0xF); > - } else { > - emit_general_interpolation(varying, var->name, var->type, > - (glsl_interp_qualifier) > var->data.interpolation, > - var->data.location, var->data.centroid, > - var->data.sample); > + switch (stage) { > + case MESA_SHADER_VERTEX: > + case MESA_SHADER_GEOMETRY: > + case MESA_SHADER_COMPUTE: > + unreachable("fs_visitor not used for these stages yet."); > + break; > + case MESA_SHADER_FRAGMENT: > + if (var->data.location == VARYING_SLOT_POS) { > + reg = > *emit_fragcoord_interpolation(var->data.pixel_center_integer, > + var->data.origin_upper_left); > + emit_percomp(MOV(input, reg), 0xF); > + } else { > + emit_general_interpolation(input, var->name, var->type, > + (glsl_interp_qualifier) > var->data.interpolation, > + var->data.location, > var->data.centroid, > + var->data.sample); > + } > + break; > } > } > } > -- > 2.2.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev