From 374eeda1a35f6a1dc81cf22122c701be68e89c0f Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Wed, 16 Jun 2021 04:59:30 -0300
Subject: shader: Properly manage attributes not written from previous stages

---
 src/shader_recompiler/runtime_info.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'src/shader_recompiler/runtime_info.h')

diff --git a/src/shader_recompiler/runtime_info.h b/src/shader_recompiler/runtime_info.h
index d4b047b4d4..63fe2afafc 100644
--- a/src/shader_recompiler/runtime_info.h
+++ b/src/shader_recompiler/runtime_info.h
@@ -5,6 +5,7 @@
 #pragma once
 
 #include <array>
+#include <bitset>
 #include <optional>
 #include <vector>
 
@@ -59,6 +60,8 @@ struct TransformFeedbackVarying {
 
 struct RuntimeInfo {
     std::array<AttributeType, 32> generic_input_types{};
+    std::bitset<32> previous_stage_stores_generic{};
+
     bool convert_depth_mode{};
     bool force_early_z{};
 
@@ -72,11 +75,12 @@ struct RuntimeInfo {
     std::optional<CompareFunction> alpha_test_func;
     float alpha_test_reference{};
 
-    // Static y negate value
+    /// Static Y negate value
     bool y_negate{};
-    // Use storage buffers instead of global pointers on GLASM
+    /// Use storage buffers instead of global pointers on GLASM
     bool glasm_use_storage_buffers{};
 
+    /// Transform feedback state for each varying
     std::vector<TransformFeedbackVarying> xfb_varyings;
 };
 
-- 
cgit v1.2.3-70-g09d2