From 27f015ecd14084e34ac25238f35135bffd21c82e Mon Sep 17 00:00:00 2001 From: nmzik Date: Fri, 4 Sep 2026 05:22:17 +0200 Subject: [PATCH] Revert "graphics: preserve unrestricted viewport depth ranges" This reverts commit eccd6f6cac87f956b95ecc151dceade21ff7d47f. --- src/graphics/host_gpu/renderer/renderDraw.cpp | 19 ++++++++----------- .../presentation/window/vulkanWindow.cpp | 3 +-- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/graphics/host_gpu/renderer/renderDraw.cpp b/src/graphics/host_gpu/renderer/renderDraw.cpp index 0da83c9ef..5344d7737 100644 --- a/src/graphics/host_gpu/renderer/renderDraw.cpp +++ b/src/graphics/host_gpu/renderer/renderDraw.cpp @@ -335,9 +335,7 @@ static void SetGraphicsDynamicParams(const CommandBuffer& buffer, vk::CommandBuf EXIT_IF(colors == nullptr); const auto& ctx = buffer.GetRegisters(); - const auto& vp = ctx.GetScreenViewport(); - const auto& viewport_regs = vp.viewports[0]; - const auto& clip_control = ctx.GetClipControl(); + const auto& vp = ctx.GetScreenViewport(); vk::Extent2D framebuffer_extent {}; if (color_count > 0 && colors[0].image_id) { framebuffer_extent = colors[0].extent; @@ -351,21 +349,20 @@ static void SetGraphicsDynamicParams(const CommandBuffer& buffer, vk::CommandBuf const auto final_scissor = calc_final_scissor(vp, ctx.GetScanModeControl(), framebuffer_extent); vk::Viewport viewport {}; - if (clip_control.clip_disable) { + if (ctx.GetClipControl().clip_disable) { const auto& limits = buffer.GetGraphics().GetPhysicalDeviceProperties().limits; viewport.x = 0.0f; viewport.y = 0.0f; viewport.width = static_cast(std::min(limits.maxViewportDimensions[0], 16384u)); viewport.height = static_cast(std::min(limits.maxViewportDimensions[1], 16384u)); } else { - viewport.x = viewport_regs.xoffset - viewport_regs.xscale; - viewport.y = viewport_regs.yoffset - viewport_regs.yscale; - viewport.width = viewport_regs.xscale * 2.0f; - viewport.height = viewport_regs.yscale * 2.0f; + viewport.x = vp.viewports[0].xoffset - vp.viewports[0].xscale; + viewport.y = vp.viewports[0].yoffset - vp.viewports[0].yscale; + viewport.width = vp.viewports[0].xscale * 2.0f; + viewport.height = vp.viewports[0].yscale * 2.0f; } - viewport.minDepth = - viewport_regs.zoffset - (clip_control.dx_clip_space ? 0.0f : viewport_regs.zscale); - viewport.maxDepth = viewport_regs.zoffset + viewport_regs.zscale; + viewport.minDepth = vp.viewports[0].zoffset; + viewport.maxDepth = vp.viewports[0].zscale + vp.viewports[0].zoffset; vk_buffer.setViewport(0, 1, &viewport); vk::Rect2D scissor {}; diff --git a/src/graphics/presentation/window/vulkanWindow.cpp b/src/graphics/presentation/window/vulkanWindow.cpp index 904d09dff..88bde4280 100644 --- a/src/graphics/presentation/window/vulkanWindow.cpp +++ b/src/graphics/presentation/window/vulkanWindow.cpp @@ -1019,8 +1019,7 @@ void WindowContext::CreateVulkan() { std::vector device_extensions = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME, - VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, - "VK_KHR_maintenance1"}; + VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, "VK_KHR_maintenance1"}; #if defined(__APPLE__) // MoltenVK lacks VK_EXT_depth_clip_enable and VK_EXT_color_write_enable; the renderer