Module: vkd3d Branch: master Commit: 5d724abc9660f13fa77522fc018ebb35836f0dfb URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/5d724abc9660f13fa77522fc018ebb...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Thu Apr 20 17:40:00 2023 +1000
vkd3d: Do not skip all viewports if one is invalid.
Fixes blank screen in Assassin's Creed: Valhalla.
---
libs/vkd3d/command.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 2662ec04..228429ec 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -3963,10 +3963,12 @@ static void STDMETHODCALLTYPE d3d12_command_list_RSSetViewports(ID3D12GraphicsCo vk_viewports[i].minDepth = viewports[i].MinDepth; vk_viewports[i].maxDepth = viewports[i].MaxDepth;
- if (!vk_viewports[i].width || !vk_viewports[i].height) + if (!vk_viewports[i].width) { - FIXME_ONCE("Invalid viewport %u, ignoring RSSetViewports().\n", i); - return; + /* Vulkan does not support width <= 0 */ + FIXME_ONCE("Setting invalid viewport %u to zero height.\n", i); + vk_viewports[i].width = 1.0f; + vk_viewports[i].height = 0.0f; } }