[Mesa-dev] [PATCH v3 29/32] glsl: do not count bindless samplers/images when linking uniforms

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue May 2 20:53:50 UTC 2017


>From section 2.14.8 of the ARB_bindless_texture spec:

    "(modify second paragraph, p. 126) ... against the
     MAX_COMBINED_TEXTURE_IMAGE_UNITS limit.  Samplers accessed
     using texture handles (section 3.9.X) are not counted against
     this limit."

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
---
 src/compiler/glsl/link_uniforms.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/compiler/glsl/link_uniforms.cpp b/src/compiler/glsl/link_uniforms.cpp
index 0a199dbbd6..b49eee82de 100644
--- a/src/compiler/glsl/link_uniforms.cpp
+++ b/src/compiler/glsl/link_uniforms.cpp
@@ -339,11 +339,11 @@ private:
       const unsigned values = type->component_slots();
       if (type->contains_subroutine()) {
          this->num_shader_subroutines += values;
-      } else if (type->contains_sampler()) {
+      } else if (type->contains_sampler() && !current_var->data.bindless) {
          /* Samplers (bound or bindless) are counted as two components as
           * specified by ARB_bindless_texture. */
          this->num_shader_samplers += values / 2;
-      } else if (type->contains_image()) {
+      } else if (type->contains_image() && !current_var->data.bindless) {
          /* Images (bound or bindless) are counted as two components as
           * specified by ARB_bindless_texture. */
          this->num_shader_images += values / 2;
-- 
2.12.2



More information about the mesa-dev mailing list