diff options
| author | 2021-03-14 01:23:56 -0500 | |
|---|---|---|
| committer | 2021-07-22 21:51:23 -0400 | |
| commit | 8d470c2e63c2dac334ccff2bcda9a0607ce76377 (patch) | |
| tree | e97594278b6f4877a2350550be4727b8c4934248 /src/shader_recompiler/backend/spirv | |
| parent | shader: Fix rebase issue (diff) | |
| download | yuzu-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.h | 8 | ||||
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp | 16 |
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); | |||
| 162 | Id EmitFPFma16(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); | 162 | Id EmitFPFma16(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); |
| 163 | Id EmitFPFma32(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); | 163 | Id EmitFPFma32(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); |
| 164 | Id EmitFPFma64(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); | 164 | Id EmitFPFma64(EmitContext& ctx, IR::Inst* inst, Id a, Id b, Id c); |
| 165 | void EmitFPMax32(EmitContext& ctx); | 165 | Id EmitFPMax32(EmitContext& ctx, Id a, Id b); |
| 166 | void EmitFPMax64(EmitContext& ctx); | 166 | Id EmitFPMax64(EmitContext& ctx, Id a, Id b); |
| 167 | void EmitFPMin32(EmitContext& ctx); | 167 | Id EmitFPMin32(EmitContext& ctx, Id a, Id b); |
| 168 | void EmitFPMin64(EmitContext& ctx); | 168 | Id EmitFPMin64(EmitContext& ctx, Id a, Id b); |
| 169 | Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | 169 | Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b); |
| 170 | Id EmitFPMul32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | 170 | Id EmitFPMul32(EmitContext& ctx, IR::Inst* inst, Id a, Id b); |
| 171 | Id EmitFPMul64(EmitContext& ctx, IR::Inst* inst, Id a, Id b); | 171 | Id 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 | ||
| 63 | void EmitFPMax32(EmitContext&) { | 63 | Id 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 | ||
| 67 | void EmitFPMax64(EmitContext&) { | 67 | Id 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 | ||
| 71 | void EmitFPMin32(EmitContext&) { | 71 | Id 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 | ||
| 75 | void EmitFPMin64(EmitContext&) { | 75 | Id 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 | ||
| 79 | Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b) { | 79 | Id EmitFPMul16(EmitContext& ctx, IR::Inst* inst, Id a, Id b) { |