diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-05-20 22:28:09 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:32 +0200 |
commit | 83cef0426b058014ad94dd687a29e7c31a1fbbef (patch) | |
tree | 54d1860cae0a8b1db6341b610d50aea15801ab13 /src/shader_recompiler/backend/glasm/emit_context.cpp | |
parent | glasm: Declare geometry program headers (diff) | |
download | yuzu-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 'src/shader_recompiler/backend/glasm/emit_context.cpp')
-rw-r--r-- | src/shader_recompiler/backend/glasm/emit_context.cpp | 9 |
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) { |