You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

窗口调整大小时未触发VK_ERROR_OUT_OF_DATE_KHR错误的问题求助

窗口调整大小时未触发VK_ERROR_OUT_OF_DATE_KHR错误的问题求助

我自己基于Win32实现了窗口,搭配Vulkan做渲染,最近写了个测试函数用来调整窗口大小,但遇到了个头疼的问题——窗口尺寸改了之后,完全没触发VK_ERROR_OUT_OF_DATE_KHR错误。

先贴一下我的测试函数代码:

void Window::Test() {
    RECT rect = { 0, 0, 1200, 1200 };
    DWORD style = WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | CS_OWNDC | WS_MAXIMIZEBOX;
    DWORD exStyle = WS_EX_APPWINDOW | WS_EX_TOPMOST;
    AdjustWindowRectExForDpi(&rect, style, false, exStyle, GetDpiForWindow(windowHandle));

    SetWindowPos(windowHandle, HWND_TOPMOST, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_FRAMECHANGED | SWP_NOOWNERZORDER);
}

我本来的预期是,窗口大小变化后,Vulkan的交换链会因为不再匹配当前窗口尺寸而抛出VK_ERROR_OUT_OF_DATE_KHR,这样我就能捕获这个错误,重新创建适配新尺寸的交换链。但现在实际情况是,错误没触发,渲染还在继续,画面已经明显拉伸变形了,完全不符合预期。

有没有大佬能帮我排查下问题?比如是不是我的Win32窗口调整代码哪里没处理到位,或者Vulkan交换链的初始化、帧循环里有什么遗漏的设置?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:38:01