• Home
  • Raw
  • Download

Lines Matching full:nir

31 #include "compiler/nir/nir_builder.h"
46 nir_shader *nir = nir_load_libclc_shader(64, disk_cache, in load_clc_shader() local
49 if (nir == NULL) in load_clc_shader()
53 p_atomic_cmpxchg(&compiler->clc_shader, NULL, nir); in load_clc_shader()
56 ralloc_steal(compiler, nir); in load_clc_shader()
57 return nir; in load_clc_shader()
60 ralloc_free(nir); in load_clc_shader()
126 implement_intel_builtins(nir_shader *nir) in implement_intel_builtins() argument
130 nir_foreach_function(func, nir) { in implement_intel_builtins()
157 nir_shader_preserve_all_metadata(nir); in implement_intel_builtins()
163 lower_kernel_intrinsics(nir_shader *nir) in lower_kernel_intrinsics() argument
165 nir_function_impl *impl = nir_shader_get_entrypoint(nir); in lower_kernel_intrinsics()
171 nir->num_uniforms += kernel_arg_start; in lower_kernel_intrinsics()
186 nir_intrinsic_instr_create(nir, nir_intrinsic_load_uniform); in lower_kernel_intrinsics()
190 nir_intrinsic_set_range(load, nir->num_uniforms); in lower_kernel_intrinsics()
215 nir_intrinsic_instr_create(nir, nir_intrinsic_load_uniform); in lower_kernel_intrinsics()
306 nir_shader *nir = in brw_kernel_from_spirv() local
309 nir_validate_shader(nir, "after spirv_to_nir"); in brw_kernel_from_spirv()
310 ralloc_steal(mem_ctx, nir); in brw_kernel_from_spirv()
311 nir->info.name = ralloc_strdup(nir, entrypoint_name); in brw_kernel_from_spirv()
315 nir_foreach_function_impl(impl, 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()
328 NIR_PASS_V(nir, nir_lower_printf, &printf_opts); in brw_kernel_from_spirv()
330 NIR_PASS_V(nir, implement_intel_builtins); in brw_kernel_from_spirv()
331 NIR_PASS_V(nir, nir_link_shader_functions, spirv_options.clc_shader); in brw_kernel_from_spirv()
337 NIR_PASS_V(nir, nir_lower_variable_initializers, nir_var_function_temp); in brw_kernel_from_spirv()
338 NIR_PASS_V(nir, nir_lower_returns); in brw_kernel_from_spirv()
339 NIR_PASS_V(nir, nir_inline_functions); in brw_kernel_from_spirv()
340 NIR_PASS_V(nir, nir_copy_prop); in brw_kernel_from_spirv()
341 NIR_PASS_V(nir, nir_opt_deref); in brw_kernel_from_spirv()
344 nir_remove_non_entrypoints(nir); in brw_kernel_from_spirv()
351 NIR_PASS_V(nir, nir_lower_variable_initializers, ~0); in brw_kernel_from_spirv()
358 NIR_PASS_V(nir, nir_lower_vec3_to_vec4, in brw_kernel_from_spirv()
366 NIR_PASS_V(nir, nir_lower_vars_to_explicit_types, in brw_kernel_from_spirv()
373 brw_preprocess_nir(compiler, nir, &opts); in brw_kernel_from_spirv()
376 nir_foreach_uniform_variable(var, nir) { in brw_kernel_from_spirv()
381 kernel->args_size = nir->num_uniforms; in brw_kernel_from_spirv()
389 nir_foreach_uniform_variable(var, nir) { in brw_kernel_from_spirv()
394 assert(arg_desc.offset + arg_desc.size <= nir->num_uniforms); in brw_kernel_from_spirv()
400 NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_all, NULL); in brw_kernel_from_spirv()
405 nir->global_mem_size = 0; in brw_kernel_from_spirv()
406 nir->scratch_size = 0; in brw_kernel_from_spirv()
407 nir->info.shared_size = 0; in brw_kernel_from_spirv()
408 NIR_PASS_V(nir, nir_lower_vars_to_explicit_types, in brw_kernel_from_spirv()
412 if (nir->constant_data_size > 0) { in brw_kernel_from_spirv()
413 assert(nir->constant_data == NULL); in brw_kernel_from_spirv()
414 nir->constant_data = rzalloc_size(nir, nir->constant_data_size); in brw_kernel_from_spirv()
415 nir_gather_explicit_io_initializers(nir, nir->constant_data, in brw_kernel_from_spirv()
416 nir->constant_data_size, in brw_kernel_from_spirv()
422 nir_foreach_function_impl(impl, nir) { in brw_kernel_from_spirv()
426 fprintf(stderr, "NIR (before I/O lowering) for kernel\n"); in brw_kernel_from_spirv()
427 nir_print_shader(nir, stderr); in brw_kernel_from_spirv()
430 NIR_PASS_V(nir, nir_lower_memcpy); in brw_kernel_from_spirv()
432 NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_mem_constant, in brw_kernel_from_spirv()
435 NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_uniform, in brw_kernel_from_spirv()
438 NIR_PASS_V(nir, nir_lower_explicit_io, in brw_kernel_from_spirv()
443 NIR_PASS_V(nir, nir_lower_convert_alu_types, NULL); in brw_kernel_from_spirv()
445 NIR_PASS_V(nir, brw_nir_lower_cs_intrinsics, devinfo, NULL); in brw_kernel_from_spirv()
446 NIR_PASS_V(nir, lower_kernel_intrinsics); in brw_kernel_from_spirv()
451 kernel->prog_data.base.nr_params = DIV_ROUND_UP(nir->num_uniforms, 4); in brw_kernel_from_spirv()
455 .nir = nir, in brw_kernel_from_spirv()