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

2017-12-14 Thread Eduardo Lima Mitev
Oops, sorry, wrong thread.

This is version 2 of the series and there is a version 3 which is the
one that needs review.

Eduardo


On 12/15/2017 08:13 AM, Eduardo Lima Mitev wrote:
> Any chance to wrap up this review?
>
> Thanks!
>
> Eduardo
>
> On 11/30/2017 06:28 PM, 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 
>> .
>>
>> 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 
>> .
>>
>> A tree of the larger WIP branch from which this series is taken: 
>> .
>>
>> 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 +

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

2017-12-14 Thread Eduardo Lima Mitev
Any chance to wrap up this review?

Thanks!

Eduardo

On 11/30/2017 06:28 PM, 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 
> .
>
> 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 
> .
>
> A tree of the larger WIP branch from which this series is taken: 
> .
>
> 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 

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

2017-12-11 Thread Eduardo Lima Mitev
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.

And the full branch to
.

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 
>> .
>>
>> 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 
>> .
>>
>> A tree of the larger WIP branch from which this series is taken: 
>> .
>>
>> 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 +
>>  

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

2017-12-11 Thread Ian Romanick
Any chance you could push an updated branch to your github? :)

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 
> .
> 
> 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 
> .
> 
> A tree of the larger WIP branch from which this series is taken: 
> .
> 
> 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 

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

2017-11-30 Thread Eduardo Lima Mitev
On 12/01/2017 04:54 AM, Timothy Arceri wrote:
> 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
>> .
>>
>> 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.
>

Ohh, I'm very sorry. The revised patch got lost during rebase.

I have just sent a v3 of
"[PATCH v2 22/25] mesa/glspirv: Create gl_linked_shader objects for a
SPIR-V program" that includes the check in question.

Thanks for catching this!

Eduardo

>>
>> * '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
>> .
>>
>> A tree of the larger WIP branch from which this series is taken:
>> .
>>
>> 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 +
>>   

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

2017-11-30 Thread Timothy Arceri

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 
.

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 
.

A tree of the larger WIP branch from which this series is taken: 
.

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 

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

2017-11-30 Thread Eduardo Lima Mitev
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 
.

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 
.

A tree of the larger WIP branch from which this series is taken: 
.

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