Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan.
This commit is contained in:
parent
d86a9b9a4b
commit
8984abfc76
1 changed files with 7 additions and 1 deletions
|
@ -477,7 +477,13 @@ void EmitSetSampleMask(EmitContext& ctx, Id value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmitSetFragDepth(EmitContext& ctx, Id value) {
|
void EmitSetFragDepth(EmitContext& ctx, Id value) {
|
||||||
|
if (!ctx.runtime_info.convert_depth_mode) {
|
||||||
ctx.OpStore(ctx.frag_depth, value);
|
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&) {
|
||||||
|
|
Loading…
Reference in a new issue