mesa: Add a reference to gl_shader_spirv_data to gl_linked_shader

This is a reference to the spirv_data object stored in gl_shader, which
stores shader SPIR-V data that is needed during linking too.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Eduardo Lima Mitev 2017-11-13 19:44:47 +01:00 committed by Alejandro Piñeiro
parent ba975140d3
commit 22b6b3d0a7
2 changed files with 9 additions and 0 deletions

View file

@ -2651,6 +2651,14 @@ struct gl_linked_shader
struct exec_list *packed_varyings;
struct exec_list *fragdata_arrays;
struct glsl_symbol_table *symbols;
/**
* ARB_gl_spirv related data.
*
* This is actually a reference to the gl_shader::spirv_data, which
* stores information that is also needed during linking.
*/
struct gl_shader_spirv_data *spirv_data;
};

View file

@ -137,6 +137,7 @@ void
_mesa_delete_linked_shader(struct gl_context *ctx,
struct gl_linked_shader *sh)
{
_mesa_shader_spirv_data_reference(&sh->spirv_data, NULL);
_mesa_reference_program(ctx, &sh->Program, NULL);
ralloc_free(sh);
}