intel/compiler: handle GLSL_TYPE_INTERFACE as GLSL_TYPE_STRUCT
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Thu, 21 Mar 2019 22:02:38 +0000 (15:02 -0700)
committerCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Sat, 23 Mar 2019 17:22:39 +0000 (10:22 -0700)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/compiler/brw_fs.cpp
src/intel/compiler/brw_shader.cpp
src/intel/compiler/brw_vec4_visitor.cpp

index fb6c23e5f9c1edeadbff1b7e05b3a3ac1c2d11e3..964cde07215ac6c5d832ca16b533b556a01e4f82 100644 (file)
@@ -542,6 +542,7 @@ type_size_scalar(const struct glsl_type *type)
    case GLSL_TYPE_ARRAY:
       return type_size_scalar(type->fields.array) * type->length;
    case GLSL_TYPE_STRUCT:
+   case GLSL_TYPE_INTERFACE:
       size = 0;
       for (i = 0; i < type->length; i++) {
         size += type_size_scalar(type->fields.structure[i].type);
@@ -558,7 +559,6 @@ type_size_scalar(const struct glsl_type *type)
       return 1;
    case GLSL_TYPE_VOID:
    case GLSL_TYPE_ERROR:
-   case GLSL_TYPE_INTERFACE:
    case GLSL_TYPE_FUNCTION:
       unreachable("not reached");
    }
index 1a9f097fd5bfeb41ca94c2464bc2bc6348d357a9..f9e88d4353949b6fe6c1a581e16ef7fd106abe81 100644 (file)
@@ -55,6 +55,7 @@ brw_type_for_base_type(const struct glsl_type *type)
    case GLSL_TYPE_ARRAY:
       return brw_type_for_base_type(type->fields.array);
    case GLSL_TYPE_STRUCT:
+   case GLSL_TYPE_INTERFACE:
    case GLSL_TYPE_SAMPLER:
    case GLSL_TYPE_ATOMIC_UINT:
       /* These should be overridden with the type of the member when
@@ -72,7 +73,6 @@ brw_type_for_base_type(const struct glsl_type *type)
       return BRW_REGISTER_TYPE_Q;
    case GLSL_TYPE_VOID:
    case GLSL_TYPE_ERROR:
-   case GLSL_TYPE_INTERFACE:
    case GLSL_TYPE_FUNCTION:
       unreachable("not reached");
    }
index 7d6032a31e104a32d0a565bc56077ac60614a700..16ee31d730aedf8ed75502db36b24bb338a891a8 100644 (file)
@@ -611,6 +611,7 @@ type_size_xvec4(const struct glsl_type *type, bool as_vec4)
       assert(type->length > 0);
       return type_size_xvec4(type->fields.array, as_vec4) * type->length;
    case GLSL_TYPE_STRUCT:
+   case GLSL_TYPE_INTERFACE:
       size = 0;
       for (i = 0; i < type->length; i++) {
         size += type_size_xvec4(type->fields.structure[i].type, as_vec4);
@@ -630,7 +631,6 @@ type_size_xvec4(const struct glsl_type *type, bool as_vec4)
       return DIV_ROUND_UP(BRW_IMAGE_PARAM_SIZE, 4);
    case GLSL_TYPE_VOID:
    case GLSL_TYPE_ERROR:
-   case GLSL_TYPE_INTERFACE:
    case GLSL_TYPE_FUNCTION:
       unreachable("not reached");
    }