mesa/glspirv: Add struct gl_shader_spirv_data
authorEduardo Lima Mitev <elima@igalia.com>
Mon, 13 Nov 2017 12:57:46 +0000 (13:57 +0100)
committerEduardo Lima Mitev <elima@igalia.com>
Tue, 12 Dec 2017 07:18:32 +0000 (08:18 +0100)
commita8889f5cc7129c1f8942248d620f64b4496e8f35
tree52b16c0c70a9b49b0ef4a49011958408bbd79d4f
parent74f98ab76f2a21ef511e6bbddaa08ac1748aca2e
mesa/glspirv: Add struct gl_shader_spirv_data

This is a per-shader structure holding the SPIR-V data associated with the
shader (binary module, specialization constants and entry-point).

This is needed because both gl_shader and gl_linked_shader need to share this
data. Instead of copying the data, we pass a reference to it upon program
linking. That's why it is reference-counted.

This struct is created and associated with the shader upon calling
glShaderBinary(), then subsequently filled up by the call to
glSpecializeShaderARB().

v2: Readability improvements (Ian Romanick)

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/glspirv.c
src/mesa/main/glspirv.h