summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-06-16 09:59:30 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:38 +0200
commit374eeda1a35f6a1dc81cf22122c701be68e89c0f (patch)
tree1155e56fffab693fe2c66ca38e6a435562c21b6d /src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
parentglsl: Only declare fragment outputs on fragment shaders (diff)
downloadyuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.tar
yuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.tar.gz
yuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.tar.bz2
yuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.tar.lz
yuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.tar.xz
yuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.tar.zst
yuzu-374eeda1a35f6a1dc81cf22122c701be68e89c0f.zip
Diffstat (limited to '')
-rw-r--r--src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
index 47933df97..bab32b58b 100644
--- a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
+++ b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
@@ -79,7 +79,7 @@ void GetAttribute(Info& info, IR::Attribute attr) {
void SetAttribute(Info& info, IR::Attribute attr) {
if (IR::IsGeneric(attr)) {
- info.stores_generics.at(IR::GenericAttributeIndex(attr)) = true;
+ info.stores_generics[IR::GenericAttributeIndex(attr)] = true;
return;
}
if (attr >= IR::Attribute::FixedFncTexture0S && attr <= IR::Attribute::FixedFncTexture9Q) {
@@ -956,7 +956,9 @@ void GatherInfoFromHeader(Environment& env, Info& info) {
}
if (info.stores_indexed_attributes) {
for (size_t i = 0; i < info.stores_generics.size(); i++) {
- info.stores_generics[i] |= header.vtg.IsOutputGenericVectorActive(i);
+ if (header.vtg.IsOutputGenericVectorActive(i)) {
+ info.stores_generics[i] = true;
+ }
}
info.stores_clip_distance |= header.vtg.omap_systemc.clip_distances != 0;
info.stores_position |= header.vtg.omap_systemb.position != 0;