ac/nir: fix translation of nir_op_frsq for doubles
[mesa.git] / src / amd / common / ac_shader_info.c
index 5dac1131bd0783b6de86595374c8f083be746b34..443980c7d1245d06ea1c125e8c9ba1aa45520493 100644 (file)
@@ -73,6 +73,12 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, struct ac_shader_info *info)
        case nir_intrinsic_load_invocation_id:
                info->uses_invocation_id = true;
                break;
+       case nir_intrinsic_load_primitive_id:
+               info->uses_prim_id = true;
+               break;
+       case nir_intrinsic_load_push_constant:
+               info->loads_push_constants = true;
+               break;
        case nir_intrinsic_vulkan_resource_index:
                info->desc_set_used_mask |= (1 << nir_intrinsic_desc_set(instr));
                break;
@@ -151,11 +157,8 @@ ac_nir_shader_info_pass(struct nir_shader *nir,
 {
        struct nir_function *func = (struct nir_function *)exec_list_get_head(&nir->functions);
 
-       info->needs_push_constants = false;
-       if ((options->layout->push_constant_size &&
-            options->layout->push_constant_stages & (1 << nir->info.stage)) ||
-           options->layout->dynamic_offset_count)
-               info->needs_push_constants = true;
+       if (options->layout->dynamic_offset_count)
+               info->loads_push_constants = true;
 
        nir_foreach_variable(variable, &nir->inputs)
                gather_info_input_decl(nir, options, variable, info);