program: add subroutine uniform support (v1.1)
authorDave Airlie <airlied@redhat.com>
Mon, 20 Apr 2015 00:28:40 +0000 (10:28 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 23 Jul 2015 07:25:55 +0000 (17:25 +1000)
Add support for the subroutine uniform type ir->mesa.cpp

v1.1: add subroutine to int to switch

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/program/ir_to_mesa.cpp

index cadbf49ca6574eb38c5194d4fe730bd1318ef918..8f58f3edf986f1ff924e4cae2b2bf4f296528bb1 100644 (file)
@@ -534,6 +534,7 @@ type_size(const struct glsl_type *type)
       return size;
    case GLSL_TYPE_SAMPLER:
    case GLSL_TYPE_IMAGE:
+   case GLSL_TYPE_SUBROUTINE:
       /* Samplers take up one slot in UNIFORMS[], but they're baked in
        * at link time.
        */
@@ -1342,6 +1343,7 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
    case ir_unop_dFdx_fine:
    case ir_unop_dFdy_coarse:
    case ir_unop_dFdy_fine:
+   case ir_unop_subroutine_to_int:
       assert(!"not supported");
       break;
 
@@ -2451,6 +2453,7 @@ _mesa_associate_uniform_storage(struct gl_context *ctx,
            break;
         case GLSL_TYPE_SAMPLER:
         case GLSL_TYPE_IMAGE:
+         case GLSL_TYPE_SUBROUTINE:
            format = uniform_native;
            columns = 1;
            break;