Acked-by: Edward O'Callaghan <eocallag...@alterapraxis.com>
On 2016-03-31 21:57, Timothy Arceri wrote:
These outputs have a separate location domain from per-vertex outputs
and need to be handled separately. For now just skip validation so we
don't invalidate valid shaders.
---
src/compiler/glsl/link_varyings.cpp | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/compiler/glsl/link_varyings.cpp
b/src/compiler/glsl/link_varyings.cpp
index d125a9f..4f57fb2 100644
--- a/src/compiler/glsl/link_varyings.cpp
+++ b/src/compiler/glsl/link_varyings.cpp
@@ -348,8 +348,12 @@ cross_validate_outputs_to_inputs(struct
gl_shader_program *prog,
foreach_in_list(ir_instruction, node, producer->ir) {
ir_variable *const var = node->as_variable();
- if ((var == NULL) || (var->data.mode != ir_var_shader_out))
- continue;
+ /* FIXME: We should also validate per patch outputs too rather
than just
+ * skipping over them here.
+ */
+ if ((var == NULL) || var->data.patch ||
+ (var->data.mode != ir_var_shader_out))
+ continue;
if (!var->data.explicit_location
|| var->data.location < VARYING_SLOT_VAR0)
@@ -432,8 +436,12 @@ cross_validate_outputs_to_inputs(struct
gl_shader_program *prog,
foreach_in_list(ir_instruction, node, consumer->ir) {
ir_variable *const input = node->as_variable();
- if ((input == NULL) || (input->data.mode != ir_var_shader_in))
- continue;
+ /* FIXME: We should also validate per patch outputs too rather
than just
+ * skipping over them here.
+ */
+ if ((input == NULL) || input->data.patch ||
+ (input->data.mode != ir_var_shader_in))
+ continue;
if (strcmp(input->name, "gl_Color") == 0 && input->data.used) {
const ir_variable *const front_color =
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev