gpt4 book ai didi

directx-11 - RenderTargetView 指向的后缓冲区是否会在 Present 之后自动更改?

转载 作者:行者123 更新时间:2023-12-05 02:46:55 27 4
gpt4 key购买 nike

我通过指定交换链中后台缓冲区 0 的 ID3D11Texture2D* 创建了一个 ID3D11RenderTargetView。但我不清楚调用 _pSwapChain->Present(0, 0) 后会发生什么。

据推测,ID3D11RenderTargetView 所指向的现在是前台缓冲区。 Present 是否会以某种方式更改 ID3D11RenderTargetView 对象以指向新的后台缓冲区,或者应用程序是否必须继续从交换链请求新的 0 后台缓冲区?我还没有找到关于 ID3D11RenderTargetView 应该如何始终指向新后台缓冲区的确切解释。我也不清楚在交换链中有多少缓冲区是有意义的。

最佳答案

基本上它是在 DirectX 11 中“自动”完成的。

参见 Anatomy of Direct3D 11 Create Device和 DX11 DeviceResources

在 DirectX 12 中情况并非如此,在 DirectX 12 中,您必须显式绑定(bind)到每个后备缓冲区,并确保帧的所有“正在运行”的视频内存都保留在原位,直到 GPU 完成该操作框架。这就是 DXGI 1.4 添加 IDXGISwapChain3::GetCurrentBackBufferIndex 的原因。

参见 Anatomy of Direct3D 12 Create Device和 DX12 DeviceResources

There are a few other swapchain 'evolution' changes between DX11 & DX12 style. See The Care and Feeding of Modern Swap Chains.

关于directx-11 - RenderTargetView 指向的后缓冲区是否会在 Present 之后自动更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65246961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com