summaryrefslogtreecommitdiff
path: root/src/shader_recompiler
diff options
context:
space:
mode:
authorGravatar Ameer J2021-09-19 23:56:08 -0400
committerGravatar GitHub2021-09-19 23:56:08 -0400
commitcd973d603735bfc573871a6c719a98c312ffd41f (patch)
tree3dce46d1f0219b5df58e53785a51b5f2d60821f1 /src/shader_recompiler
parentMerge pull request #7019 from ameerj/videocore-jthread (diff)
parentSpir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan. (diff)
downloadyuzu-cd973d603735bfc573871a6c719a98c312ffd41f.tar.gz
yuzu-cd973d603735bfc573871a6c719a98c312ffd41f.tar.xz
yuzu-cd973d603735bfc573871a6c719a98c312ffd41f.zip
Merge pull request #7017 from FernandoS27/i-am-barbie-girl
Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
Diffstat (limited to 'src/shader_recompiler')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp8
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
479void EmitSetFragDepth(EmitContext& ctx, Id value) { 479void 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
483void EmitGetZFlag(EmitContext&) { 489void EmitGetZFlag(EmitContext&) {