From b738fae4b977fc08ddfff012e689b6a7d8a87022 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Wed, 26 Apr 2017 18:34:27 +0200 Subject: [PATCH] glsl: skip tree grafting for sampler and image types v2: - use is_sampler()/is_image() instead (Samuel Pitoiset) Reviewed-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- src/compiler/glsl/opt_tree_grafting.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/compiler/glsl/opt_tree_grafting.cpp b/src/compiler/glsl/opt_tree_grafting.cpp index 28b6e1856e8..b0a16041918 100644 --- a/src/compiler/glsl/opt_tree_grafting.cpp +++ b/src/compiler/glsl/opt_tree_grafting.cpp @@ -371,6 +371,17 @@ tree_grafting_basic_block(ir_instruction *bb_first, if (lhs_var->data.precise) continue; + /* Do not graft sampler and image variables. This is a workaround to + * st/glsl_to_tgsi being unable to handle expression parameters to image + * intrinsics. + * + * Note that if this is ever fixed, we still need to skip grafting when + * any image layout qualifiers (including the image format) are set, + * since we must not lose those. + */ + if (lhs_var->type->is_sampler() || lhs_var->type->is_image()) + continue; + ir_variable_refcount_entry *entry = info->refs->get_variable_entry(lhs_var); if (!entry->declaration || -- 2.30.2