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

[dxvk] Use dummy viewport if requested viewport size is 0

Fixes a bunch of validation errors in various games,
including The Witcher 3.
This commit is contained in:
Philip Rebohle 2018-03-12 13:14:27 +01:00
parent 56c826be85
commit 887e514442
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -1128,10 +1128,17 @@ namespace dxvk {
for (uint32_t i = 0; i < viewportCount; i++) {
m_state.vp.viewports[i] = viewports[i];
m_state.vp.scissorRects[i] = scissorRects[i];
// Vulkan viewports are not allowed to have a width or
// height of zero, so we fall back to a dummy viewport.
if (viewports[i].width == 0.0f || viewports[i].height == 0.0f) {
m_state.vp.viewports[i] = VkViewport {
0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f };
}
}
m_cmd->cmdSetViewport(0, viewportCount, viewports);
m_cmd->cmdSetScissor (0, viewportCount, scissorRects);
m_cmd->cmdSetViewport(0, viewportCount, m_state.vp.viewports.data());
m_cmd->cmdSetScissor (0, viewportCount, m_state.vp.scissorRects.data());
}