From d6810ea2867f95d737b63e391d19b8a281f4a381 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 19 Apr 2017 21:57:02 +0200 Subject: [PATCH] glsl: do not count bindless samplers/images when linking uniforms MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Nicolai Hähnle Reviewed-by: Timothy Arceri --- 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 f6335b0..b34c870 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.7.4