[Mesa-dev] [PATCH v2 00/28] ARB_gl_spirv: v2 ubo/ssbo support, plus CTS goodness
Alejandro Piñeiro
apinheiro at igalia.com
Thu Sep 27 09:51:39 UTC 2018
Hi,
this is the second version of the ubo/ssbo support for ARB_gl_spirv
series. Differences compared with v1:
* Rebased against today master.
* Patch "nir/linker: use only the array element type for array of
ssbo/ubo" got a proper spec quote.
* Two extra patches are included. They are not strictly related to
ubo/ssbo. Just when I sent v1, I checked how many patches from our
development branch were required to pass all the ARB_gl_spirv
tests. And they were just two. So although initially the plan was
sending them as part of a different series, we decided to send it
now, basically because "passing all the CTS tests" is a nice
checkpoint, and it would be nice to get it on master. Having said
so, note that "passing all the CTS tests" is not "extension is
production ready", so we would keep sending series/patches before
propose to enable it.
And something that was not mentioned on v1 cover-letter, but later on
the review thread: this series doesn't include the support for array
of arrays of ubo/ssbo. That will be sent later on a different series.
The v1 was sent here:
https://lists.freedesktop.org/archives/mesa-dev/2018-September/205278.html
This series can be found on this branch:
https://github.com/Igalia/piglit/tree/arb_gl_spirv-series5-ubo-ssbo-v2
And can be tested with this piglit series:
https://github.com/Igalia/piglit/tree/arb_gl_spirv-series5-ubo-ssbo-v2
And as mentioned, with this series would pass the CTS ARB_gl_spirv
tests on i965.
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 | 3 +-
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, 1430 insertions(+), 82 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