summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/shaderobj.c
diff options
context:
space:
mode:
authorTapani Pälli <tapani.palli@intel.com>2015-03-06 09:14:49 +0200
committerTapani Pälli <tapani.palli@intel.com>2015-04-16 07:55:35 +0300
commitc796ce4108ccc4987c24df43606d04a0f3658d44 (patch)
treee2ea14537b96e6bfbf2244b5c9946fa89ccc9437 /src/mesa/main/shaderobj.c
parentb297fc27aa93c4af4cf8ecf9702fd0b95d2c4f9a (diff)
downloadexternal_mesa3d-c796ce4108ccc4987c24df43606d04a0f3658d44.zip
external_mesa3d-c796ce4108ccc4987c24df43606d04a0f3658d44.tar.gz
external_mesa3d-c796ce4108ccc4987c24df43606d04a0f3658d44.tar.bz2
mesa/glsl: build list of program resources during linking
Patch adds ProgramResourceList to gl_shader_program structure. List contains references to active program resources and is constructed during linking phase. This list will be used by follow-up patches to implement hooks for GL_ARB_program_interface_query. It can be also used to implement any of the older shader program query APIs. v2: code cleanups + note for SSBO and subroutines (Ilia Mirkin) v3: code cleanups + assert(MESA_SHADER_STAGES < 8) (Martin Peres) Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
Diffstat (limited to 'src/mesa/main/shaderobj.c')
-rw-r--r--src/mesa/main/shaderobj.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index d7620c8..e428960 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -315,6 +315,12 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
ralloc_free(shProg->AtomicBuffers);
shProg->AtomicBuffers = NULL;
shProg->NumAtomicBuffers = 0;
+
+ if (shProg->ProgramResourceList) {
+ ralloc_free(shProg->ProgramResourceList);
+ shProg->ProgramResourceList = NULL;
+ shProg->NumProgramResourceList = 0;
+ }
}