summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-05-18 19:43:17 -0300
committerGravatar ameerj2021-07-22 21:51:32 -0400
commit0fa421f82f4efbb7fe2d86a18427b4889fd8d855 (patch)
tree4ef4d81c98e616abbda2f0498448ad7c39d12b44 /src/shader_recompiler/backend
parentglasm: Do not alias ConditionRef for now (diff)
downloadyuzu-0fa421f82f4efbb7fe2d86a18427b4889fd8d855.tar.gz
yuzu-0fa421f82f4efbb7fe2d86a18427b4889fd8d855.tar.xz
yuzu-0fa421f82f4efbb7fe2d86a18427b4889fd8d855.zip
glasm: Implement gl_FragDepth and gl_SampleMask stores
Diffstat (limited to 'src/shader_recompiler/backend')
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp8
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_instructions.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp
index ceadb3333..0b6d853eb 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp
@@ -120,12 +120,12 @@ void EmitSetFragColor(EmitContext& ctx, u32 index, u32 component, ScalarF32 valu
120 ctx.Add("MOV.F frag_color{}.{},{};", index, "xyzw"[component], value); 120 ctx.Add("MOV.F frag_color{}.{},{};", index, "xyzw"[component], value);
121} 121}
122 122
123void EmitSetSampleMask([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] ScalarF32 value) { 123void EmitSetSampleMask(EmitContext& ctx, ScalarS32 value) {
124 throw NotImplementedException("GLASM instruction"); 124 ctx.Add("MOV.S result.samplemask.x,{};", value);
125} 125}
126 126
127void EmitSetFragDepth([[maybe_unused]] EmitContext& ctx, [[maybe_unused]] ScalarF32 value) { 127void EmitSetFragDepth(EmitContext& ctx, ScalarF32 value) {
128 throw NotImplementedException("GLASM instruction"); 128 ctx.Add("MOV.F result.depth.z,{};", value);
129} 129}
130 130
131void EmitLoadLocal(EmitContext& ctx, IR::Inst& inst, ScalarU32 word_offset) { 131void EmitLoadLocal(EmitContext& ctx, IR::Inst& inst, ScalarU32 word_offset) {
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_instructions.h b/src/shader_recompiler/backend/glasm/emit_glasm_instructions.h
index df0933a3f..ce0181fd2 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_instructions.h
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_instructions.h
@@ -56,7 +56,7 @@ void EmitSetAttributeIndexed(EmitContext& ctx, ScalarU32 offset, ScalarF32 value
56void EmitGetPatch(EmitContext& ctx, IR::Patch patch); 56void EmitGetPatch(EmitContext& ctx, IR::Patch patch);
57void EmitSetPatch(EmitContext& ctx, IR::Patch patch, ScalarF32 value); 57void EmitSetPatch(EmitContext& ctx, IR::Patch patch, ScalarF32 value);
58void EmitSetFragColor(EmitContext& ctx, u32 index, u32 component, ScalarF32 value); 58void EmitSetFragColor(EmitContext& ctx, u32 index, u32 component, ScalarF32 value);
59void EmitSetSampleMask(EmitContext& ctx, ScalarF32 value); 59void EmitSetSampleMask(EmitContext& ctx, ScalarS32 value);
60void EmitSetFragDepth(EmitContext& ctx, ScalarF32 value); 60void EmitSetFragDepth(EmitContext& ctx, ScalarF32 value);
61void EmitGetZFlag(EmitContext& ctx); 61void EmitGetZFlag(EmitContext& ctx);
62void EmitGetSFlag(EmitContext& ctx); 62void EmitGetSFlag(EmitContext& ctx);