在 D3D11 中将纹理预加载到 GPU 内存

Preload texture to GPU memory in D3D11

如何在 Direct3D11 中将更新的托管 2D 纹理预加载到 GPU 内存?

在 Direct3D9 中,我调用了 IDirect3DBaseTexture9::PreLoad 来保证纹理准备好渲染。

Direct3D9Ex 和 Direct3D 10 到 DirectX 12 没有 D3DPOOL_MANAGED 的概念。这是因为这些版本的 Direct3D 没有 Direct3D 9 那样的“丢失设备”。他们只有在 GPU 崩溃或驱动程序更新时发生的“设备已删除”,而您的 game/app 是 运行。参见 Microsoft Docs

从 Windows Vista 开始,视频内存由 OS 管理。纹理被分页进出视频内存,并由系统内存自动支持。您可以使用 SetEvictionPriority 方法提供提示。