mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +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:
parent
56c826be85
commit
887e514442
@ -1128,10 +1128,17 @@ namespace dxvk {
|
|||||||
for (uint32_t i = 0; i < viewportCount; i++) {
|
for (uint32_t i = 0; i < viewportCount; i++) {
|
||||||
m_state.vp.viewports[i] = viewports[i];
|
m_state.vp.viewports[i] = viewports[i];
|
||||||
m_state.vp.scissorRects[i] = scissorRects[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->cmdSetViewport(0, viewportCount, m_state.vp.viewports.data());
|
||||||
m_cmd->cmdSetScissor (0, viewportCount, scissorRects);
|
m_cmd->cmdSetScissor (0, viewportCount, m_state.vp.scissorRects.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user