1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[dxvk] Always initialize dynamic depth/stencil state

Spec says we must set any dynamic state before making a draw call, there
doesn't seem to be an exception if we don't enable depth or stencil tests.
This commit is contained in:
Philip Rebohle 2022-07-14 21:45:22 +02:00
parent 0b59af996a
commit 70a71237cf
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -710,6 +710,9 @@ namespace dxvk {
if (depthTestEnable) {
m_vkd->vkCmdSetDepthWriteEnable(m_execBuffer, depthWriteEnable);
m_vkd->vkCmdSetDepthCompareOp(m_execBuffer, depthCompareOp);
} else {
m_vkd->vkCmdSetDepthWriteEnable(m_execBuffer, VK_FALSE);
m_vkd->vkCmdSetDepthCompareOp(m_execBuffer, VK_COMPARE_OP_ALWAYS);
}
}
@ -760,6 +763,15 @@ namespace dxvk {
VK_STENCIL_FACE_BACK_BIT, back.compareMask);
m_vkd->vkCmdSetStencilWriteMask(m_execBuffer,
VK_STENCIL_FACE_BACK_BIT, back.writeMask);
} else {
m_vkd->vkCmdSetStencilOp(m_execBuffer,
VK_STENCIL_FACE_FRONT_AND_BACK,
VK_STENCIL_OP_KEEP, VK_STENCIL_OP_KEEP,
VK_STENCIL_OP_KEEP, VK_COMPARE_OP_ALWAYS);
m_vkd->vkCmdSetStencilCompareMask(m_execBuffer,
VK_STENCIL_FACE_FRONT_AND_BACK, 0x0);
m_vkd->vkCmdSetStencilWriteMask(m_execBuffer,
VK_STENCIL_FACE_FRONT_AND_BACK, 0x0);
}
}