i965/fs: Refactor fs_visitor::nir_setup_inputs().
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 <kenneth@whitecape.org> Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
34628a838a
commit
a5c4e7fcf5
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue