summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glasm/emit_context.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-05-20 22:28:09 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:32 +0200
commit83cef0426b058014ad94dd687a29e7c31a1fbbef (patch)
tree54d1860cae0a8b1db6341b610d50aea15801ab13 /src/shader_recompiler/backend/glasm/emit_context.cpp
parentglasm: Declare geometry program headers (diff)
downloadyuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.tar
yuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.tar.gz
yuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.tar.bz2
yuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.tar.lz
yuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.tar.xz
yuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.tar.zst
yuzu-83cef0426b058014ad94dd687a29e7c31a1fbbef.zip
Diffstat (limited to '')
-rw-r--r--src/shader_recompiler/backend/glasm/emit_context.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_context.cpp b/src/shader_recompiler/backend/glasm/emit_context.cpp
index 8f418936e..a9bbb680f 100644
--- a/src/shader_recompiler/backend/glasm/emit_context.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_context.cpp
@@ -47,24 +47,31 @@ EmitContext::EmitContext(IR::Program& program, Bindings& bindings, const Profile
case Stage::VertexA:
case Stage::VertexB:
stage_name = "vertex";
+ attrib_name = "vertex";
break;
case Stage::TessellationControl:
case Stage::TessellationEval:
+ stage_name = "primitive";
+ attrib_name = "primitive";
+ break;
case Stage::Geometry:
stage_name = "primitive";
+ attrib_name = "vertex";
break;
case Stage::Fragment:
stage_name = "fragment";
+ attrib_name = "fragment";
break;
case Stage::Compute:
stage_name = "invocation";
break;
}
+ const std::string_view attr_stage{stage == Stage::Fragment ? "fragment" : "vertex"};
for (size_t index = 0; index < program.info.input_generics.size(); ++index) {
const auto& generic{program.info.input_generics[index]};
if (generic.used) {
Add("{}ATTRIB in_attr{}[]={{{}.attrib[{}..{}]}};",
- InterpDecorator(generic.interpolation), index, stage_name, index, index);
+ InterpDecorator(generic.interpolation), index, attr_stage, index, index);
}
}
for (size_t index = 0; index < program.info.stores_frag_color.size(); ++index) {