nir: Add gpu_shader5 interpolation intrinsics

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
Jason Ekstrand
2014-12-04 12:16:06 -08:00
parent e3fa49c9e6
commit 45bdcc257e
2 changed files with 21 additions and 27 deletions

View File

@@ -208,25 +208,21 @@ nir_lower_io_block(nir_block *block, void *void_state)
bool has_indirect = deref_has_indirect(intrin->variables[0]);
/* Figure out the opcode */
nir_intrinsic_op load_op;
switch (mode) {
case nir_var_shader_in:
if (has_indirect) {
load_op = nir_intrinsic_load_input_indirect;
} else {
load_op = nir_intrinsic_load_input;
}
load_op = has_indirect ? nir_intrinsic_load_input_indirect :
nir_intrinsic_load_input;
break;
case nir_var_uniform:
if (has_indirect) {
load_op = nir_intrinsic_load_uniform_indirect;
} else {
load_op = nir_intrinsic_load_uniform;
}
load_op = has_indirect ? nir_intrinsic_load_uniform_indirect :
nir_intrinsic_load_uniform;
break;
default:
unreachable("Unknown variable mode");
}
nir_intrinsic_instr *load = nir_intrinsic_instr_create(state->mem_ctx,
load_op);
load->num_components = intrin->num_components;