Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com>

On 01/12/17 04:28, Eduardo Lima Mitev wrote:
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.
---
  src/mesa/main/mtypes.h    | 8 ++++++++
  src/mesa/main/shaderobj.c | 1 +
  2 files changed, 9 insertions(+)

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index d74bf10daa0..1c8de9542e8 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2542,6 +2542,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;
  };
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 5c1cdd6b27a..834e2a92ec4 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -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);
  }

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to