[Mesa-dev] [PATCH v2 00/21] ARB_gl_spirv: support for uniforms and some extras
Alejandro Piñeiro
apinheiro at igalia.com
Sat May 12 09:40:38 UTC 2018
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
More information about the mesa-dev
mailing list