From 46b630ab647a14c9df3fbf015a6c6a44127dafa2 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Thu, 23 Feb 2012 09:23:57 +0100 Subject: [PATCH] glsl: Avoid delaying output write when there is no output read --- src/glsl/lower_output_reads.cpp | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/glsl/lower_output_reads.cpp b/src/glsl/lower_output_reads.cpp index 415b541..119d45a 100644 --- a/src/glsl/lower_output_reads.cpp +++ b/src/glsl/lower_output_reads.cpp @@ -52,6 +52,7 @@ public: virtual ir_visitor_status visit(class ir_dereference_variable *); virtual ir_visitor_status visit_leave(class ir_return *); virtual ir_visitor_status visit_leave(class ir_function_signature *); + virtual ir_visitor_status visit_enter(ir_assignment *ir); }; output_read_remover::output_read_remover() @@ -68,6 +69,13 @@ output_read_remover::~output_read_remover() } ir_visitor_status +output_read_remover::visit_enter(ir_assignment *ir) +{ + ir->rhs->accept(this); + return visit_continue_with_parent; +} + +ir_visitor_status output_read_remover::visit(ir_dereference_variable *ir) { if (ir->var->mode != ir_var_out) -- 1.7.7