Mesa (master): glsl: make component_slots() returns 1 for sampler types

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Fri Apr 21 08:09:12 UTC 2017


Module: Mesa
Branch: master
Commit: 4a0aa0b3b3c07469aeef5d627f63adda6f5bcf5a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4a0aa0b3b3c07469aeef5d627f63adda6f5bcf5a

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Apr 20 19:02:27 2017 +0200

glsl: make component_slots() returns 1 for sampler types

It looks inconsistent to return 1 for image types and 0 for
sampler types. Especially because component_slots() is mostly
used by values_for_type() which always returns 1 for samplers.

For bindless, this value will be bumped to 2 because the
ARB_bindless_texture states that bindless samplers/images
should consume two components.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Edward O'Callaghan <funfunctor at folklore1984.net>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/compiler/glsl_types.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/compiler/glsl_types.cpp b/src/compiler/glsl_types.cpp
index db65bb0e00..0480bef80e 100644
--- a/src/compiler/glsl_types.cpp
+++ b/src/compiler/glsl_types.cpp
@@ -1296,13 +1296,12 @@ glsl_type::component_slots() const
    case GLSL_TYPE_ARRAY:
       return this->length * this->fields.array->component_slots();
 
+   case GLSL_TYPE_SAMPLER:
    case GLSL_TYPE_IMAGE:
-      return 1;
    case GLSL_TYPE_SUBROUTINE:
-     return 1;
+      return 1;
 
    case GLSL_TYPE_FUNCTION:
-   case GLSL_TYPE_SAMPLER:
    case GLSL_TYPE_ATOMIC_UINT:
    case GLSL_TYPE_VOID:
    case GLSL_TYPE_ERROR:




More information about the mesa-commit mailing list