From f4799e8fa15b92d8d5607dc5dfca4974901ee06c Mon Sep 17 00:00:00 2001
From: ameerj <52414509+ameerj@users.noreply.github.com>
Date: Wed, 2 Jun 2021 00:33:03 -0400
Subject: glsl: Implement transform feedback

---
 src/shader_recompiler/backend/glsl/emit_context.h | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'src/shader_recompiler/backend/glsl/emit_context.h')

diff --git a/src/shader_recompiler/backend/glsl/emit_context.h b/src/shader_recompiler/backend/glsl/emit_context.h
index 48786a2c76..5d48675e6b 100644
--- a/src/shader_recompiler/backend/glsl/emit_context.h
+++ b/src/shader_recompiler/backend/glsl/emit_context.h
@@ -30,6 +30,12 @@ struct Program;
 
 namespace Shader::Backend::GLSL {
 
+struct GenericElementInfo {
+    std::string name{};
+    u32 first_element{};
+    u32 num_components{};
+};
+
 class EmitContext {
 public:
     explicit EmitContext(IR::Program& program, Bindings& bindings, const Profile& profile_,
@@ -149,6 +155,7 @@ public:
     std::vector<u32> image_buffer_bindings;
     std::vector<u32> texture_bindings;
     std::vector<u32> image_bindings;
+    std::array<std::array<GenericElementInfo, 4>, 32> output_generics{};
 
     bool uses_y_direction{};
     bool uses_cc_carry{};
@@ -157,6 +164,7 @@ private:
     void SetupExtensions(std::string& header);
     void DefineConstantBuffers(Bindings& bindings);
     void DefineStorageBuffers(Bindings& bindings);
+    void DefineGenericOutput(size_t index, u32 invocations);
     void DefineHelperFunctions();
     void SetupImages(Bindings& bindings);
 };
-- 
cgit v1.2.3-70-g09d2