aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl
diff options
context:
space:
mode:
authorRhys Perry <[email protected]>2018-06-06 20:55:06 +0100
committerMarek Olšák <[email protected]>2018-08-01 00:10:01 -0400
commitea2a3f52b4acee0378e02414b9c39e3f0c66cbf1 (patch)
tree0078ef5bd2cb08b41daa512f6b6c4ffddddab425 /src/compiler/glsl
parent42d4acb39dbdc11645a3a7e4f9d6f1ca080bcf04 (diff)
glsl: allow ?: operator with images and samplers when bindless is enabled
Signed-off-by: Rhys Perry <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/compiler/glsl')
-rw-r--r--src/compiler/glsl/ast_to_hir.cpp8
1 files 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);