ac/nir: move ac_shader_variant_info and friends to radv folder
[mesa.git] / src / amd / common / ac_shader_info.h
index 5f03e79a83dd4e5f33ab0ece790c4d0aea794936..12a1dcf915610dc8a7b1773f1f1982c0071f38d8 100644 (file)
 #ifndef AC_SHADER_INFO_H
 #define AC_SHADER_INFO_H
 
+#include "compiler/shader_enums.h"
+
 struct nir_shader;
 struct ac_nir_compiler_options;
 
 struct ac_shader_info {
-       bool needs_push_constants;
+       bool loads_push_constants;
        uint32_t desc_set_used_mask;
+       bool needs_multiview_view_index;
+       bool uses_invocation_id;
+       bool uses_prim_id;
        struct {
+               uint8_t input_usage_mask[VERT_ATTRIB_MAX];
+               uint8_t output_usage_mask[VARYING_SLOT_VAR31 + 1];
                bool has_vertex_buffers; /* needs vertex buffers and base/start */
                bool needs_draw_id;
+               bool needs_instance_id;
        } vs;
        struct {
+               uint8_t output_usage_mask[VARYING_SLOT_VAR31 + 1];
+       } tes;
+       struct {
+               bool force_persample;
                bool needs_sample_positions;
+               bool uses_input_attachments;
+               bool writes_memory;
+               bool writes_z;
+               bool writes_stencil;
+               bool writes_sample_mask;
+               bool has_pcoord;
+               bool prim_id_input;
+               bool layer_input;
        } ps;
        struct {
-               uint8_t grid_components_used;
+               bool uses_grid_size;
+               bool uses_block_id[3];
+               bool uses_thread_id[3];
+               bool uses_local_invocation_idx;
        } cs;
 };
 
@@ -46,7 +69,7 @@ struct ac_shader_info {
  * for the RADV user sgprs
  */
 void
-ac_nir_shader_info_pass(struct nir_shader *nir,
+ac_nir_shader_info_pass(const struct nir_shader *nir,
                        const struct ac_nir_compiler_options *options,
                        struct ac_shader_info *info);