From ea2a3f52b4acee0378e02414b9c39e3f0c66cbf1 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Wed, 6 Jun 2018 20:55:06 +0100 Subject: [PATCH] glsl: allow ?: operator with images and samplers when bindless is enabled MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Rhys Perry Signed-off-by: Marek Olšák --- src/compiler/glsl/ast_to_hir.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index dd60a2a87fd..74160ec142b 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -1850,9 +1850,11 @@ ast_expression::do_hir(exec_list *instructions, * expressions; such use results in a compile-time error." */ if (type->contains_opaque()) { - _mesa_glsl_error(&loc, state, "opaque variables cannot be operands " - "of the ?: operator"); - error_emitted = true; + if (!(state->has_bindless() && (type->is_image() || type->is_sampler()))) { + _mesa_glsl_error(&loc, state, "variables of type %s cannot be " + "operands of the ?: operator", type->name); + error_emitted = true; + } } ir_constant *cond_val = op[0]->constant_expression_value(ctx); -- 2.30.2