diff --git a/src/xenia/gpu/spirv_shader_translator.cc b/src/xenia/gpu/spirv_shader_translator.cc index b6e0361b1..1f07b0d00 100644 --- a/src/xenia/gpu/spirv_shader_translator.cc +++ b/src/xenia/gpu/spirv_shader_translator.cc @@ -835,6 +835,10 @@ std::vector SpirvShaderTranslator::CompleteTranslation() { builder_->addExecutionMode(function_main_, spv::ExecutionModeEarlyFragmentTests); } + if (current_shader().writes_depth()) { + builder_->addExecutionMode(function_main_, + spv::ExecutionModeDepthReplacing); + } if (edram_fragment_shader_interlock_) { // Accessing per-sample values, so interlocking just when there's common // coverage is enough if the device exposes that.