diff options
author | marha <marha@users.sourceforge.net> | 2013-01-28 07:55:57 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-01-28 07:55:57 +0100 |
commit | 69c8cec54b01ed522bf10baf20da70304bac701a (patch) | |
tree | f37ea158a90ecb99d0780dfdaca14d05394fed3f /mesalib/src/glsl/opt_dead_code.cpp | |
parent | 06872e284da1c00ce03b234ca24aefeac64990d2 (diff) | |
download | vcxsrv-69c8cec54b01ed522bf10baf20da70304bac701a.tar.gz vcxsrv-69c8cec54b01ed522bf10baf20da70304bac701a.tar.bz2 vcxsrv-69c8cec54b01ed522bf10baf20da70304bac701a.zip |
mesa mkfontscale pixman git update 28 jan 2013
mesa: 87592cff57feef29565150b9203e220b50623f30
mkfontscale: b3af8de8d25128f565c2ed2f7c63b6e4099eb84e
pixman: 65fc1adb6545737058e938105ae948a3607c277c
Diffstat (limited to 'mesalib/src/glsl/opt_dead_code.cpp')
-rw-r--r-- | mesalib/src/glsl/opt_dead_code.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/mesalib/src/glsl/opt_dead_code.cpp b/mesalib/src/glsl/opt_dead_code.cpp index 47247e20d..b65e5c2ce 100644 --- a/mesalib/src/glsl/opt_dead_code.cpp +++ b/mesalib/src/glsl/opt_dead_code.cpp @@ -77,10 +77,11 @@ do_dead_code(exec_list *instructions, bool uniform_locations_assigned) if (entry->assign) { /* Remove a single dead assignment to the variable we found. - * Don't do so if it's a shader output, though. + * Don't do so if it's a shader or function output, though. */ - if (entry->var->mode != ir_var_out && - entry->var->mode != ir_var_inout) { + if (entry->var->mode != ir_var_function_out && + entry->var->mode != ir_var_function_inout && + entry->var->mode != ir_var_shader_out) { entry->assign->remove(); progress = true; @@ -97,15 +98,10 @@ do_dead_code(exec_list *instructions, bool uniform_locations_assigned) /* uniform initializers are precious, and could get used by another * stage. Also, once uniform locations have been assigned, the * declaration cannot be deleted. - * - * Also, GL_ARB_uniform_buffer_object says that std140 - * uniforms will not be eliminated. Since we always do - * std140, just don't eliminate uniforms in UBOs. */ if (entry->var->mode == ir_var_uniform && (uniform_locations_assigned || - entry->var->constant_value || - entry->var->uniform_block != -1)) + entry->var->constant_value)) continue; entry->var->remove(); |