[Mesa-dev] [PATCH 00/28 v3] ARB_gl_spirv: v3 ubo/ssbo support, plus CTS goodness
Alejandro Piñeiro
apinheiro at igalia.com
Mon Oct 22 12:24:22 UTC 2018
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
More information about the mesa-dev
mailing list