nir: Add a nir->info.uses_interp_var_at_offset flag.
I've added this to nir_gather_info(), but also to glsl_to_nir() as a temporary measure, since the i965 GL driver today doesn't use nir_gather_info() yet. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -1277,6 +1277,9 @@ nir_visitor::visit(ir_expression *ir)
|
|||||||
intrin->intrinsic == nir_intrinsic_interp_var_at_sample)
|
intrin->intrinsic == nir_intrinsic_interp_var_at_sample)
|
||||||
intrin->src[0] = nir_src_for_ssa(evaluate_rvalue(ir->operands[1]));
|
intrin->src[0] = nir_src_for_ssa(evaluate_rvalue(ir->operands[1]));
|
||||||
|
|
||||||
|
if (intrin->intrinsic == nir_intrinsic_interp_var_at_offset)
|
||||||
|
shader->info.uses_interp_var_at_offset = true;
|
||||||
|
|
||||||
unsigned bit_size = glsl_get_bit_size(deref->type);
|
unsigned bit_size = glsl_get_bit_size(deref->type);
|
||||||
add_instr(&intrin->instr, deref->type->vector_elements, bit_size);
|
add_instr(&intrin->instr, deref->type->vector_elements, bit_size);
|
||||||
|
|
||||||
|
@@ -1716,6 +1716,9 @@ typedef struct nir_shader_info {
|
|||||||
/* Whether or not this shader ever uses textureGather() */
|
/* Whether or not this shader ever uses textureGather() */
|
||||||
bool uses_texture_gather;
|
bool uses_texture_gather;
|
||||||
|
|
||||||
|
/** Whether or not this shader uses nir_intrinsic_interp_var_at_offset */
|
||||||
|
bool uses_interp_var_at_offset;
|
||||||
|
|
||||||
/* Whether or not this shader uses the gl_ClipDistance output */
|
/* Whether or not this shader uses the gl_ClipDistance output */
|
||||||
bool uses_clip_distance_out;
|
bool uses_clip_distance_out;
|
||||||
|
|
||||||
|
@@ -56,6 +56,10 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader)
|
|||||||
shader->info.gs.uses_end_primitive = 1;
|
shader->info.gs.uses_end_primitive = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case nir_intrinsic_interp_var_at_offset:
|
||||||
|
shader->info.uses_interp_var_at_offset = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user