glsl/types: Make subroutine types have a single matrix column

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>
This commit is contained in:
Jason Ekstrand 2015-09-30 15:19:49 -07:00
parent a7e0f755bc
commit cd2132f45b

View 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);
}