mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
radeonsi/nir: add interpolate at intrinsics to scan_instruction()
V2: use the uses_*_opcode_interp_* flags Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
882eff4d20
commit
580f1aa247
1 changed files with 30 additions and 0 deletions
|
|
@ -127,6 +127,36 @@ static void scan_instruction(struct tgsi_shader_info *info,
|
|||
case nir_intrinsic_ssbo_atomic_comp_swap:
|
||||
info->writes_memory = true;
|
||||
break;
|
||||
case nir_intrinsic_interp_var_at_centroid:
|
||||
case nir_intrinsic_interp_var_at_sample:
|
||||
case nir_intrinsic_interp_var_at_offset: {
|
||||
enum glsl_interp_mode interp =
|
||||
intr->variables[0]->var->data.interpolation;
|
||||
switch (interp) {
|
||||
case INTERP_MODE_SMOOTH:
|
||||
case INTERP_MODE_NONE:
|
||||
if (intr->intrinsic == nir_intrinsic_interp_var_at_centroid)
|
||||
info->uses_persp_opcode_interp_centroid = true;
|
||||
else if (intr->intrinsic == nir_intrinsic_interp_var_at_sample)
|
||||
info->uses_persp_opcode_interp_sample = true;
|
||||
else
|
||||
info->uses_persp_opcode_interp_offset = true;
|
||||
break;
|
||||
case INTERP_MODE_NOPERSPECTIVE:
|
||||
if (intr->intrinsic == nir_intrinsic_interp_var_at_centroid)
|
||||
info->uses_linear_opcode_interp_centroid = true;
|
||||
else if (intr->intrinsic == nir_intrinsic_interp_var_at_sample)
|
||||
info->uses_linear_opcode_interp_sample = true;
|
||||
else
|
||||
info->uses_linear_opcode_interp_offset = true;
|
||||
break;
|
||||
case INTERP_MODE_FLAT:
|
||||
break;
|
||||
default:
|
||||
unreachable("Unsupported interpoation type");
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue