From ed14d31f663e126a8f9fe0ea8abff8e27c46248b Mon Sep 17 00:00:00 2001
From: ameerj <52414509+ameerj@users.noreply.github.com>
Date: Thu, 27 May 2021 00:26:16 -0400
Subject: glsl: Fix non-immediate buffer access

and many other misc implementations
---
 src/shader_recompiler/backend/glsl/emit_glsl.cpp | 5 +++++
 1 file changed, 5 insertions(+)

(limited to 'src/shader_recompiler/backend/glsl/emit_glsl.cpp')

diff --git a/src/shader_recompiler/backend/glsl/emit_glsl.cpp b/src/shader_recompiler/backend/glsl/emit_glsl.cpp
index 35dbe19ec1..644da43f43 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl.cpp
@@ -160,8 +160,13 @@ void EmitCode(EmitContext& ctx, const IR::Program& program) {
             ctx.Add("return;");
             break;
         case IR::AbstractSyntaxNode::Type::Loop:
+            ctx.Add("do{{");
+            break;
         case IR::AbstractSyntaxNode::Type::Repeat:
+            ctx.Add("}}while({});", ctx.reg_alloc.Consume(node.data.repeat.cond));
+            break;
         default:
+            fmt::print("{}", node.type);
             throw NotImplementedException("{}", node.type);
             break;
         }
-- 
cgit v1.2.3-70-g09d2