diff options
| author | 2021-09-15 20:14:39 +0200 | |
|---|---|---|
| committer | 2021-09-15 21:30:33 +0200 | |
| commit | 8984abfc76ec82cba2c919934981a5a5bf9216e7 (patch) | |
| tree | e946421b6f6d6e9848cd8f3dd00933c62a47d68f /src/shader_recompiler/backend | |
| parent | Merge pull request #6943 from FernandoS27/omae-wa-mou-shindeiru (diff) | |
| download | yuzu-8984abfc76ec82cba2c919934981a5a5bf9216e7.tar.gz yuzu-8984abfc76ec82cba2c919934981a5a5bf9216e7.tar.xz yuzu-8984abfc76ec82cba2c919934981a5a5bf9216e7.zip | |
Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
Diffstat (limited to 'src/shader_recompiler/backend')
| -rw-r--r-- | src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp index 68f360b3c..6f60c6574 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp | |||
| @@ -477,7 +477,13 @@ void EmitSetSampleMask(EmitContext& ctx, Id value) { | |||
| 477 | } | 477 | } |
| 478 | 478 | ||
| 479 | void EmitSetFragDepth(EmitContext& ctx, Id value) { | 479 | void EmitSetFragDepth(EmitContext& ctx, Id value) { |
| 480 | ctx.OpStore(ctx.frag_depth, value); | 480 | if (!ctx.runtime_info.convert_depth_mode) { |
| 481 | ctx.OpStore(ctx.frag_depth, value); | ||
| 482 | return; | ||
| 483 | } | ||
| 484 | const Id unit{ctx.Const(0.5f)}; | ||
| 485 | const Id new_depth{ctx.OpFma(ctx.F32[1], value, unit, unit)}; | ||
| 486 | ctx.OpStore(ctx.frag_depth, new_depth); | ||
| 481 | } | 487 | } |
| 482 | 488 | ||
| 483 | void EmitGetZFlag(EmitContext&) { | 489 | void EmitGetZFlag(EmitContext&) { |