| /xsrc/external/mit/MesaLib/dist/src/compiler/glsl/ |
| H A D | lower_buffer_access.h | 45 insert_buffer_access(void *mem_ctx, ir_dereference *deref, 49 void emit_access(void *mem_ctx, bool is_write, ir_dereference *deref, 55 bool is_dereferenced_thing_row_major(const ir_rvalue *deref); 57 void setup_buffer_access(void *mem_ctx, ir_rvalue *deref,
|
| H A D | lower_buffer_access.cpp | 52 * Takes a deref and recursively calls itself to break the deref down to the 58 ir_dereference *deref, 66 if (deref->type->is_struct()) { 69 for (unsigned i = 0; i < deref->type->length; i++) { 71 &deref->type->fields.structure[i]; 73 new(mem_ctx) ir_dereference_record(deref->clone(mem_ctx, NULL), 96 if (deref->type->is_array()) { 98 deref->type->fields.array->std430_array_stride(row_major) : 99 glsl_align(deref 56 emit_access(void * mem_ctx,bool is_write,ir_dereference * deref,ir_variable * base_offset,unsigned int deref_offset,bool row_major,const glsl_type * matrix_type,enum glsl_interface_packing packing,unsigned int write_mask) argument 182 is_dereferenced_thing_row_major(const ir_rvalue * deref) argument 273 setup_buffer_access(void * mem_ctx,ir_rvalue * deref,ir_rvalue ** offset,unsigned * const_offset,bool * row_major,const glsl_type ** matrix_type,const glsl_struct_field ** struct_field,enum glsl_interface_packing packing) argument [all...] |
| H A D | gl_nir_lower_buffers.c | 33 get_block_array_index(nir_builder *b, nir_deref_instr *deref, argument 45 while (deref->deref_type == nir_deref_type_array) { 46 nir_deref_instr *parent = nir_deref_instr_parent(deref); 50 if (nir_src_is_const(deref->arr.index)) { 51 unsigned arr_index = nir_src_as_uint(deref->arr.index); 53 /* We're walking the deref from the tail so prepend the array index */ 59 nir_ssa_def *arr_index = nir_ssa_for_src(b, deref->arr.index, 1); 67 /* We're walking the deref from the tail so prepend the array index */ 72 deref = parent; 75 assert(deref 192 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:lower_buffer_interface_derefs_impl 252 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl 278 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl [all...] |
| H A D | lower_vector_derefs.cpp | 62 ir_dereference_array *const deref = (ir_dereference_array *) ir->lhs; local in function:vector_deref_visitor::visit_enter 63 if (!deref->array->type->is_vector()) 71 ir_variable *var = deref->variable_referenced(); 76 ir_rvalue *const new_lhs = deref->array; 80 deref->array_index->constant_expression_value(mem_ctx); 83 deref->variable_referenced()->data.mode == ir_var_shader_out) { 101 factory.make_temp(deref->array_index->type, "index_tmp"); 102 factory.emit(assign(arr_index, deref->array_index)); 106 ir_constant::zero(factory.mem_ctx, deref->array_index->type); 135 deref 175 ir_dereference_array *const deref = (ir_dereference_array *) *rv; local in function:vector_deref_visitor::handle_rvalue [all...] |
| /xsrc/external/mit/MesaLib.old/dist/src/compiler/glsl/ |
| H A D | lower_buffer_access.h | 45 insert_buffer_access(void *mem_ctx, ir_dereference *deref, 49 void emit_access(void *mem_ctx, bool is_write, ir_dereference *deref, 55 bool is_dereferenced_thing_row_major(const ir_rvalue *deref); 57 void setup_buffer_access(void *mem_ctx, ir_rvalue *deref,
|
| H A D | lower_buffer_access.cpp | 52 * Takes a deref and recursively calls itself to break the deref down to the 58 ir_dereference *deref, 66 if (deref->type->is_struct()) { 69 for (unsigned i = 0; i < deref->type->length; i++) { 71 &deref->type->fields.structure[i]; 73 new(mem_ctx) ir_dereference_record(deref->clone(mem_ctx, NULL), 96 if (deref->type->is_array()) { 98 deref->type->fields.array->std430_array_stride(row_major) : 99 glsl_align(deref 56 emit_access(void * mem_ctx,bool is_write,ir_dereference * deref,ir_variable * base_offset,unsigned int deref_offset,bool row_major,const glsl_type * matrix_type,enum glsl_interface_packing packing,unsigned int write_mask) argument 182 is_dereferenced_thing_row_major(const ir_rvalue * deref) argument 273 setup_buffer_access(void * mem_ctx,ir_rvalue * deref,ir_rvalue ** offset,unsigned * const_offset,bool * row_major,const glsl_type ** matrix_type,const glsl_struct_field ** struct_field,enum glsl_interface_packing packing) argument [all...] |
| H A D | gl_nir_lower_buffers.c | 33 get_block_array_index(nir_builder *b, nir_deref_instr *deref, argument 44 while (deref->deref_type == nir_deref_type_array) { 45 nir_deref_instr *parent = nir_deref_instr_parent(deref); 49 if (nir_src_is_const(deref->arr.index)) { 50 unsigned arr_index = nir_src_as_uint(deref->arr.index); 53 /* We're walking the deref from the tail so prepend the array index */ 57 nir_ssa_def *arr_index = nir_ssa_for_src(b, deref->arr.index, 1); 65 /* We're walking the deref from the tail so prepend the array index */ 70 deref = parent; 73 assert(deref 150 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:lower_buffer_interface_derefs_impl 200 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl 225 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_buffer_interface_derefs_impl [all...] |
| H A D | lower_vector_derefs.cpp | 62 ir_dereference_array *const deref = (ir_dereference_array *) ir->lhs; local in function:vector_deref_visitor::visit_enter 63 if (!deref->array->type->is_vector()) 71 ir_variable *var = deref->variable_referenced(); 76 ir_rvalue *const new_lhs = deref->array; 80 deref->array_index->constant_expression_value(mem_ctx); 83 deref->variable_referenced()->data.mode == ir_var_shader_out) { 101 factory.make_temp(deref->array_index->type, "index_tmp"); 102 factory.emit(assign(arr_index, deref->array_index)); 106 ir_constant::zero(factory.mem_ctx, deref->array_index->type); 135 deref 159 ir_dereference_array *const deref = (ir_dereference_array *) *rv; local in function:vector_deref_visitor::handle_rvalue [all...] |
| H A D | gl_nir_lower_samplers.c | 45 nir_deref_instr *deref = nir_instr_as_deref(src->src.ssa->parent_instr); local in function:lower_tex_src_to_offset 46 while (deref->deref_type != nir_deref_type_var) { 47 assert(deref->parent.is_ssa); 49 nir_instr_as_deref(deref->parent.ssa->parent_instr); 51 assert(deref->deref_type == nir_deref_type_array); 53 if (nir_src_is_const(deref->arr.index) && index == NULL) { 55 base_index += nir_src_as_uint(deref->arr.index) * array_elements; 65 nir_ssa_for_src(b, deref->arr.index, 1))); 70 deref = parent; 77 assert(deref [all...] |
| H A D | lower_texture_projection.cpp | 67 ir_dereference *deref = new(mem_ctx) ir_dereference_variable(var); local in function:lower_texture_projection_visitor::visit_leave 72 ir_assignment *assign = new(mem_ctx) ir_assignment(deref, expr); 75 deref = new(mem_ctx) ir_dereference_variable(var); 79 deref); 82 deref = new(mem_ctx) ir_dereference_variable(var); 86 deref);
|
| H A D | gl_nir_lower_bindless_images.c | 28 * bindless_image_* intrinsic and adding a load_deref on the previous deref 46 nir_deref_instr *deref; local in function:lower_impl 63 deref = nir_src_as_deref(intrinsic->src[0]); 64 var = nir_deref_instr_get_variable(deref); 71 if (deref->mode == nir_var_uniform && !var->data.bindless) 75 nir_ssa_def *handle = nir_load_deref(b, deref);
|
| /xsrc/external/mit/MesaLib.old/dist/src/compiler/nir/ |
| H A D | nir_lower_constant_initializers.c | 28 build_constant_load(nir_builder *b, nir_deref_instr *deref, nir_constant *c) argument 30 if (glsl_type_is_vector_or_scalar(deref->type)) { 33 glsl_get_vector_elements(deref->type), 34 glsl_get_bit_size(deref->type)); 37 nir_store_deref(b, deref, &load->def, ~0); 38 } else if (glsl_type_is_matrix(deref->type)) { 39 unsigned cols = glsl_get_matrix_columns(deref->type); 40 unsigned rows = glsl_get_vector_elements(deref->type); 41 unsigned bit_size = glsl_get_bit_size(deref->type); 47 nir_store_deref(b, nir_build_deref_array_imm(b, deref, [all...] |
| H A D | nir_deref.h | 38 /** A null-terminated array view of a deref chain 48 nir_deref_instr *deref, void *mem_ctx); 51 unsigned nir_deref_instr_get_const_offset(nir_deref_instr *deref, 54 nir_ssa_def *nir_build_deref_offset(nir_builder *b, nir_deref_instr *deref,
|
| H A D | nir_remove_dead_variables.c | 31 deref_used_for_not_store(nir_deref_instr *deref) argument 33 nir_foreach_use(src, &deref->dest.ssa) { 43 /* The first source of copy and store intrinsics is the deref to 65 add_var_use_deref(nir_deref_instr *deref, struct set *live) argument 67 if (deref->deref_type != nir_deref_type_var) 73 assert(deref->mode == deref->var->data.mode); 74 if (!(deref->mode & (nir_var_function_temp | nir_var_shader_temp | nir_var_mem_shared)) || 75 deref_used_for_not_store(deref)) 76 _mesa_set_add(live, deref 105 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:remove_dead_var_writes [all...] |
| H A D | nir_lower_scratch.c | 38 deref_has_indirect(nir_deref_instr *deref) argument 40 while (deref->deref_type != nir_deref_type_var) { 41 if (deref->deref_type == nir_deref_type_array && 42 nir_src_as_const_value(deref->arr.index) == NULL) 45 deref = nir_deref_instr_parent(deref); 58 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_load_store 59 nir_variable *var = nir_deref_instr_get_variable(deref); 62 nir_iadd_imm(b, nir_build_deref_offset(b, deref, size_align), 66 size_align(deref 127 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:nir_lower_vars_to_scratch [all...] |
| H A D | nir_lower_locals_to_regs.c | 50 for (const nir_deref_instr *deref = void_deref; deref; local in function:hash_deref 51 deref = nir_deref_instr_parent(deref)) { 52 switch (deref->deref_type) { 54 return _mesa_fnv32_1a_accumulate(hash, deref->var); 60 hash = _mesa_fnv32_1a_accumulate(hash, deref->strct.index); 64 unreachable("Invalid deref type"); 92 unreachable("Invalid deref type"); 100 get_reg_for_deref(nir_deref_instr *deref, struc argument 130 get_deref_reg_src(nir_deref_instr * deref,struct locals_to_regs_state * state) argument 194 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block 220 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block [all...] |
| H A D | nir_deref.c | 31 nir_deref_instr *deref, void *mem_ctx) 33 assert(deref != NULL); 46 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) { 67 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) 85 * Recursively removes unused deref instructions 93 /* If anyone is using this deref, leave it alone */ 125 nir_deref_instr_ptr_as_array_stride(nir_deref_instr *deref) argument 127 switch (deref->deref_type) { 129 return glsl_get_explicit_stride(nir_deref_instr_parent(deref)->type); 131 return nir_deref_instr_ptr_as_array_stride(nir_deref_instr_parent(deref)); 30 nir_deref_path_init(nir_deref_path * path,nir_deref_instr * deref,void * mem_ctx) argument 166 nir_deref_instr_get_const_offset(nir_deref_instr * deref,glsl_type_size_align_func size_align) argument 195 nir_build_deref_offset(nir_builder * b,nir_deref_instr * deref,glsl_type_size_align_func size_align) argument 270 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_fixup_deref_modes 515 rematerialize_deref_in_block(nir_deref_instr * deref,struct rematerialize_deref_state * state) argument 581 nir_deref_instr *deref = nir_src_as_deref(*src); local in function:rematerialize_deref_src 765 opt_deref_ptr_as_array(nir_builder * b,nir_deref_instr * deref) argument 824 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_opt_deref_impl [all...] |
| /xsrc/external/mit/MesaLib/dist/src/compiler/nir/ |
| H A D | nir_remove_dead_variables.c | 31 deref_used_for_not_store(nir_deref_instr *deref) argument 33 nir_foreach_use(src, &deref->dest.ssa) { 43 /* The first source of copy and store intrinsics is the deref to 65 add_var_use_deref(nir_deref_instr *deref, struct set *live) argument 67 if (deref->deref_type != nir_deref_type_var) 73 if ((deref->var->data.mode & (nir_var_function_temp | 75 !deref_used_for_not_store(deref)) 82 if ((deref->var->data.mode & nir_var_mem_shared) && 83 !glsl_type_is_interface(deref->var->type) && 84 !deref_used_for_not_store(deref)) 121 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:remove_dead_var_writes [all...] |
| H A D | nir_lower_locals_to_regs.c | 50 for (const nir_deref_instr *deref = void_deref; deref; local in function:hash_deref 51 deref = nir_deref_instr_parent(deref)) { 52 switch (deref->deref_type) { 54 return XXH32(&deref->var, sizeof(deref->var), hash); 60 hash = XXH32(&deref->strct.index, sizeof(deref->strct.index), hash); 64 unreachable("Invalid deref typ 100 get_reg_for_deref(nir_deref_instr * deref,struct locals_to_regs_state * state) argument 131 get_deref_reg_src(nir_deref_instr * deref,struct locals_to_regs_state * state) argument 195 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block 221 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_locals_to_regs_block [all...] |
| H A D | nir_deref.h | 38 /** A null-terminated array view of a deref chain 53 nir_deref_instr *deref, void *mem_ctx); 56 unsigned nir_deref_instr_get_const_offset(nir_deref_instr *deref, 59 nir_ssa_def *nir_build_deref_offset(nir_builder *b, nir_deref_instr *deref, 62 nir_deref_path *nir_get_deref_path(void *mem_ctx, nir_deref_and_path *deref);
|
| H A D | nir_lower_samplers.c | 40 nir_deref_instr *deref = nir_instr_as_deref(src->src.ssa->parent_instr); local in function:lower_tex_src_to_offset 41 while (deref->deref_type != nir_deref_type_var) { 42 assert(deref->parent.is_ssa); 44 nir_instr_as_deref(deref->parent.ssa->parent_instr); 46 assert(deref->deref_type == nir_deref_type_array); 48 if (nir_src_is_const(deref->arr.index) && index == NULL) { 50 unsigned index_in_array = nir_src_as_uint(deref->arr.index); 80 nir_ssa_for_src(b, deref->arr.index, 1))); 85 deref = parent; 92 assert(deref [all...] |
| H A D | nir_lower_clip_disable.c | 41 recursive_if_chain(nir_builder *b, nir_deref_instr *deref, nir_ssa_def *value, unsigned clip_plane_enable, nir_ssa_def *index, unsigned start, unsigned end) argument 46 nir_store_deref(b, deref, value, 1 << start); 48 nir_store_deref(b, deref, nir_imm_int(b, 0), 1 << start); 54 recursive_if_chain(b, deref, value, clip_plane_enable, index, start, mid); 56 recursive_if_chain(b, deref, value, clip_plane_enable, index, mid, end); 72 nir_deref_instr *deref = nir_src_as_deref(instr->src[0]); local in function:lower_clip_plane_store 74 out = nir_deref_instr_get_variable(deref); 81 if (deref->deref_type == nir_deref_type_var) { 96 nir_store_deref(b, deref, nir_vec(b, components, instr->num_components), wrmask); 97 } else if (nir_src_is_const(deref [all...] |
| H A D | nir_deref.c | 44 nir_deref_instr *deref, void *mem_ctx) 46 assert(deref != NULL); 59 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) { 82 for (nir_deref_instr *d = deref; d; d = nir_deref_instr_parent(d)) { 103 * Recursively removes unused deref instructions 111 /* If anyone is using this deref, leave it alone */ 157 nir_deref_instr_has_complex_use(nir_deref_instr *deref) argument 159 nir_foreach_use(use_src, &deref->dest.ssa) { 166 /* A var deref has no sources */ 169 /* If a deref show 43 nir_deref_path_init(nir_deref_path * path,nir_deref_instr * deref,void * mem_ctx) argument 243 nir_deref_instr_array_stride(nir_deref_instr * deref) argument 294 nir_deref_instr_get_const_offset(nir_deref_instr * deref,glsl_type_size_align_func size_align) argument 328 nir_build_deref_offset(nir_builder * b,nir_deref_instr * deref,glsl_type_size_align_func size_align) argument 410 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_fixup_deref_modes 656 nir_get_deref_path(void * mem_ctx,nir_deref_and_path * deref) argument 684 rematerialize_deref_in_block(nir_deref_instr * deref,struct rematerialize_deref_state * state) argument 754 nir_deref_instr *deref = nir_src_as_deref(*src); local in function:rematerialize_deref_src 979 opt_restrict_deref_modes(nir_deref_instr * deref) argument 1121 opt_deref_ptr_as_array(nir_builder * b,nir_deref_instr * deref) argument 1230 nir_deref_instr *deref = nir_src_as_deref(load->src[0]); local in function:opt_load_vec_deref 1271 nir_deref_instr *deref = nir_src_as_deref(store->src[0]); local in function:opt_store_vec_deref 1314 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:opt_known_deref_mode_is 1348 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_opt_deref_impl [all...] |
| H A D | nir_lower_vec3_to_vec4.c | 49 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:lower_vec3_to_vec4_impl 50 if (!nir_deref_mode_is_in_set(deref, modes)) 54 glsl_type_replace_vec3_with_vec4(deref->type); 55 if (deref->type != vec4_type) { 56 deref->type = vec4_type; 69 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_vec3_to_vec4_impl 70 if (!nir_deref_mode_is_in_set(deref, modes)) 90 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:lower_vec3_to_vec4_impl 91 if (!nir_deref_mode_is_in_set(deref, modes))
|
| H A D | nir_opt_large_constants.c | 68 build_constant_load(nir_builder *b, nir_deref_instr *deref, argument 71 nir_variable *var = nir_deref_instr_get_variable(deref); 73 const unsigned bit_size = glsl_get_bit_size(deref->type); 74 const unsigned num_components = glsl_get_vector_elements(deref->type); 81 size_align(deref->type, &deref_size, &deref_align); 83 nir_ssa_def *src = nir_build_deref_offset(b, deref, size_align); 93 assert(glsl_type_is_boolean(deref->type)); 105 nir_deref_instr *deref, nir_const_value *val, 109 assert(!nir_deref_instr_has_indirect(deref)); 110 const unsigned bit_size = glsl_get_bit_size(deref 104 handle_constant_store(void * mem_ctx,struct var_info * info,nir_deref_instr * deref,nir_const_value * val,unsigned writemask,glsl_type_size_align_func size_align) argument 206 nir_deref_instr *deref = nir_instr_as_deref(instr); local in function:nir_opt_large_constants 353 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:nir_opt_large_constants 374 nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]); local in function:nir_opt_large_constants [all...] |