diff options
author | Neil Roberts <nroberts@igalia.com> | 2018-03-28 11:00:28 +0200 |
---|---|---|
committer | Alejandro Piñeiro <apinheiro@igalia.com> | 2019-01-28 11:42:46 +0100 |
commit | 5c797f73548e44233c8c748e3bda46bbc294b277 (patch) | |
tree | 5a38e671258250b1747413d84e34706e7dd4778a /src/compiler/glsl_types.cpp | |
parent | dfc3a7cb3c06c2e0d57e96ad15f7126461540994 (diff) |
glsl_types: Rename parameter of glsl_count_attribute_slots
glsl_count_attribute_slots takes a parameter to specify whether the
type is being used as a vertex input because on GL double attributes
only take up one slot. Vulkan doesn’t make this distinction so this
patch renames the argument to is_gl_vertex_input in order to make it
more clear that it should always be false on Vulkan.
v2: minor variable renaming (s/member/member_type) (Tapani)
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Diffstat (limited to 'src/compiler/glsl_types.cpp')
-rw-r--r-- | src/compiler/glsl_types.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp index 9d5451dbb7c..90f4548030f 100644 --- a/src/compiler/glsl_types.cpp +++ b/src/compiler/glsl_types.cpp @@ -2051,7 +2051,7 @@ glsl_type::std430_size(bool row_major) const } unsigned -glsl_type::count_attribute_slots(bool is_vertex_input) const +glsl_type::count_attribute_slots(bool is_gl_vertex_input) const { /* From page 31 (page 37 of the PDF) of the GLSL 1.50 spec: * @@ -2094,7 +2094,7 @@ glsl_type::count_attribute_slots(bool is_vertex_input) const case GLSL_TYPE_DOUBLE: case GLSL_TYPE_UINT64: case GLSL_TYPE_INT64: - if (this->vector_elements > 2 && !is_vertex_input) + if (this->vector_elements > 2 && !is_gl_vertex_input) return this->matrix_columns * 2; else return this->matrix_columns; @@ -2102,14 +2102,18 @@ glsl_type::count_attribute_slots(bool is_vertex_input) const case GLSL_TYPE_INTERFACE: { unsigned size = 0; - for (unsigned i = 0; i < this->length; i++) - size += this->fields.structure[i].type->count_attribute_slots(is_vertex_input); + for (unsigned i = 0; i < this->length; i++) { + const glsl_type *member_type = this->fields.structure[i].type; + size += member_type->count_attribute_slots(is_gl_vertex_input); + } return size; } - case GLSL_TYPE_ARRAY: - return this->length * this->fields.array->count_attribute_slots(is_vertex_input); + case GLSL_TYPE_ARRAY: { + const glsl_type *element = this->fields.array; + return this->length * element->count_attribute_slots(is_gl_vertex_input); + } case GLSL_TYPE_SUBROUTINE: return 1; |