summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/link_varyings.cpp
diff options
context:
space:
mode:
authorTimothy Arceri <timothy.arceri@collabora.com>2016-05-27 19:07:19 +1000
committerTimothy Arceri <timothy.arceri@collabora.com>2016-05-30 15:11:47 +1000
commitaac90ba2920cf5ceb4df6dba776dd3952780e456 (patch)
tree54527553f21f4df54c65152f11ee1e324b892bd9 /src/compiler/glsl/link_varyings.cpp
parent87fb5aa3e741e9b93bf09509ff14d4cbc683e482 (diff)
downloadexternal_mesa3d-aac90ba2920cf5ceb4df6dba776dd3952780e456.zip
external_mesa3d-aac90ba2920cf5ceb4df6dba776dd3952780e456.tar.gz
external_mesa3d-aac90ba2920cf5ceb4df6dba776dd3952780e456.tar.bz2
glsl: fix xfb_offset unsized array validation
This partially fixes CTS test: GL44-CTS.enhanced_layouts.xfb_get_program_resource_api The test now fails at a tes evaluation shader with unsized output arrays. The ARB_enhanced_layouts spec says: "It is a compile-time error to apply xfb_offset to the declaration of an unsized array." So this seems like a bug in the CTS. Reviewed-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/compiler/glsl/link_varyings.cpp')
-rw-r--r--src/compiler/glsl/link_varyings.cpp23
1 files changed, 0 insertions, 23 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
index 7c3bedf..34c8906 100644
--- a/src/compiler/glsl/link_varyings.cpp
+++ b/src/compiler/glsl/link_varyings.cpp
@@ -40,29 +40,6 @@
#include "program.h"
-/**
- * Get the varying type stripped of the outermost array if we're processing
- * a stage whose varyings are arrays indexed by a vertex number (such as
- * geometry shader inputs).
- */
-static const glsl_type *
-get_varying_type(const ir_variable *var, gl_shader_stage stage)
-{
- const glsl_type *type = var->type;
-
- if (!var->data.patch &&
- ((var->data.mode == ir_var_shader_out &&
- stage == MESA_SHADER_TESS_CTRL) ||
- (var->data.mode == ir_var_shader_in &&
- (stage == MESA_SHADER_TESS_CTRL || stage == MESA_SHADER_TESS_EVAL ||
- stage == MESA_SHADER_GEOMETRY)))) {
- assert(type->is_array());
- type = type->fields.array;
- }
-
- return type;
-}
-
static void
create_xfb_varying_names(void *mem_ctx, const glsl_type *t, char **name,
size_t name_length, unsigned *count,