mesa/glsl: copy num_abos to gl_program
authorTimothy Arceri <timothy.arceri@collabora.com>
Thu, 27 Oct 2016 05:17:19 +0000 (16:17 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Thu, 17 Nov 2016 01:52:24 +0000 (12:52 +1100)
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.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/compiler/glsl/glsl_to_nir.cpp
src/mesa/main/shaderapi.c

index fef89f9272a33a589fa5abbb379845bb4f4c1209..e1b8cea600dc009a2def2ff69b48aed2bb00470a 100644 (file)
@@ -149,7 +149,6 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,
       shader->info->label = ralloc_strdup(shader, shader_prog->Label);
    shader->info->num_textures = util_last_bit(sh->Program->SamplersUsed);
    shader->info->num_ubos = sh->NumUniformBlocks;
-   shader->info->num_abos = shader_prog->NumAtomicBuffers;
    shader->info->num_ssbos = sh->NumShaderStorageBlocks;
    shader->info->uses_clip_distance_out =
       sh->Program->ClipDistanceArraySize != 0;
index 4d64ae58a98b693a1386ee595a89b67ef6aec4f0..5db41375006da6715d531c3262441c63acef0040 100644 (file)
@@ -2165,6 +2165,7 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src,
 
    struct gl_program *dst = dst_sh->Program;
 
+   dst->info.num_abos = dst_sh->NumAtomicBuffers;
    dst->info.num_images = dst_sh->NumImages;
 
    switch (dst_sh->Stage) {