X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fintel%2Fcompiler%2Fbrw_nir.h;h=c2dd970647dcabd59244bb0fe715d685cb3ec234;hb=2663759af0e;hp=d5f36c236b39deb66652133cf69bd8892093a72c;hpb=3e377c68f879be05059c3c8871ffc4ea752523f2;p=mesa.git diff --git a/src/intel/compiler/brw_nir.h b/src/intel/compiler/brw_nir.h index d5f36c236b3..c2dd970647d 100644 --- a/src/intel/compiler/brw_nir.h +++ b/src/intel/compiler/brw_nir.h @@ -32,14 +32,13 @@ extern "C" { #endif -int type_size_scalar(const struct glsl_type *type, bool bindless); int type_size_vec4(const struct glsl_type *type, bool bindless); int type_size_dvec4(const struct glsl_type *type, bool bindless); static inline int type_size_scalar_bytes(const struct glsl_type *type, bool bindless) { - return type_size_scalar(type, bindless) * 4; + return glsl_count_dword_slots(type, bindless) * 4; } static inline int @@ -92,16 +91,19 @@ enum { void brw_nir_analyze_boolean_resolves(nir_shader *nir); -nir_shader *brw_preprocess_nir(const struct brw_compiler *compiler, - nir_shader *nir, - const nir_shader *softfp64); +void brw_preprocess_nir(const struct brw_compiler *compiler, + nir_shader *nir, + const nir_shader *softfp64); void brw_nir_link_shaders(const struct brw_compiler *compiler, - nir_shader **producer, nir_shader **consumer); + nir_shader *producer, nir_shader *consumer); -bool brw_nir_lower_cs_intrinsics(nir_shader *nir, - unsigned dispatch_width); +bool brw_nir_lower_cs_intrinsics(nir_shader *nir); +void brw_nir_lower_alpha_to_coverage(nir_shader *shader); +void brw_nir_lower_legacy_clipping(nir_shader *nir, + int nr_userclip_plane_consts, + struct brw_stage_prog_data *prog_data); void brw_nir_lower_vs_inputs(nir_shader *nir, const uint8_t *vs_attrib_wa_flags); void brw_nir_lower_vue_inputs(nir_shader *nir, @@ -118,15 +120,21 @@ void brw_nir_lower_fs_outputs(nir_shader *nir); bool brw_nir_lower_conversions(nir_shader *nir); bool brw_nir_lower_image_load_store(nir_shader *nir, - const struct gen_device_info *devinfo); + const struct gen_device_info *devinfo, + bool *uses_atomic_load_store); void brw_nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin, nir_ssa_def *index); +void brw_nir_rewrite_bindless_image_intrinsic(nir_intrinsic_instr *intrin, + nir_ssa_def *handle); -bool brw_nir_lower_mem_access_bit_sizes(nir_shader *shader); +bool brw_nir_lower_mem_access_bit_sizes(nir_shader *shader, + const struct gen_device_info *devinfo); -nir_shader *brw_postprocess_nir(nir_shader *nir, - const struct brw_compiler *compiler, - bool is_scalar); +void brw_postprocess_nir(nir_shader *nir, + const struct brw_compiler *compiler, + bool is_scalar); + +bool brw_nir_clamp_image_1d_2d_array_sizes(nir_shader *shader); bool brw_nir_apply_attribute_workarounds(nir_shader *nir, const uint8_t *attrib_wa_flags); @@ -135,11 +143,14 @@ bool brw_nir_apply_trig_workarounds(nir_shader *nir); void brw_nir_apply_tcs_quads_workaround(nir_shader *nir); -nir_shader *brw_nir_apply_sampler_key(nir_shader *nir, - const struct brw_compiler *compiler, - const struct brw_sampler_prog_key_data *key, - bool is_scalar); +void brw_nir_apply_key(nir_shader *nir, + const struct brw_compiler *compiler, + const struct brw_base_prog_key *key, + unsigned max_subgroup_size, + bool is_scalar); +enum brw_conditional_mod brw_cmod_for_nir_comparison(nir_op op); +uint32_t brw_aop_for_nir_intrinsic(const nir_intrinsic_instr *atomic); enum brw_reg_type brw_type_for_nir_type(const struct gen_device_info *devinfo, nir_alu_type type); @@ -164,10 +175,10 @@ void brw_nir_analyze_ubo_ranges(const struct brw_compiler *compiler, bool brw_nir_opt_peephole_ffma(nir_shader *shader); -nir_shader *brw_nir_optimize(nir_shader *nir, - const struct brw_compiler *compiler, - bool is_scalar, - bool allow_copies); +void brw_nir_optimize(nir_shader *nir, + const struct brw_compiler *compiler, + bool is_scalar, + bool allow_copies); nir_shader *brw_nir_create_passthrough_tcs(void *mem_ctx, const struct brw_compiler *compiler,