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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev