diff options
author | Kenneth Graunke <[email protected]> | 2017-01-07 13:58:42 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-01-07 15:15:08 -0800 |
commit | 957ec00243ec8ccc0a94f68106d079b54685fe5a (patch) | |
tree | c9663602e6c1449819a140755911e4f8c276a4ca /src/compiler/glsl/linker.cpp | |
parent | 42699e12711668a142b7acf11c168cf4301c1295 (diff) |
Revert recent GLSL slot counting fiasco.
I apparently broke mark_whole_variable in ir_set_program_inouts.
It was passing a type that wasn't var->type, so the wrapper didn't
work out. It's all broken, revert it and start over.
Fixes all kinds of things on other drivers.
Revert "glsl: Make is_fixed_function_array actually check for varyings."
This reverts commit 42699e12711668a142b7acf11c168cf4301c1295.
Revert "glsl: Mark whole variable used for ClipDistance and TessLevel*."
This reverts commit 5c580e64cc206ab160e1767c42e4d6c81f67da4d.
Revert "glsl: Override the # of varying slots for ClipDistance and TessLevel*."
This reverts commit 8b5749f65ac434961308ccb579fb8a816e4f29d5.
Revert "glsl: Create and use a new ir_variable::count_attribute_slots() wrapper."
This reverts commit 6aa5cb34d03765b7be8611aa516bc201bd337f73.
Diffstat (limited to 'src/compiler/glsl/linker.cpp')
-rw-r--r-- | src/compiler/glsl/linker.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index ef2b01e17d7..d4a484fdea0 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -2670,7 +2670,7 @@ assign_attribute_or_color_locations(void *mem_ctx, return false; } - const unsigned slots = var->count_attribute_slots(target_index == MESA_SHADER_VERTEX); + const unsigned slots = var->type->count_attribute_slots(target_index == MESA_SHADER_VERTEX); /* If the variable is not a built-in and has a location statically * assigned in the shader (presumably via a layout qualifier), make sure @@ -2782,7 +2782,7 @@ assign_attribute_or_color_locations(void *mem_ctx, */ for (unsigned i = 0; i < assigned_attr; i++) { unsigned assigned_slots = - assigned[i]->count_attribute_slots(false); + assigned[i]->type->count_attribute_slots(false); unsigned assig_attr = assigned[i]->data.location - generic_base; unsigned assigned_use_mask = (1 << assigned_slots) - 1; @@ -3233,7 +3233,7 @@ check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog) ir_variable *var = node->as_variable(); if (var && var->data.mode == ir_var_shader_out) /* since there are no double fs outputs - pass false */ - fragment_outputs += var->count_attribute_slots(false); + fragment_outputs += var->type->count_attribute_slots(false); } } } |