[Mesa-dev] [PATCH v2 00/25] Initial gl_spirv and spirv_extensions support in Mesa and i965

Eduardo Lima Mitev elima at igalia.com
Tue Dec 12 07:44:34 UTC 2017


On 12/12/2017 03:01 AM, Ian Romanick wrote:
> Any chance you could push an updated branch to your github? :)

Yes, sure. I was meant to send the v3 series already yesterday.

I just pushed the latest version of this series
to<https://github.com/Igalia/mesa/commits/arb_gl_spirv-series1-v2>.

And the full branch to
<https://github.com/Igalia/mesa/commits/wip/igalia/arb_gl_spirv>.

I'm will send a v3 soon, after I sort out the last review comment.

Eduardo

> On 11/30/2017 09:28 AM, 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.
>>
>> * '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