On 05/04/2017 03:25 PM, Nicolai Hähnle wrote:
On 04.05.2017 15:06, Samuel Pitoiset wrote:


On 05/04/2017 02:45 PM, Nicolai Hähnle wrote:
On 02.05.2017 22:53, Samuel Pitoiset wrote:
In a situation like:

(tex vec4 (record_ref (var_ref f)  tex)  (constant vec2 (0.000000
0.000000))  0 1 () )

The sampler needs to be lowered, otherwise this ends up with
"ir_dereference_variable @ 0x229a100 specifies undeclared variable
`ubo_load_temp' @ 0x2290440"

Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>

I think this loses image format / memory qualifiers. That's
unfortunately not very easy to test for, but can you make sure the
qualifiers survive to the TGSI?

This is for samplers, not images.

Oops, sorry for the confusion. Feel free to add my R-b to this patch as well.

No worries, thanks a bunch for the review. :)

Samuel.


Cheers,
Nicolai



About images, the qualifiers survive to the TGSI. I have two follow-up
patches that I will submit after this series (to avoid too much
confusion), but it's working fine.


Thanks,
Nicolai


---
 src/compiler/glsl/lower_ubo_reference.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/compiler/glsl/lower_ubo_reference.cpp
b/src/compiler/glsl/lower_ubo_reference.cpp
index bfaddac3ad..72f0fcf432 100644
--- a/src/compiler/glsl/lower_ubo_reference.cpp
+++ b/src/compiler/glsl/lower_ubo_reference.cpp
@@ -104,6 +104,7 @@ public:
    ir_call *lower_ssbo_atomic_intrinsic(ir_call *ir);
    ir_call *check_for_ssbo_atomic_intrinsic(ir_call *ir);
    ir_visitor_status visit_enter(ir_call *ir);
+   ir_visitor_status visit_enter(ir_texture *ir);

    struct gl_linked_shader *shader;
    bool clamp_block_indices;
@@ -1090,6 +1091,20 @@
lower_ubo_reference_visitor::visit_enter(ir_call *ir)
 }


+ir_visitor_status
+lower_ubo_reference_visitor::visit_enter(ir_texture *ir)
+{
+   ir_dereference *sampler = ir->sampler;
+
+   if (sampler->ir_type == ir_type_dereference_record) {
+      handle_rvalue((ir_rvalue **)&ir->sampler);
+      return visit_continue_with_parent;
+   }
+
+   return rvalue_visit(ir);
+}
+
+
 } /* unnamed namespace */

 void





_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to