radv: track whether gl_BaseInstance is used

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8788>
This commit is contained in:
Mike Blumenkrantz
2021-01-27 17:05:30 -05:00
committed by Marge Bot
parent 75a2476dfb
commit 1ffa615444
2 changed files with 7 additions and 1 deletions
+1
View File
@@ -270,6 +270,7 @@ struct radv_shader_info {
bool tcs_in_out_eq;
uint64_t tcs_temp_only_input_mask;
uint8_t num_linked_outputs;
bool needs_base_instance;
} vs;
struct {
uint8_t output_usage_mask[VARYING_SLOT_VAR31 + 1];
+6 -1
View File
@@ -158,6 +158,9 @@ gather_intrinsic_info(const nir_shader *nir, const nir_intrinsic_instr *instr,
case nir_intrinsic_load_draw_id:
info->vs.needs_draw_id = true;
break;
case nir_intrinsic_load_base_instance:
info->vs.needs_base_instance = true;
break;
case nir_intrinsic_load_instance_id:
info->vs.needs_instance_id = true;
break;
@@ -323,8 +326,10 @@ gather_info_input_decl_vs(const nir_shader *nir, const nir_variable *var,
for (unsigned i = 0; i < attrib_count; ++i) {
unsigned attrib_index = var->data.location + i - VERT_ATTRIB_GENERIC0;
if (key->vs.instance_rate_inputs & (1u << attrib_index))
if (key->vs.instance_rate_inputs & (1u << attrib_index)) {
info->vs.needs_instance_id = true;
info->vs.needs_base_instance = true;
}
}
}