全屏上的 d3d11 alt-tab 给出了奇怪的结果
Posted
技术标签:
【中文标题】全屏上的 d3d11 alt-tab 给出了奇怪的结果【英文标题】:d3d11 alt-tab on fullscreen gives strange result 【发布时间】:2014-02-21 21:09:23 【问题描述】:首先,经过 4 小时的调试,我的代码没有问题。但我很好奇为什么我遇到了问题。
我使用 d3d11 渲染创建了全屏窗口。当我尝试 alt-tab 窗口并且 在我的循环中没有 Present() 时出现问题(我只是在实现渲染功能之前发现了这个问题)。在这种情况下,在我屏幕上最小化窗口红色和蓝色通道后交换(是的,字面意思)。
我花了很长时间才找到,因为我怀疑我的交换链或窗口本身 (sdl)。出于教育目的,您能帮我找出这个错误的原因吗?
【问题讨论】:
【参考方案1】:这通常是由于 RGBA 交换链的图形驱动程序错误造成的。您可以尝试更新驱动程序(运行 Windows 更新)。但是为了提高兼容性,您可以将交换链表面格式更改为 BGRA(特别是 B8G8R8A8_UNORM
)。只要您只是进行正常渲染(而不是像 UpdateSubresource 那样直接对后台缓冲区进行任何花哨的操作),您应该能够将其他所有内容保持原样并且它会正确渲染。
【讨论】:
以上是关于全屏上的 d3d11 alt-tab 给出了奇怪的结果的主要内容,如果未能解决你的问题,请参考以下文章