1*61046927SAndroid Build Coastguard Worker /* 2*61046927SAndroid Build Coastguard Worker * Copyright (c) 2015-2023 Intel Corporation 3*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 4*61046927SAndroid Build Coastguard Worker */ 5*61046927SAndroid Build Coastguard Worker 6*61046927SAndroid Build Coastguard Worker #ifndef INTEL_NIR_H 7*61046927SAndroid Build Coastguard Worker #define INTEL_NIR_H 8*61046927SAndroid Build Coastguard Worker 9*61046927SAndroid Build Coastguard Worker #include "nir.h" 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 12*61046927SAndroid Build Coastguard Worker extern "C" { 13*61046927SAndroid Build Coastguard Worker #endif 14*61046927SAndroid Build Coastguard Worker 15*61046927SAndroid Build Coastguard Worker struct intel_device_info; 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard Worker void intel_nir_apply_tcs_quads_workaround(nir_shader *nir); 18*61046927SAndroid Build Coastguard Worker bool intel_nir_blockify_uniform_loads(nir_shader *shader, 19*61046927SAndroid Build Coastguard Worker const struct intel_device_info *devinfo); 20*61046927SAndroid Build Coastguard Worker bool intel_nir_clamp_image_1d_2d_array_sizes(nir_shader *shader); 21*61046927SAndroid Build Coastguard Worker bool intel_nir_clamp_per_vertex_loads(nir_shader *shader); 22*61046927SAndroid Build Coastguard Worker bool intel_nir_cleanup_resource_intel(nir_shader *shader); 23*61046927SAndroid Build Coastguard Worker 24*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_conversions(nir_shader *nir); 25*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_non_uniform_barycentric_at_sample(nir_shader *nir); 26*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_non_uniform_resource_intel(nir_shader *shader); 27*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_patch_vertices_in(nir_shader *shader, unsigned input_vertices); 28*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_shading_rate_output(nir_shader *nir); 29*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_sparse_intrinsics(nir_shader *nir); 30*61046927SAndroid Build Coastguard Worker 31*61046927SAndroid Build Coastguard Worker struct intel_nir_lower_texture_opts { 32*61046927SAndroid Build Coastguard Worker bool combined_lod_and_array_index; 33*61046927SAndroid Build Coastguard Worker bool combined_lod_or_bias_and_offset; 34*61046927SAndroid Build Coastguard Worker }; 35*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_texture(nir_shader *nir, 36*61046927SAndroid Build Coastguard Worker const struct intel_nir_lower_texture_opts *opts); 37*61046927SAndroid Build Coastguard Worker 38*61046927SAndroid Build Coastguard Worker bool intel_nir_opt_peephole_ffma(nir_shader *shader); 39*61046927SAndroid Build Coastguard Worker bool intel_nir_opt_peephole_imul32x16(nir_shader *shader); 40*61046927SAndroid Build Coastguard Worker 41*61046927SAndroid Build Coastguard Worker bool intel_nir_pulls_at_sample(nir_shader *shader); 42*61046927SAndroid Build Coastguard Worker 43*61046927SAndroid Build Coastguard Worker bool intel_nir_lower_printf(nir_shader *nir); 44*61046927SAndroid Build Coastguard Worker 45*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus 46*61046927SAndroid Build Coastguard Worker } 47*61046927SAndroid Build Coastguard Worker #endif 48*61046927SAndroid Build Coastguard Worker 49*61046927SAndroid Build Coastguard Worker #endif /* INTEL_NIR_H */ 50