summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_validate.cpp
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-04-20 10:16:55 +1000
committerDave Airlie <airlied@redhat.com>2015-07-23 17:25:25 +1000
commit57f24299b7fe0f7b20c2a3cf1e94c747825b568d (patch)
treec2de7c35d3d0eefe644110fa5f106d23010ba12b /src/glsl/ir_validate.cpp
parentd16ff8ac783874c8ee74ef796b1c853829ff237d (diff)
downloadexternal_mesa3d-57f24299b7fe0f7b20c2a3cf1e94c747825b568d.zip
external_mesa3d-57f24299b7fe0f7b20c2a3cf1e94c747825b568d.tar.gz
external_mesa3d-57f24299b7fe0f7b20c2a3cf1e94c747825b568d.tar.bz2
glsl/types: add new subroutine type (v3.2)
This type will be used to store the name of subroutine types as in subroutine void myfunc(void); will store myfunc into a subroutine type. This is required to the parser can identify a subroutine type in a uniform decleration as a valid type, and also for looking up the type later. Also add contains_subroutine method. v2: handle subroutine to int comparisons, needed for lowering pass. v3: do subroutine to int with it's own IR operation to avoid hacking on asserts (Kayden) v3.1: fix warnings in this patch, fix nir, fix tgsi v3.2: fixup tests Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Signed-off-by: Dave Airlie <airlied@redhat.com> tests: fix warnings
Diffstat (limited to 'src/glsl/ir_validate.cpp')
-rw-r--r--src/glsl/ir_validate.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/ir_validate.cpp b/src/glsl/ir_validate.cpp
index 684bef2..3f0dea7 100644
--- a/src/glsl/ir_validate.cpp
+++ b/src/glsl/ir_validate.cpp
@@ -448,6 +448,10 @@ ir_validate::visit_leave(ir_expression *ir)
ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
assert(ir->type->base_type == GLSL_TYPE_INT);
break;
+ case ir_unop_subroutine_to_int:
+ assert(ir->operands[0]->type->base_type == GLSL_TYPE_SUBROUTINE);
+ assert(ir->type->base_type == GLSL_TYPE_INT);
+ break;
case ir_binop_add:
case ir_binop_sub:
case ir_binop_mul: