This is the third version of the ubo/ssbo support for ARB_gl_spirv. It is mostly a v2 resend, rebased against master, and small tweaks to fix minor rebase conflicts.
Just to remember: * AOA of ubo/ssbo not included. Will be supported on a future series. * This series include two patches at the end, not really related with ubo/ssbo support. Just included on this series to get all the ARB_gl_spirv CTS tests passing. Patches can be found here: https://github.com/Igalia/mesa/tree/arb_gl_spirv-series6-ubo-ssbo-v3 And can be tested with: https://github.com/Igalia/piglit/tree/arb_gl_spirv-series5-ubo-ssbo-v3 Thanks in advance. Alejandro Piñeiro (23): spirv/nir: translate uniform blocks spirv/nir: translate ssbo spirv/nir: setting interface type for ubos/ssbos spirv/nir: fill up nir variable info for ubos and ssbo spirv/nir: include SPIR-V explicit offset on the glsl struct type spirv/nir: include row major coming from SPIR-V on the glsl type spirv/nir: don't set interface_type if it is not a struct nir/types: add three new wrapper helpers glsl_types/nir: add matrix_stride plus nir wrapper helpers spirv/nir: fill glsl_struct_field explicit_matrix_stride glsl_types/nir: add explicit_array_stride plus nir wrapper helpers spirv/nir: fill glsl_type array stride nir: add is_in_ubo/ssbo/block helpers nir/linker: add gl_nir_link_uniform_blocks.c nir/linker: fill is_shader_storage for uniforms nir/linker: use only the array element type for array of ssbo/ubo nir/linker: fill up uniform_storage with explicit data nir/linker: update already processed uniforms search for UBOs/SSBOs nir/linker: add program ubo/ssbo at the resource list i965: use GLboolean for all brw_link_shader returns i965: call to gl_nir_link_uniform_blocks mesa: add NULL name check for NUM_ACTIVE_VARIABLES query mesa: add NULL name check for several length queries Antia Puentes (2): nir/linker: Set the uniform's block_index nir/linker: Add inputs/outputs to the program resource list Neil Roberts (3): spirv/nir: Handle location decorations on block interface members nir/linker/i965: Lower vulkan_resource_index during linking nir/linker: handle non-ubo uses of vulkan_resource_index src/compiler/Makefile.sources | 2 + src/compiler/glsl/gl_nir.h | 4 + src/compiler/glsl/gl_nir_link_uniform_blocks.c | 713 +++++++++++++++++++++ src/compiler/glsl/gl_nir_link_uniforms.c | 178 ++++- src/compiler/glsl/gl_nir_linker.c | 93 +++ src/compiler/glsl/gl_nir_linker.h | 3 + src/compiler/glsl/gl_nir_lower_samplers_as_deref.c | 2 +- .../glsl/gl_nir_lower_vulkan_resource_index.c | 163 +++++ src/compiler/glsl/meson.build | 2 + src/compiler/glsl_types.cpp | 31 +- src/compiler/glsl_types.h | 23 +- src/compiler/nir/nir.h | 22 + src/compiler/nir/nir_lower_io_arrays_to_elements.c | 3 +- src/compiler/nir/nir_split_per_member_structs.c | 3 +- src/compiler/nir/nir_split_vars.c | 7 +- src/compiler/nir_types.cpp | 47 +- src/compiler/nir_types.h | 20 +- src/compiler/spirv/spirv_to_nir.c | 24 +- src/compiler/spirv/vtn_private.h | 6 + src/compiler/spirv/vtn_variables.c | 90 ++- src/mesa/drivers/dri/i965/brw_link.cpp | 12 +- src/mesa/main/shader_query.cpp | 42 +- src/mesa/main/shaderapi.c | 26 +- 23 files changed, 1433 insertions(+), 83 deletions(-) create mode 100644 src/compiler/glsl/gl_nir_link_uniform_blocks.c create mode 100644 src/compiler/glsl/gl_nir_lower_vulkan_resource_index.c -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev