[Mesa-dev] [PATCH 00/22] nir/spirv: support for CL kernel
Karol Herbst
kherbst at redhat.com
Tue Nov 13 15:48:04 UTC 2018
some of those patches are already reviewed, but not pushed. Just wanted to
post the patches to show the most current approach and to start discussion
on what we might want to handle differently.
There are some things I am not so happy about as well, like that bit_size
handling for system values or how the derefs for pointers are created.
But overall it feels we require less changes overall with my new approach
to support physical pointers inside nir and vtn.
Karol Herbst (18):
nir: add const_index parameters to system value builder function
nir: replace nir_load_system_value calls with appropiate builder
functions
nir/spirv: initial handling of OpenCL.std extension opcodes
nir/spirv: cast shift operand to u32
vtn: handle SpvExecutionModelKernel
glsl: add packed for struct types
glsl: add glsl_base_get_byte_size
glsl: add cl_size and cl_alignment
nir/spirv: parse memory model
nir: add legal bit_sizes to intrinsics
nir: add support for address bit sized system values
nir+vtn: vec8+vec16 support
nir: rename global to private memory
nir/spirv: handle SpvStorageClassCrossWorkgroup
nir/spirv: handle kernel function parameters
nir/spirv: physical pointer support
spirv/cl: support vload/vstore
nir/spirv: handle OpBitcasts for pointers
Rob Clark (4):
nir/spirv: add OpIsFinite and OpIsNormal
nir/vtn: add caps for some cl related capabilities
nir: simplify get_io_offset() parameters
nir: add type alignment support to lower_io
src/amd/vulkan/radv_meta_buffer.c | 8 +-
src/amd/vulkan/radv_meta_bufimage.c | 16 +-
src/amd/vulkan/radv_meta_clear.c | 8 +-
src/amd/vulkan/radv_meta_fast_clear.c | 4 +-
src/amd/vulkan/radv_meta_resolve_cs.c | 4 +-
src/amd/vulkan/radv_query.c | 8 +-
src/compiler/glsl/glsl_to_nir.cpp | 4 +-
src/compiler/glsl_types.cpp | 65 +++-
src/compiler/glsl_types.h | 56 ++-
src/compiler/nir/meson.build | 1 +
src/compiler/nir/nir.c | 8 +-
src/compiler/nir/nir.h | 37 +-
src/compiler/nir/nir_builder.h | 95 ++++-
src/compiler/nir/nir_builder_opcodes_h.py | 41 ++-
src/compiler/nir/nir_builtin_builder.c | 249 ++++++++++++-
src/compiler/nir/nir_builtin_builder.h | 150 +++++++-
src/compiler/nir/nir_clone.c | 2 +
src/compiler/nir/nir_constant_expressions.py | 33 +-
src/compiler/nir/nir_deref.c | 26 +-
src/compiler/nir/nir_instr_set.c | 2 +
src/compiler/nir/nir_intrinsics.py | 32 +-
src/compiler/nir/nir_intrinsics_c.py | 6 +-
src/compiler/nir/nir_linking_helpers.c | 2 +-
src/compiler/nir/nir_loop_analyze.c | 2 +-
src/compiler/nir/nir_lower_alu_to_scalar.c | 2 +
src/compiler/nir/nir_lower_clip.c | 3 +-
.../nir/nir_lower_constant_initializers.c | 2 +-
.../nir/nir_lower_global_vars_to_local.c | 4 +-
src/compiler/nir/nir_lower_indirect_derefs.c | 6 +-
src/compiler/nir/nir_lower_io.c | 141 +++++--
.../nir/nir_lower_io_arrays_to_elements.c | 4 +-
.../nir/nir_lower_io_to_temporaries.c | 2 +-
src/compiler/nir/nir_lower_locals_to_regs.c | 9 +-
src/compiler/nir/nir_lower_system_values.c | 40 +-
src/compiler/nir/nir_lower_var_copies.c | 3 +-
src/compiler/nir/nir_lower_vars_to_ssa.c | 12 +-
src/compiler/nir/nir_lower_wpos_center.c | 3 +-
src/compiler/nir/nir_opcodes.py | 39 +-
src/compiler/nir/nir_opt_copy_prop_vars.c | 4 +-
src/compiler/nir/nir_opt_copy_propagate.c | 2 +-
src/compiler/nir/nir_opt_dead_write_vars.c | 6 +-
src/compiler/nir/nir_print.c | 29 +-
src/compiler/nir/nir_propagate_invariant.c | 2 +
src/compiler/nir/nir_remove_dead_variables.c | 6 +-
src/compiler/nir/nir_search.c | 8 +-
src/compiler/nir/nir_serialize.c | 4 +
src/compiler/nir/nir_split_vars.c | 20 +-
src/compiler/nir/nir_validate.c | 17 +-
src/compiler/nir/tests/vars_tests.cpp | 2 +-
src/compiler/nir_types.cpp | 17 +-
src/compiler/nir_types.h | 37 +-
src/compiler/shader_info.h | 3 +
src/compiler/spirv/spirv_to_nir.c | 131 ++++++-
src/compiler/spirv/vtn_alu.c | 245 +++++++++----
src/compiler/spirv/vtn_cfg.c | 3 +-
src/compiler/spirv/vtn_glsl450.c | 2 +-
src/compiler/spirv/vtn_opencl.c | 343 ++++++++++++++++++
src/compiler/spirv/vtn_private.h | 19 +-
src/compiler/spirv/vtn_variables.c | 106 ++++--
src/gallium/auxiliary/nir/tgsi_to_nir.c | 4 +-
src/gallium/drivers/vc4/vc4_nir_lower_blend.c | 4 +-
src/intel/compiler/brw_nir.c | 2 +-
.../vulkan/anv_nir_lower_input_attachments.c | 3 +-
src/mesa/state_tracker/st_glsl_to_nir.cpp | 2 +-
src/nouveau/meson.build | 25 ++
65 files changed, 1836 insertions(+), 339 deletions(-)
create mode 100644 src/compiler/spirv/vtn_opencl.c
create mode 100644 src/nouveau/meson.build
--
2.19.1
More information about the mesa-dev
mailing list