We should be able to free gl_linked_shader after linking in order to do so we need to switch to getting values from gl_program instead. --- src/compiler/glsl/glsl_to_nir.cpp | 1 - src/mesa/main/shaderapi.c | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 096ab4c..fef89f9 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -151,7 +151,6 @@ glsl_to_nir(const struct gl_shader_program *shader_prog, shader->info->num_ubos = sh->NumUniformBlocks; shader->info->num_abos = shader_prog->NumAtomicBuffers; shader->info->num_ssbos = sh->NumShaderStorageBlocks; - shader->info->num_images = sh->NumImages; shader->info->uses_clip_distance_out = sh->Program->ClipDistanceArraySize != 0; shader->info->separate_shader = shader_prog->SeparateShader; diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index be3c203..4d64ae5 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -2165,6 +2165,8 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src, struct gl_program *dst = dst_sh->Program; + dst->info.num_images = dst_sh->NumImages; + switch (dst_sh->Stage) { case MESA_SHADER_VERTEX: dst->ClipDistanceArraySize = src->Vert.ClipDistanceArraySize; -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev