shader: initialize pixel position W as a reciprocal

This commit is contained in:
nmzik committed 2026-09-06 19:47:43 +04:00
1 parent 807a594c2d
commit e847f82fab
2 files changed
+31 -5

No files matched your search

@@ -1162,8 +1162,10 @@ IR::Program TranslateProgram(const Decoder::Program& decoded, const CFG::Graph&
builtin(IR::StageInputKind::FragCoord, 2));
}
if (ps->ps_pos_w) {
const auto reciprocal_w = entry_ir.BitCastF32(builtin(IR::StageInputKind::FragCoord, 3));
const auto w = IR::F32(entry_ir.Emit(IR::ValueOpcode::FPRecip32, {reciprocal_w}));
entry_ir.SetVectorReg(static_cast<IR::VectorReg>(reg++),
builtin(IR::StageInputKind::FragCoord, 3));
entry_ir.BitCastU32(w));
}
if (ps->ps_front_face) {
entry_ir.SetVectorReg(static_cast<IR::VectorReg>(reg++),