X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fglsl%2Fnir%2Fnir.h;h=1215e58dfb8d285ff40746cc61f16b64ad22bd2b;hb=1469ccb7464836c752fa2664c36d8fae7e80606c;hp=9b278d6a7679850dd92be0bed101d49024174eb7;hpb=e8f51fe4deb5082fece5f8cb167b89b0f03eb244;p=mesa.git diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h index 9b278d6a767..1215e58dfb8 100644 --- a/src/glsl/nir/nir.h +++ b/src/glsl/nir/nir.h @@ -399,10 +399,10 @@ typedef struct { */ bool is_packed; - /** set of nir_instr's where this register is used (read from) */ + /** set of nir_src's where this register is used (read from) */ struct list_head uses; - /** set of nir_instr's where this register is defined (written to) */ + /** set of nir_dest's where this register is defined (written to) */ struct list_head defs; /** set of nir_if's where this register is used as a condition */ @@ -798,7 +798,7 @@ NIR_DEFINE_CAST(nir_deref_as_var, nir_deref, nir_deref_var, deref) NIR_DEFINE_CAST(nir_deref_as_array, nir_deref, nir_deref_array, deref) NIR_DEFINE_CAST(nir_deref_as_struct, nir_deref, nir_deref_struct, deref) -/** Returns the tail of a deref chain */ +/* Returns the last deref in the chain. */ static inline nir_deref * nir_deref_tail(nir_deref *deref) { @@ -1332,7 +1332,7 @@ typedef enum { nir_metadata_none = 0x0, nir_metadata_block_index = 0x1, nir_metadata_dominance = 0x2, - nir_metadata_live_variables = 0x4, + nir_metadata_live_ssa_defs = 0x4, } nir_metadata; typedef struct { @@ -1504,6 +1504,11 @@ typedef struct nir_shader_info { /* Which system values are actually read */ uint64_t system_values_read; + /* Which patch inputs are actually read */ + uint32_t patch_inputs_read; + /* Which patch outputs are actually written */ + uint32_t patch_outputs_written; + /* Whether or not this shader ever uses textureGather() */ bool uses_texture_gather; @@ -1644,9 +1649,9 @@ nir_function_overload *nir_function_overload_create(nir_function *func); nir_function_impl *nir_function_impl_create(nir_function_overload *func); -nir_block *nir_block_create(void *mem_ctx); -nir_if *nir_if_create(void *mem_ctx); -nir_loop *nir_loop_create(void *mem_ctx); +nir_block *nir_block_create(nir_shader *shader); +nir_if *nir_if_create(nir_shader *shader); +nir_loop *nir_loop_create(nir_shader *shader); nir_function_impl *nir_cf_node_get_function(nir_cf_node *node); @@ -1957,6 +1962,9 @@ void nir_assign_var_locations(struct exec_list *var_list, void nir_lower_io(nir_shader *shader, nir_variable_mode mode, int (*type_size)(const struct glsl_type *)); +nir_src *nir_get_io_indirect_src(nir_intrinsic_instr *instr); +nir_src *nir_get_io_vertex_index_src(nir_intrinsic_instr *instr); + void nir_lower_vars_to_ssa(nir_shader *shader); bool nir_remove_dead_variables(nir_shader *shader); @@ -2024,7 +2032,7 @@ bool nir_lower_gs_intrinsics(nir_shader *shader); bool nir_normalize_cubemap_coords(nir_shader *shader); -void nir_live_variables_impl(nir_function_impl *impl); +void nir_live_ssa_defs_impl(nir_function_impl *impl); bool nir_ssa_defs_interfere(nir_ssa_def *a, nir_ssa_def *b); void nir_convert_to_ssa_impl(nir_function_impl *impl); @@ -2042,12 +2050,10 @@ bool nir_opt_constant_folding(nir_shader *shader); bool nir_opt_global_to_local(nir_shader *shader); -bool nir_copy_prop_impl(nir_function_impl *impl); bool nir_copy_prop(nir_shader *shader); bool nir_opt_cse(nir_shader *shader); -bool nir_opt_dce_impl(nir_function_impl *impl); bool nir_opt_dce(nir_shader *shader); bool nir_opt_dead_cf(nir_shader *shader); @@ -2055,7 +2061,6 @@ bool nir_opt_dead_cf(nir_shader *shader); void nir_opt_gcm(nir_shader *shader); bool nir_opt_peephole_select(nir_shader *shader); -bool nir_opt_peephole_ffma(nir_shader *shader); bool nir_opt_remove_phis(nir_shader *shader);