Lines Matching defs:nir_shader

107 struct nir_shader;
2834 nir_variable *nir_get_binding_variable(struct nir_shader *shader, nir_binding binding);
3355 struct nir_shader *shader;
3798 typedef struct nir_shader {
3840 } nir_shader;
3846 nir_shader_get_entrypoint(nir_shader *shader)
3888 nir_shader *nir_shader_create(void *mem_ctx,
3897 /** Adds a variable to the appropriate list in nir_shader */
3898 void nir_shader_add_variable(nir_shader *shader, nir_variable *var);
3908 nir_variable *nir_variable_create(nir_shader *shader,
3917 nir_variable *nir_find_variable_with_location(nir_shader *shader,
3921 nir_variable *nir_find_variable_with_driver_location(nir_shader *shader,
3925 void nir_sort_variables_with_modes(nir_shader *shader,
3931 nir_function *nir_function_create(nir_shader *shader, const char *name);
3935 nir_function_impl *nir_function_impl_create_bare(nir_shader *shader);
3937 nir_block *nir_block_create(nir_shader *shader);
3938 nir_if *nir_if_create(nir_shader *shader);
3939 nir_loop *nir_loop_create(nir_shader *shader);
3948 void nir_shader_preserve_all_metadata(nir_shader *shader);
3951 nir_alu_instr *nir_alu_instr_create(nir_shader *shader, nir_op op);
3953 nir_deref_instr *nir_deref_instr_create(nir_shader *shader,
3956 nir_jump_instr *nir_jump_instr_create(nir_shader *shader, nir_jump_type type);
3958 nir_load_const_instr *nir_load_const_instr_create(nir_shader *shader,
3962 nir_intrinsic_instr *nir_intrinsic_instr_create(nir_shader *shader,
3965 nir_call_instr *nir_call_instr_create(nir_shader *shader,
3969 nir_tex_instr *nir_tex_instr_create(nir_shader *shader, unsigned num_srcs);
3971 nir_phi_instr *nir_phi_instr_create(nir_shader *shader);
3974 nir_parallel_copy_instr *nir_parallel_copy_instr_create(nir_shader *shader);
3976 nir_ssa_undef_instr *nir_ssa_undef_instr_create(nir_shader *shader,
4423 unsigned nir_shader_index_vars(nir_shader *shader, nir_variable_mode modes);
4426 void nir_print_shader(nir_shader *shader, FILE *fp);
4427 void nir_print_shader_annotated(nir_shader *shader, FILE *fp, struct hash_table *errors);
4430 void nir_log_shader_annotated_tagged(enum mesa_log_level level, const char *tag, nir_shader *shader, struct hash_table *annotations);
4436 char *nir_shader_as_str(nir_shader *nir, void *mem_ctx);
4437 char *nir_shader_as_str_annotated(nir_shader *nir, struct hash_table *annotations, void *mem_ctx);
4440 nir_instr *nir_instr_clone(nir_shader *s, const nir_instr *orig);
4443 nir_alu_instr *nir_alu_instr_clone(nir_shader *s, const nir_alu_instr *orig);
4445 nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
4446 nir_function_impl *nir_function_impl_clone(nir_shader *shader,
4449 nir_variable *nir_variable_clone(const nir_variable *c, nir_shader *shader);
4451 void nir_shader_replace(nir_shader *dest, nir_shader *src);
4453 void nir_shader_serialize_deserialize(nir_shader *s);
4456 void nir_validate_shader(nir_shader *shader, const char *when);
4457 void nir_validate_ssa_dominance(nir_shader *shader, const char *when);
4458 void nir_metadata_set_validation_flag(nir_shader *shader);
4459 void nir_metadata_check_validation_flag(nir_shader *shader);
4499 should_print_nir(nir_shader *shader)
4511 static inline void nir_validate_shader(nir_shader *shader, const char *when) { (void) shader; (void)when; }
4512 static inline void nir_validate_ssa_dominance(nir_shader *shader, const char *when) { (void) shader; (void)when; }
4513 static inline void nir_metadata_set_validation_flag(nir_shader *shader) { (void) shader; }
4514 static inline void nir_metadata_check_validation_flag(nir_shader *shader) { (void) shader; }
4518 static inline bool should_print_nir(nir_shader *shader) { return false; }
4528 nir_shader *clone = nir_shader_clone(ralloc_parent(nir), nir); \
4621 bool nir_shader_lower_instructions(nir_shader *shader,
4627 void nir_calc_dominance(nir_shader *shader);
4634 void nir_dump_dom_tree(nir_shader *shader, FILE *fp);
4637 void nir_dump_dom_frontier(nir_shader *shader, FILE *fp);
4640 void nir_dump_cfg(nir_shader *shader, FILE *fp);
4642 void nir_gs_count_vertices_and_primitives(const nir_shader *shader,
4647 bool nir_shrink_vec_array_vars(nir_shader *shader, nir_variable_mode modes);
4648 bool nir_split_array_vars(nir_shader *shader, nir_variable_mode modes);
4649 bool nir_split_var_copies(nir_shader *shader);
4650 bool nir_split_per_member_structs(nir_shader *shader);
4651 bool nir_split_struct_vars(nir_shader *shader, nir_variable_mode modes);
4654 bool nir_lower_returns(nir_shader *shader);
4660 bool nir_inline_functions(nir_shader *shader);
4662 void nir_find_inlinable_uniforms(nir_shader *shader);
4663 void nir_inline_uniforms(nir_shader *shader, unsigned num_uniforms,
4667 bool nir_propagate_invariant(nir_shader *shader, bool invariant_prim);
4669 void nir_lower_var_copy_instr(nir_intrinsic_instr *copy, nir_shader *shader);
4672 bool nir_lower_var_copies(nir_shader *shader);
4674 bool nir_opt_memcpy(nir_shader *shader);
4675 bool nir_lower_memcpy(nir_shader *shader);
4677 void nir_fixup_deref_modes(nir_shader *shader);
4679 bool nir_lower_global_vars_to_local(nir_shader *shader);
4688 bool nir_lower_array_deref_of_vec(nir_shader *shader, nir_variable_mode modes,
4691 bool nir_lower_indirect_derefs(nir_shader *shader, nir_variable_mode modes,
4694 bool nir_lower_indirect_builtin_uniform_derefs(nir_shader *shader);
4696 bool nir_lower_locals_to_regs(nir_shader *shader);
4698 void nir_lower_io_to_temporaries(nir_shader *shader,
4702 bool nir_lower_vars_to_scratch(nir_shader *shader,
4707 void nir_lower_clip_halfz(nir_shader *shader);
4709 void nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint);
4715 void nir_assign_var_locations(nir_shader *shader, nir_variable_mode mode,
4720 bool nir_remove_unused_varyings(nir_shader *producer, nir_shader *consumer);
4721 bool nir_remove_unused_io_vars(nir_shader *shader, nir_variable_mode mode,
4724 void nir_compact_varyings(nir_shader *producer, nir_shader *consumer,
4726 void nir_link_xfb_varyings(nir_shader *producer, nir_shader *consumer);
4727 bool nir_link_opt_varyings(nir_shader *producer, nir_shader *consumer);
4728 void nir_link_varying_precision(nir_shader *producer, nir_shader *consumer);
4730 bool nir_lower_amul(nir_shader *shader,
4733 bool nir_lower_ubo_vec4(nir_shader *shader);
4735 void nir_assign_io_var_locations(nir_shader *shader,
4746 nir_assign_linked_io_var_locations(nir_shader *producer,
4747 nir_shader *consumer);
4762 bool nir_lower_io(nir_shader *shader,
4767 bool nir_io_add_const_offset_to_base(nir_shader *nir, nir_variable_mode modes);
4770 nir_lower_vars_to_explicit_types(nir_shader *shader,
4774 nir_gather_explicit_io_initializers(nir_shader *shader,
4778 bool nir_lower_vec3_to_vec4(nir_shader *shader, nir_variable_mode modes);
4940 bool nir_lower_explicit_io(nir_shader *shader,
4945 nir_lower_shader_calls(nir_shader *shader,
4948 nir_shader ***resume_shaders_out,
4959 bool nir_lower_regs_to_ssa(nir_shader *shader);
4960 bool nir_lower_vars_to_ssa(nir_shader *shader);
4962 bool nir_remove_dead_derefs(nir_shader *shader);
4970 bool nir_remove_dead_variables(nir_shader *shader, nir_variable_mode modes,
4973 bool nir_lower_variable_initializers(nir_shader *shader,
4975 bool nir_zero_initialize_shared_memory(nir_shader *shader,
4979 bool nir_move_vec_src_uses_to_dest(nir_shader *shader);
4980 bool nir_lower_vec_to_movs(nir_shader *shader, nir_instr_writemask_filter_cb cb,
4982 void nir_lower_alpha_test(nir_shader *shader, enum compare_func func,
4985 bool nir_lower_alu(nir_shader *shader);
4987 bool nir_lower_flrp(nir_shader *shader, unsigned lowering_mask,
4990 bool nir_lower_alu_to_scalar(nir_shader *shader, nir_instr_filter_cb cb, const void *data);
4991 bool nir_lower_bool_to_bitsize(nir_shader *shader);
4992 bool nir_lower_bool_to_float(nir_shader *shader);
4993 bool nir_lower_bool_to_int32(nir_shader *shader);
4994 bool nir_opt_simplify_convert_alu_types(nir_shader *shader);
4995 bool nir_lower_convert_alu_types(nir_shader *shader,
4997 bool nir_lower_constant_convert_alu_types(nir_shader *shader);
4998 bool nir_lower_alu_conversion_to_intrinsic(nir_shader *shader);
4999 bool nir_lower_int_to_float(nir_shader *shader);
5000 bool nir_lower_load_const_to_scalar(nir_shader *shader);
5001 bool nir_lower_read_invocation_to_scalar(nir_shader *shader);
5002 bool nir_lower_phis_to_scalar(nir_shader *shader, bool lower_all);
5003 void nir_lower_io_arrays_to_elements(nir_shader *producer, nir_shader *consumer);
5004 void nir_lower_io_arrays_to_elements_no_indirects(nir_shader *shader,
5006 void nir_lower_io_to_scalar(nir_shader *shader, nir_variable_mode mask);
5007 bool nir_lower_io_to_scalar_early(nir_shader *shader, nir_variable_mode mask);
5008 bool nir_lower_io_to_vector(nir_shader *shader, nir_variable_mode mask);
5009 bool nir_vectorize_tess_levels(nir_shader *shader);
5011 bool nir_lower_fragcolor(nir_shader *shader, unsigned max_cbufs);
5012 bool nir_lower_fragcoord_wtrans(nir_shader *shader);
5013 void nir_lower_viewport_transform(nir_shader *shader);
5014 bool nir_lower_uniforms_to_ubo(nir_shader *shader, bool dword_packed, bool load_vec4);
5016 bool nir_lower_is_helper_invocation(nir_shader *shader);
5036 bool nir_lower_subgroups(nir_shader *shader,
5039 bool nir_lower_system_values(nir_shader *shader);
5048 bool nir_lower_compute_system_values(nir_shader *shader,
5058 nir_lower_sysvals_to_varyings(nir_shader *shader,
5250 bool nir_lower_tex(nir_shader *shader,
5260 bool nir_lower_image(nir_shader *nir,
5263 bool nir_lower_readonly_images_to_tex(nir_shader *shader, bool per_variable);
5281 bool nir_lower_non_uniform_access(nir_shader *shader,
5303 bool nir_lower_idiv(nir_shader *shader, const nir_lower_idiv_options *options);
5311 bool nir_lower_input_attachments(nir_shader *shader,
5314 bool nir_lower_clip_vs(nir_shader *shader, unsigned ucp_enables,
5318 bool nir_lower_clip_gs(nir_shader *shader, unsigned ucp_enables,
5321 bool nir_lower_clip_fs(nir_shader *shader, unsigned ucp_enables,
5323 bool nir_lower_clip_cull_distance_arrays(nir_shader *nir);
5324 bool nir_lower_clip_disable(nir_shader *shader, unsigned clip_plane_enable);
5326 void nir_lower_point_size_mov(nir_shader *shader,
5329 bool nir_lower_frexp(nir_shader *nir);
5331 void nir_lower_two_sided_color(nir_shader *shader, bool face_sysval);
5333 bool nir_lower_clamp_color_outputs(nir_shader *shader);
5335 bool nir_lower_flatshade(nir_shader *shader);
5337 void nir_lower_passthrough_edgeflags(nir_shader *shader);
5338 bool nir_lower_patch_vertices(nir_shader *nir, unsigned static_count,
5349 bool nir_lower_wpos_ytransform(nir_shader *shader,
5351 bool nir_lower_wpos_center(nir_shader *shader, const bool for_sample_shading);
5353 bool nir_lower_pntc_ytransform(nir_shader *shader,
5356 bool nir_lower_wrmasks(nir_shader *shader, nir_instr_filter_cb cb, const void *data);
5358 bool nir_lower_fb_read(nir_shader *shader);
5370 void nir_lower_drawpixels(nir_shader *shader,
5378 void nir_lower_bitmap(nir_shader *shader, const nir_lower_bitmap_options *options);
5380 bool nir_lower_atomics_to_ssbo(nir_shader *shader);
5391 bool nir_lower_to_source_mods(nir_shader *shader, nir_lower_to_source_mods_flags options);
5400 bool nir_lower_gs_intrinsics(nir_shader *shader, nir_lower_gs_intrinsics_flags options);
5404 bool nir_lower_bit_size(nir_shader *shader,
5407 bool nir_lower_64bit_phis(nir_shader *shader);
5410 bool nir_lower_int64(nir_shader *shader);
5413 bool nir_lower_doubles(nir_shader *shader, const nir_shader *softfp64,
5415 bool nir_lower_pack(nir_shader *shader);
5418 bool nir_lower_mediump_io(nir_shader *nir, nir_variable_mode modes,
5420 bool nir_force_mediump_io(nir_shader *nir, nir_variable_mode modes,
5422 bool nir_unpack_16bit_varying_slots(nir_shader *nir, nir_variable_mode modes);
5423 bool nir_fold_16bit_sampler_conversions(nir_shader *nir,
5432 bool nir_legalize_16bit_sampler_srcs(nir_shader *nir,
5435 bool nir_lower_point_size(nir_shader *shader, float min, float max);
5437 void nir_lower_texcoord_replace(nir_shader *s, unsigned coord_replace,
5448 bool nir_lower_interpolation(nir_shader *shader,
5451 bool nir_lower_discard_or_demote(nir_shader *shader,
5454 bool nir_lower_memory_model(nir_shader *shader);
5456 bool nir_lower_goto_ifs(nir_shader *shader);
5458 bool nir_shader_uses_view_index(nir_shader *shader);
5459 bool nir_can_lower_multiview(nir_shader *shader);
5460 bool nir_lower_multiview(nir_shader *shader, uint32_t view_mask);
5463 bool nir_lower_fp16_casts(nir_shader *shader);
5464 bool nir_normalize_cubemap_coords(nir_shader *shader);
5466 bool nir_shader_supports_implicit_lod(nir_shader *shader);
5478 bool nir_repair_ssa(nir_shader *shader);
5481 bool nir_convert_to_lcssa(nir_shader *shader, bool skip_invariants, bool skip_bool_invariants);
5482 void nir_divergence_analysis(nir_shader *shader);
5483 bool nir_update_instr_divergence(nir_shader *shader, nir_instr *instr);
5489 bool nir_convert_from_ssa(nir_shader *shader, bool phi_webs_only);
5495 bool nir_lower_samplers(nir_shader *shader);
5496 bool nir_lower_ssbo(nir_shader *shader);
5503 bool nir_lower_printf(nir_shader *nir, const nir_lower_printf_options *options);
5508 bool nir_opt_comparison_pre(nir_shader *shader);
5515 bool nir_opt_access(nir_shader *shader, const nir_opt_access_options *options);
5516 bool nir_opt_algebraic(nir_shader *shader);
5517 bool nir_opt_algebraic_before_ffma(nir_shader *shader);
5518 bool nir_opt_algebraic_late(nir_shader *shader);
5519 bool nir_opt_algebraic_distribute_src_mods(nir_shader *shader);
5520 bool nir_opt_constant_folding(nir_shader *shader);
5529 bool nir_opt_combine_memory_barriers(nir_shader *shader,
5533 bool nir_opt_combine_stores(nir_shader *shader, nir_variable_mode modes);
5536 bool nir_copy_prop(nir_shader *shader);
5538 bool nir_opt_copy_prop_vars(nir_shader *shader);
5540 bool nir_opt_cse(nir_shader *shader);
5542 bool nir_opt_dce(nir_shader *shader);
5544 bool nir_opt_dead_cf(nir_shader *shader);
5546 bool nir_opt_dead_write_vars(nir_shader *shader);
5549 bool nir_opt_deref(nir_shader *shader);
5551 bool nir_opt_find_array_copies(nir_shader *shader);
5553 bool nir_opt_fragdepth(nir_shader *shader);
5555 bool nir_opt_gcm(nir_shader *shader, bool value_number);
5557 bool nir_opt_idiv_const(nir_shader *shader, unsigned min_bit_size);
5559 bool nir_opt_if(nir_shader *shader, bool aggressive_last_continue);
5561 bool nir_opt_intrinsics(nir_shader *shader);
5563 bool nir_opt_large_constants(nir_shader *shader,
5567 bool nir_opt_loop_unroll(nir_shader *shader);
5580 bool nir_opt_sink(nir_shader *shader, nir_move_options options);
5582 bool nir_opt_move(nir_shader *shader, nir_move_options options);
5584 bool nir_opt_offsets(nir_shader *shader);
5586 bool nir_opt_peephole_select(nir_shader *shader, unsigned limit,
5589 bool nir_opt_rematerialize_compares(nir_shader *shader);
5591 bool nir_opt_remove_phis(nir_shader *shader);
5594 bool nir_opt_phi_precision(nir_shader *shader);
5596 bool nir_opt_shrink_vectors(nir_shader *shader, bool shrink_image_store);
5598 bool nir_opt_trivial_continues(nir_shader *shader);
5600 bool nir_opt_undef(nir_shader *shader);
5602 bool nir_lower_undef_to_zero(nir_shader *shader);
5604 bool nir_opt_uniform_atomics(nir_shader *shader);
5608 bool nir_opt_vectorize(nir_shader *shader, nir_opt_vectorize_cb filter,
5611 bool nir_opt_conditional_discard(nir_shader *shader);
5612 bool nir_opt_move_discards_to_top(nir_shader *shader);
5628 bool nir_opt_load_store_vectorize(nir_shader *shader, const nir_load_store_vectorize_options *options);
5630 void nir_sweep(nir_shader *shader);
5632 void nir_remap_dual_slot_attributes(nir_shader *shader,
5670 nir_unsigned_upper_bound(nir_shader *shader, struct hash_table *range_ht,
5675 nir_addition_might_overflow(nir_shader *shader, struct hash_table *range_ht,