Hi, this is the second version for this series. The info for the original one can be read here:
https://lists.freedesktop.org/archives/mesa-dev/2018-April/192512.html Some of the patches are already reviewed (thanks to Timothy Arceri). The main differences between v1 and v2 are: * The NIR linker was moved from compiler/nir to compiler/glsl as agreed with Timothy Arceri during the review of v1. Due this change, several methods were also renamed. * The patch "i965: account for NIR uniforms without name" changed too, due some issues we found since v1. * The patch "nir/linker: add some cross stage uniform validation" was dropped, as we found that was incomplete/wrong, and we would need to re-think this kind of validations. So this series doesn't include any cross-stage uniform validation. That it is ok for this series, as it is about the core of the uniform support, but not the full feature yet. The tree for this series can be found on the following repository: * https://github.com/Igalia/mesa/tree/arb_gl_spirv-series2-uniforms-v1 And can be tested (although it would be needed to use MESA_EXTENSION_OVERRIDE) with the following piglit series: * https://github.com/Igalia/piglit/tree/arb_gl_spirv-series1-uniforms-v1 Alejandro Piñeiro (4): i965: use gl_shader_program_data::spirv mesa/main: add NULL name check when searching for a resource name compiler/link: add linker_util.h, move linker_error/warning to it compiler/link: move add_program_resource to linker_util Eduardo Lima Mitev (10): mesa/main: Add a 'spirv' flag to gl_shader_program_data nir/lower_samplers: Limit assert to GLSL shader programs nir/types: Add a glsl_get_component_slots() utility nir/types: Add a utility wrapper to glsl_type::sampler_index() anv/nir: Use nir_variable's type if interface_type is null nir/linker: Add gl_nir_link_uniforms() nir/linker: Add nir_build_program_resource_list() i965: Build SPIR-V programs' resource list using NIR i965: account for NIR uniforms without name i965: Link uniforms of SPIR-V programs using the NIR linker Neil Roberts (6): nir: Add explicit_binding to nir_variable spirv: Get rid of vtn_variable_mode_image/sampler spirv: Set nir_variable->explicit_binding nir/linker: Set the uniform initial values i965: Update TexturesUsed after linking the shaders i965: Setup glsl uniforms by index rather than name matching Nicolai Hähnle (1): spirv: translate default-block uniforms src/compiler/Makefile.sources | 6 + .../glsl/gl_nir_link_uniform_initializers.c | 292 +++++++++++++ src/compiler/glsl/gl_nir_link_uniforms.c | 461 +++++++++++++++++++++ src/compiler/glsl/gl_nir_linker.c | 93 +++++ src/compiler/glsl/gl_nir_linker.h | 47 +++ src/compiler/glsl/gl_nir_lower_samplers.c | 3 +- src/compiler/glsl/glsl_to_nir.cpp | 1 + .../glsl/link_uniform_block_active_visitor.cpp | 1 + src/compiler/glsl/linker.cpp | 76 +--- src/compiler/glsl/linker.h | 8 +- src/compiler/glsl/linker_util.cpp | 64 +++ src/compiler/glsl/linker_util.h | 48 +++ src/compiler/glsl/meson.build | 6 + src/compiler/glsl/program.h | 8 - src/compiler/nir/nir.h | 5 + src/compiler/nir_types.cpp | 13 + src/compiler/nir_types.h | 2 + src/compiler/spirv/spirv_to_nir.c | 4 +- src/compiler/spirv/vtn_cfg.c | 4 +- src/compiler/spirv/vtn_private.h | 4 +- src/compiler/spirv/vtn_variables.c | 56 +-- src/intel/vulkan/anv_nir_apply_pipeline_layout.c | 7 +- src/mesa/drivers/dri/i965/brw_link.cpp | 29 +- src/mesa/drivers/dri/i965/brw_nir_uniforms.cpp | 52 ++- src/mesa/drivers/dri/i965/brw_program.c | 2 +- src/mesa/main/mtypes.h | 6 + src/mesa/main/shader_query.cpp | 5 + src/mesa/program/ir_to_mesa.cpp | 1 + 28 files changed, 1167 insertions(+), 137 deletions(-) create mode 100644 src/compiler/glsl/gl_nir_link_uniform_initializers.c create mode 100644 src/compiler/glsl/gl_nir_link_uniforms.c create mode 100644 src/compiler/glsl/gl_nir_linker.c create mode 100644 src/compiler/glsl/gl_nir_linker.h create mode 100644 src/compiler/glsl/linker_util.cpp create mode 100644 src/compiler/glsl/linker_util.h -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev