summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTapani Pälli <[email protected]>2015-06-29 15:23:45 +0300
committerTapani Pälli <[email protected]>2015-07-01 14:40:34 +0300
commitf045b8b2ff5ac75da3e092f482fd1717571d8462 (patch)
treef5e7f698f6df2d3da98501095828936d61f5c2d9 /src
parent73afa31f07fe4af605088f6590edc4227652c482 (diff)
glsl: create program resource list after LinkShader
Resource list can be created properly only after LinkShader hook has been called to make sure all dead variables have been removed. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Martin Peres <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90925
Diffstat (limited to 'src')
-rw-r--r--src/glsl/linker.cpp4
-rw-r--r--src/mesa/program/ir_to_mesa.cpp2
2 files changed, 2 insertions, 4 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index e0ce00ce5b9..71a45e8db9c 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -3242,10 +3242,6 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
}
}
- build_program_resource_list(ctx, prog);
- if (!prog->LinkStatus)
- goto done;
-
/* FINISHME: Assign fragment shader output locations. */
done:
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 18e3bc5d5cc..0b2eb122364 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2975,6 +2975,8 @@ _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
if (prog->LinkStatus) {
if (!ctx->Driver.LinkShader(ctx, prog)) {
prog->LinkStatus = GL_FALSE;
+ } else {
+ build_program_resource_list(ctx, prog);
}
}