[Mesa-dev] [PATCH v2 00/25] Initial gl_spirv and spirv_extensions support in Mesa and i965
Timothy Arceri
tarceri at itsqueeze.com
Fri Dec 1 03:54:01 UTC 2017
On 01/12/17 04:28, Eduardo Lima Mitev wrote:
> Hello,
>
> This is the second version of the series providing initial support for ARB_gl_spirv and ARB_spirv_extensions in Mesa and i965.
>
> First version of the series can be found at <https://lists.freedesktop.org/archives/mesa-dev/2017-November/177004.html>.
>
> In this series we hope we have addressed all issues detected during the initial review. Thank you all who participated!
>
> Taking the nitpicks and minor fixes apart, most important changes compared to the first version are:
>
> * A dedicated 'spirv' flag was removed from gl_shader struct. Now we use the nulness of 'spirv_data' member for the same purpose.
>
> * The per-program 'spirv' flag was moved out of this series, but will likely be re-introduced in the next delivery, because it will become necessary.
>
> * We enforce one SPIR-V shader per stage, and fail linking if this condition is not met.
Sorry can you point me to the patch that contains this I couldn't find
it when skimming over the series. Thanks.
>
> * 'SpirVCapabilities' struct of GL context constants is no longer a pointer but a static struct.
>
> As usual, a tree of this series can be found at <https://github.com/Igalia/mesa/commits/arb_gl_spirv-series1-v2>.
>
> A tree of the larger WIP branch from which this series is taken: <https://github.com/Igalia/mesa/commits/wip/igalia/arb_gl_spirv>.
>
> Thanks in advance for the reviews!
>
> cheers,
> Eduardo
>
> Alejandro Piñeiro (9):
> spirv_extensions: rename nir_spirv_supported_extensions
> mesa: move nir_spirv_supported_capabilities definition
> i965: initialize SPIR-V capabilities
> spirv_extensions: add GL_ARB_spirv_extensions boilerplate
> spirv_extensions: add list of extensions and to_string method
> spirv_extensions: define spirv_extensions_supported
> spirv_extensions: add spirv_supported_extensions on gl_constants
> spirv_extensions: i965: initialize SPIR-V extensions
> nir/spirv: add gl_spirv_validation method
>
> Eduardo Lima Mitev (8):
> mesa/glspirv: Add struct gl_shader_spirv_data
> mesa/glspirv: Add a _mesa_spirv_link_shaders() placeholder
> mesa/program: Link SPIR-V shaders using the SPIR-V code-path
> mesa: Add a reference to gl_shader_spirv_data to gl_linked_shader
> mesa/glspirv: Create gl_linked_shader objects for a SPIR-V program
> mesa/glspirv: Add a _mesa_spirv_to_nir() function
> i965: Call spirv_to_nir() instead of glsl_to_nir() for SPIR-V shaders
> i965: Don't call process_glsl_ir() for SPIR-V shaders
>
> Neil Roberts (1):
> mesa: Add boilerplate for the GL 4.6 alias of glSpecializeShaderARB
>
> Nicolai Hähnle (7):
> mesa: add GL_ARB_gl_spirv boilerplate
> mesa/glspirv: Add struct gl_spirv_module
> mesa: implement SPIR-V loading in glShaderBinary
> mesa/shaderapi: add a getter for GL_SPIR_V_BINARY_ARB
> mesa: refuse to compile SPIR-V shaders or link mixed shaders
> mesa: add gl_constants::SpirVCapabilities
> mesa: Implement glSpecializeShaderARB
>
> src/amd/vulkan/radv_shader.c | 4 +-
> src/compiler/Makefile.sources | 2 +
> src/compiler/spirv/nir_spirv.h | 21 +-
> src/compiler/spirv/spirv_extensions.c | 77 +++++++
> src/compiler/spirv/spirv_extensions.h | 63 ++++++
> src/compiler/spirv/spirv_to_nir.c | 160 +++++++++++++-
> src/compiler/spirv/vtn_private.h | 2 +-
> src/intel/vulkan/anv_pipeline.c | 4 +-
> src/mapi/glapi/gen/ARB_gl_spirv.xml | 21 ++
> src/mapi/glapi/gen/ARB_spirv_extensions.xml | 13 ++
> src/mapi/glapi/gen/GL4x.xml | 11 +
> src/mapi/glapi/gen/Makefile.am | 2 +
> src/mapi/glapi/gen/gl_API.xml | 8 +
> src/mapi/glapi/gen/gl_genexec.py | 1 +
> src/mapi/glapi/gen/meson.build | 2 +
> src/mesa/Makefile.sources | 4 +
> src/mesa/drivers/dri/i965/brw_context.c | 26 +++
> src/mesa/drivers/dri/i965/brw_link.cpp | 3 +-
> src/mesa/drivers/dri/i965/brw_program.c | 14 +-
> src/mesa/main/context.c | 2 +
> src/mesa/main/extensions_table.h | 2 +
> src/mesa/main/get.c | 7 +
> src/mesa/main/get_hash_params.py | 3 +
> src/mesa/main/getstring.c | 12 +
> src/mesa/main/glspirv.c | 331 ++++++++++++++++++++++++++++
> src/mesa/main/glspirv.h | 108 +++++++++
> src/mesa/main/mtypes.h | 31 +++
> src/mesa/main/shaderapi.c | 60 ++++-
> src/mesa/main/shaderobj.c | 3 +
> src/mesa/main/spirv_extensions.c | 60 +++++
> src/mesa/main/spirv_extensions.h | 49 ++++
> src/mesa/main/tests/dispatch_sanity.cpp | 3 +
> src/mesa/meson.build | 4 +
> src/mesa/program/ir_to_mesa.cpp | 23 +-
> 34 files changed, 1098 insertions(+), 38 deletions(-)
> create mode 100644 src/compiler/spirv/spirv_extensions.c
> create mode 100644 src/compiler/spirv/spirv_extensions.h
> create mode 100644 src/mapi/glapi/gen/ARB_gl_spirv.xml
> create mode 100644 src/mapi/glapi/gen/ARB_spirv_extensions.xml
> create mode 100644 src/mesa/main/glspirv.c
> create mode 100644 src/mesa/main/glspirv.h
> create mode 100644 src/mesa/main/spirv_extensions.c
> create mode 100644 src/mesa/main/spirv_extensions.h
>
More information about the mesa-dev
mailing list