glsl/types: Make subroutine types have a single matrix column
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 30 Sep 2015 22:19:49 +0000 (15:19 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 2 Oct 2015 21:19:39 +0000 (14:19 -0700)
That way, if we do the usual thing of multiplying vector_elements by
matrix_columns we get the actual number of components in the type as per
component_slots().

While we're at it, we also switch to using the actual C++ field
initializers for vector_elements and matrix_columns.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/glsl/glsl_types.cpp

index 8586b2e..25927f6 100644 (file)
@@ -172,7 +172,7 @@ glsl_type::glsl_type(const char *subroutine_name) :
    base_type(GLSL_TYPE_SUBROUTINE),
    sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
    sampler_type(0), interface_packing(0),
-   vector_elements(0), matrix_columns(0),
+   vector_elements(1), matrix_columns(1),
    length(0)
 {
    mtx_lock(&glsl_type::mutex);
@@ -180,7 +180,6 @@ glsl_type::glsl_type(const char *subroutine_name) :
    init_ralloc_type_ctx();
    assert(subroutine_name != NULL);
    this->name = ralloc_strdup(this->mem_ctx, subroutine_name);
-   this->vector_elements = 1;
    mtx_unlock(&glsl_type::mutex);
 }