Lines Matching full:shader
38 nir_shader *shader = rzalloc(mem_ctx, nir_shader);
40 exec_list_make_empty(&shader->uniforms);
41 exec_list_make_empty(&shader->inputs);
42 exec_list_make_empty(&shader->outputs);
43 exec_list_make_empty(&shader->shared);
45 shader->options = options;
47 shader->info = si ? si : rzalloc(shader, shader_info);
49 exec_list_make_empty(&shader->functions);
50 exec_list_make_empty(&shader->registers);
51 exec_list_make_empty(&shader->globals);
52 exec_list_make_empty(&shader->system_values);
53 shader->reg_alloc = 0;
55 shader->num_inputs = 0;
56 shader->num_outputs = 0;
57 shader->num_uniforms = 0;
58 shader->num_shared = 0;
60 shader->stage = stage;
62 return shader;
86 nir_global_reg_create(nir_shader *shader)
88 nir_register *reg = reg_create(shader, &shader->registers);
89 reg->index = shader->reg_alloc++;
112 nir_shader_add_variable(nir_shader *shader, nir_variable *var)
128 exec_list_push_tail(&shader->globals, &var->node);
132 exec_list_push_tail(&shader->inputs, &var->node);
136 exec_list_push_tail(&shader->outputs, &var->node);
141 exec_list_push_tail(&shader->uniforms, &var->node);
145 assert(shader->stage == MESA_SHADER_COMPUTE);
146 exec_list_push_tail(&shader->shared, &var->node);
150 exec_list_push_tail(&shader->system_values, &var->node);
156 nir_variable_create(nir_shader *shader, nir_variable_mode mode,
159 nir_variable *var = rzalloc(shader, nir_variable);
164 if ((mode == nir_var_shader_in && shader->stage != MESA_SHADER_VERTEX) ||
165 (mode == nir_var_shader_out && shader->stage != MESA_SHADER_FRAGMENT))
171 nir_shader_add_variable(shader, var);
180 nir_variable *var = rzalloc(impl->function->shader, nir_variable);
191 nir_function_create(nir_shader *shader, const char *name)
193 nir_function *func = ralloc(shader, nir_function);
195 exec_list_push_tail(&shader->functions, &func->node);
198 func->shader = shader;
271 nir_function_impl_create_bare(nir_shader *shader)
273 nir_function_impl *impl = ralloc(shader, nir_function_impl);
290 nir_block *start_block = nir_block_create(shader);
291 nir_block *end_block = nir_block_create(shader);
308 nir_function_impl *impl = nir_function_impl_create_bare(function->shader);
314 impl->params = ralloc_array(function->shader,
318 impl->params[i] = rzalloc(function->shader, nir_variable);
325 impl->return_var = rzalloc(function->shader, nir_variable);
337 nir_block_create(nir_shader *shader)
339 nir_block *block = rzalloc(shader, nir_block);
348 * way it doesn't get allocated for shader ref's that never run
373 nir_if_create(nir_shader *shader)
375 nir_if *if_stmt = ralloc(shader, nir_if);
380 nir_block *then = nir_block_create(shader);
385 nir_block *else_stmt = nir_block_create(shader);
394 nir_loop_create(nir_shader *shader)
396 nir_loop *loop = rzalloc(shader, nir_loop);
400 nir_block *body = nir_block_create(shader);
448 nir_alu_instr_create(nir_shader *shader, nir_op op)
453 rzalloc_size(shader,
466 nir_jump_instr_create(nir_shader *shader, nir_jump_type type)
468 nir_jump_instr *instr = ralloc(shader, nir_jump_instr);
475 nir_load_const_instr_create(nir_shader *shader, unsigned num_components,
478 nir_load_const_instr *instr = ralloc(shader, nir_load_const_instr);
487 nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op)
492 rzalloc_size(shader,
508 nir_call_instr_create(nir_shader *shader, nir_function *callee)
510 nir_call_instr *instr = ralloc(shader, nir_call_instr);
522 nir_tex_instr_create(nir_shader *shader, unsigned num_srcs)
524 nir_tex_instr *instr = rzalloc(shader, nir_tex_instr);
560 nir_phi_instr_create(nir_shader *shader)
562 nir_phi_instr *instr = ralloc(shader, nir_phi_instr);
571 nir_parallel_copy_instr_create(nir_shader *shader)
573 nir_parallel_copy_instr *instr = ralloc(shader, nir_parallel_copy_instr);
582 nir_ssa_undef_instr_create(nir_shader *shader,
586 nir_ssa_undef_instr *instr = ralloc(shader, nir_ssa_undef_instr);
806 nir_deref_get_const_initializer_load(nir_shader *shader, nir_deref_var *deref)
841 nir_load_const_instr_create(shader, glsl_get_vector_elements(tail->type),
1080 nir_index_global_regs(nir_shader *shader)
1083 foreach_list_typed(nir_register, reg, node, &shader->registers) {
1086 shader->reg_alloc = index;