Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.

This commit is contained in:
Fernando Sahmkow 2021-09-15 20:14:39 +02:00
parent d86a9b9a4b
commit 8984abfc76

View file

@ -477,7 +477,13 @@ void EmitSetSampleMask(EmitContext& ctx, Id value) {
} }
void EmitSetFragDepth(EmitContext& ctx, Id value) { void EmitSetFragDepth(EmitContext& ctx, Id value) {
ctx.OpStore(ctx.frag_depth, value); if (!ctx.runtime_info.convert_depth_mode) {
ctx.OpStore(ctx.frag_depth, value);
return;
}
const Id unit{ctx.Const(0.5f)};
const Id new_depth{ctx.OpFma(ctx.F32[1], value, unit, unit)};
ctx.OpStore(ctx.frag_depth, new_depth);
} }
void EmitGetZFlag(EmitContext&) { void EmitGetZFlag(EmitContext&) {