mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxbc] Implement precise flag
May fix depth precision in Skyrim SE (issue #189).
This commit is contained in:
parent
f52cc3859b
commit
50f1cf007d
@ -1564,6 +1564,9 @@ namespace dxvk {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ins.controls.precise())
|
||||||
|
m_module.decorate(dst.id, spv::DecorationNoContraction);
|
||||||
|
|
||||||
// Store computed value
|
// Store computed value
|
||||||
dst = emitDstOperandModifiers(dst, ins.modifiers);
|
dst = emitDstOperandModifiers(dst, ins.modifiers);
|
||||||
emitRegisterStore(ins.dst[0], dst);
|
emitRegisterStore(ins.dst[0], dst);
|
||||||
@ -1786,6 +1789,9 @@ namespace dxvk {
|
|||||||
src.at(0).id,
|
src.at(0).id,
|
||||||
src.at(1).id);
|
src.at(1).id);
|
||||||
|
|
||||||
|
if (ins.controls.precise())
|
||||||
|
m_module.decorate(dst.id, spv::DecorationNoContraction);
|
||||||
|
|
||||||
dst = emitDstOperandModifiers(dst, ins.modifiers);
|
dst = emitDstOperandModifiers(dst, ins.modifiers);
|
||||||
emitRegisterStore(ins.dst[0], dst);
|
emitRegisterStore(ins.dst[0], dst);
|
||||||
}
|
}
|
||||||
|
@ -309,6 +309,10 @@ namespace dxvk {
|
|||||||
return bit::extract(m_bits, 11, 16);
|
return bit::extract(m_bits, 11, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool precise() const {
|
||||||
|
return bit::extract(m_bits, 19, 22) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
uint32_t m_bits;
|
uint32_t m_bits;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user