summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv
diff options
context:
space:
mode:
authorGravatar ameerj2021-03-14 01:23:56 -0500
committerGravatar ameerj2021-07-22 21:51:23 -0400
commit8d470c2e63c2dac334ccff2bcda9a0607ce76377 (patch)
treee97594278b6f4877a2350550be4727b8c4934248 /src/shader_recompiler/backend/spirv
parentshader: Fix rebase issue (diff)
downloadyuzu-8d470c2e63c2dac334ccff2bcda9a0607ce76377.tar.gz
yuzu-8d470c2e63c2dac334ccff2bcda9a0607ce76377.tar.xz
yuzu-8d470c2e63c2dac334ccff2bcda9a0607ce76377.zip
shader: Implement FMNMX
And add a const in FCMP
Diffstat (limited to 'src/shader_recompiler/backend/spirv')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.h8
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp16
2 files changed, 12 insertions, 12 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.h b/src/shader_recompiler/backend/spirv/emit_spirv.h
index b09978073..89566c83d 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.h
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.h
@@ -162,10 +162,10 @@ Id EmitFPAdd64(EmitContext& ctx, IR::Inst* inst, Id a, Id b);
162Id EmitFPFma16(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); 162Id EmitFPFma16(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c);
163Id EmitFPFma32(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); 163Id EmitFPFma32(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c);
164Id EmitFPFma64(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); 164Id EmitFPFma64(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c);
165void EmitFPMax32(EmitContext& ctx); 165Id EmitFPMax32(EmitContext& ctx, Id a, Id b);
166void EmitFPMax64(EmitContext& ctx); 166Id EmitFPMax64(EmitContext& ctx, Id a, Id b);
167void EmitFPMin32(EmitContext& ctx); 167Id EmitFPMin32(EmitContext& ctx, Id a, Id b);
168void EmitFPMin64(EmitContext& ctx); 168Id EmitFPMin64(EmitContext& ctx, Id a, Id b);
169Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b); 169Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b);
170Id EmitFPMul32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); 170Id EmitFPMul32(EmitContext& ctx, IR::Inst* inst, Id a, Id b);
171Id EmitFPMul64(EmitContext& ctx, IR::Inst* inst, Id a, Id b); 171Id EmitFPMul64(EmitContext& ctx, IR::Inst* inst, Id a, Id b);
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp
index a359c42fc..e635b1ffb 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp
@@ -60,20 +60,20 @@ Id EmitFPFma64(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c) {
60 return Decorate(ctx, inst, ctx.OpFma(ctx.F64[1], a, b, c)); 60 return Decorate(ctx, inst, ctx.OpFma(ctx.F64[1], a, b, c));
61} 61}
62 62
63void EmitFPMax32(EmitContext&) { 63Id EmitFPMax32(EmitContext& ctx, Id a, Id b) {
64 throw NotImplementedException("SPIR-V Instruction"); 64 return ctx.OpFMax(ctx.F32[1], a, b);
65} 65}
66 66
67void EmitFPMax64(EmitContext&) { 67Id EmitFPMax64(EmitContext& ctx, Id a, Id b) {
68 throw NotImplementedException("SPIR-V Instruction"); 68 return ctx.OpFMax(ctx.F64[1], a, b);
69} 69}
70 70
71void EmitFPMin32(EmitContext&) { 71Id EmitFPMin32(EmitContext& ctx, Id a, Id b) {
72 throw NotImplementedException("SPIR-V Instruction"); 72 return ctx.OpFMin(ctx.F32[1], a, b);
73} 73}
74 74
75void EmitFPMin64(EmitContext&) { 75Id EmitFPMin64(EmitContext& ctx, Id a, Id b) {
76 throw NotImplementedException("SPIR-V Instruction"); 76 return ctx.OpFMin(ctx.F64[1], a, b);
77} 77}
78 78
79Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b) { 79Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b) {