Skip to content
Snippets Groups Projects
Commit 0cea8a56 authored by Emma Anholt's avatar Emma Anholt
Browse files

glsl: Don't dead-code eliminiate uniforms declared in uniform blocks.


This is a requirement for std140 uniform blocks, and optional for
packed/shared blocks.

Reviewed-by: default avatarIan Romanick <ian.d.romanick@intel.com>
parent 548bce47
No related branches found
No related tags found
No related merge requests found
......@@ -95,9 +95,15 @@ 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))
(uniform_locations_assigned ||
entry->var->constant_value ||
entry->var->uniform_block != -1))
continue;
entry->var->remove();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment