Lines Matching full:nir
27 #include "compiler/nir/nir_builder.h"
40 nir_shader *nir = nir_load_libclc_shader(64, disk_cache, in load_clc_shader() local
42 if (nir == NULL) in load_clc_shader()
46 p_atomic_cmpxchg(&compiler->clc_shader, NULL, nir); in load_clc_shader()
49 return nir; in load_clc_shader()
52 ralloc_free(nir); in load_clc_shader()
128 implement_intel_builtins(nir_shader *nir) in implement_intel_builtins() argument
132 nir_foreach_function(func, nir) { in implement_intel_builtins()
159 nir_shader_preserve_all_metadata(nir); in implement_intel_builtins()
165 lower_kernel_intrinsics(nir_shader *nir) in lower_kernel_intrinsics() argument
167 nir_function_impl *impl = nir_shader_get_entrypoint(nir); in lower_kernel_intrinsics()
173 nir->num_uniforms += kernel_arg_start; in lower_kernel_intrinsics()
189 nir_intrinsic_instr_create(nir, nir_intrinsic_load_uniform); in lower_kernel_intrinsics()
193 nir_intrinsic_set_range(load, nir->num_uniforms); in lower_kernel_intrinsics()
218 nir_intrinsic_instr_create(nir, nir_intrinsic_load_uniform); in lower_kernel_intrinsics()
304 nir_shader *nir = in brw_kernel_from_spirv() local
307 nir_validate_shader(nir, "after spirv_to_nir"); in brw_kernel_from_spirv()
308 nir_validate_ssa_dominance(nir, "after spirv_to_nir"); in brw_kernel_from_spirv()
309 ralloc_steal(mem_ctx, nir); in brw_kernel_from_spirv()
310 nir->info.name = ralloc_strdup(nir, entrypoint_name); in brw_kernel_from_spirv()
314 nir_foreach_function(function, nir) { in brw_kernel_from_spirv()
319 fprintf(stderr, "NIR (from SPIR-V) for kernel\n"); in brw_kernel_from_spirv()
320 nir_print_shader(nir, stderr); in brw_kernel_from_spirv()
323 NIR_PASS_V(nir, implement_intel_builtins); in brw_kernel_from_spirv()
324 NIR_PASS_V(nir, nir_lower_libclc, spirv_options.clc_shader); in brw_kernel_from_spirv()
330 NIR_PASS_V(nir, nir_lower_variable_initializers, nir_var_function_temp); in brw_kernel_from_spirv()
331 NIR_PASS_V(nir, nir_lower_returns); in brw_kernel_from_spirv()
332 NIR_PASS_V(nir, nir_inline_functions); in brw_kernel_from_spirv()
333 NIR_PASS_V(nir, nir_copy_prop); in brw_kernel_from_spirv()
334 NIR_PASS_V(nir, nir_opt_deref); in brw_kernel_from_spirv()
337 nir_remove_non_entrypoints(nir); in brw_kernel_from_spirv()
344 NIR_PASS_V(nir, nir_lower_variable_initializers, ~0); in brw_kernel_from_spirv()
351 NIR_PASS_V(nir, nir_lower_vec3_to_vec4, in brw_kernel_from_spirv()
359 NIR_PASS_V(nir, nir_lower_vars_to_explicit_types, in brw_kernel_from_spirv()
365 brw_preprocess_nir(compiler, nir, NULL); in brw_kernel_from_spirv()
368 nir_foreach_uniform_variable(var, nir) { in brw_kernel_from_spirv()
373 kernel->args_size = nir->num_uniforms; in brw_kernel_from_spirv()
381 nir_foreach_uniform_variable(var, nir) { in brw_kernel_from_spirv()
386 assert(arg_desc.offset + arg_desc.size <= nir->num_uniforms); in brw_kernel_from_spirv()
392 NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_all, NULL); in brw_kernel_from_spirv()
397 nir->global_mem_size = 0; in brw_kernel_from_spirv()
398 nir->scratch_size = 0; in brw_kernel_from_spirv()
399 nir->info.shared_size = 0; in brw_kernel_from_spirv()
400 NIR_PASS_V(nir, nir_lower_vars_to_explicit_types, in brw_kernel_from_spirv()
404 if (nir->constant_data_size > 0) { in brw_kernel_from_spirv()
405 assert(nir->constant_data == NULL); in brw_kernel_from_spirv()
406 nir->constant_data = rzalloc_size(nir, nir->constant_data_size); in brw_kernel_from_spirv()
407 nir_gather_explicit_io_initializers(nir, nir->constant_data, in brw_kernel_from_spirv()
408 nir->constant_data_size, in brw_kernel_from_spirv()
414 nir_foreach_function(function, nir) { in brw_kernel_from_spirv()
419 fprintf(stderr, "NIR (before I/O lowering) for kernel\n"); in brw_kernel_from_spirv()
420 nir_print_shader(nir, stderr); in brw_kernel_from_spirv()
423 NIR_PASS_V(nir, nir_lower_memcpy); in brw_kernel_from_spirv()
425 NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_mem_constant, in brw_kernel_from_spirv()
428 NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_uniform, in brw_kernel_from_spirv()
431 NIR_PASS_V(nir, nir_lower_explicit_io, in brw_kernel_from_spirv()
436 NIR_PASS_V(nir, nir_lower_frexp); in brw_kernel_from_spirv()
437 NIR_PASS_V(nir, nir_lower_convert_alu_types, NULL); in brw_kernel_from_spirv()
439 NIR_PASS_V(nir, brw_nir_lower_cs_intrinsics); in brw_kernel_from_spirv()
440 NIR_PASS_V(nir, lower_kernel_intrinsics); in brw_kernel_from_spirv()
445 kernel->prog_data.base.nr_params = DIV_ROUND_UP(nir->num_uniforms, 4); in brw_kernel_from_spirv()
448 .nir = nir, in brw_kernel_from_spirv()