summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_clone.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2012-12-11 12:11:16 -0800
committerIan Romanick <ian.d.romanick@intel.com>2013-01-25 09:07:33 -0500
commit491364e1f34ddb2c8ea439e871dd42aaa5cc9b28 (patch)
tree339b24932702a6421845c15c08fcba2bcc4104f8 /src/glsl/ir_clone.cpp
parent7f96a8471e8ddf2b49a644780f35ee493157782a (diff)
downloadexternal_mesa3d-491364e1f34ddb2c8ea439e871dd42aaa5cc9b28.zip
external_mesa3d-491364e1f34ddb2c8ea439e871dd42aaa5cc9b28.tar.gz
external_mesa3d-491364e1f34ddb2c8ea439e871dd42aaa5cc9b28.tar.bz2
glsl: Add GLSL_TYPE_INTERFACE
Interfaces are structurally identical to structures from the compiler's point of view. They have some additional restrictions, and generally GPUs use different instructions to access them. Using a different base type should make this a bit easier. This commit also adds the glsl_type::interface_packing fields. For GLSL_TYPE_INTERFACE types, this will track the specified packing mode. It is analogous to gl_uniform_buffer::_Packing. v2: Add serveral missing GLSL_TYPE_INTERFACE cases in switch-statements. v3: Add information about glsl_type::interface_packing. Move row_major checking in glsl_type::record_key_compare from this patch to the previous patch. Both suggested by Paul Berry. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Paul Berry <stereotype441@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/glsl/ir_clone.cpp')
-rw-r--r--src/glsl/ir_clone.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp
index 9b7981b..3e22f2d 100644
--- a/src/glsl/ir_clone.cpp
+++ b/src/glsl/ir_clone.cpp
@@ -378,6 +378,7 @@ ir_constant::clone(void *mem_ctx, struct hash_table *ht) const
case GLSL_TYPE_SAMPLER:
case GLSL_TYPE_VOID:
case GLSL_TYPE_ERROR:
+ case GLSL_TYPE_INTERFACE:
assert(!"Should not get here.");
break;
}