首页 > 解决方案 > 在 D3D11 中将纹理预加载到 GPU 内存

问题描述

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

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

标签: directxtexture-mappingdirect3d11

解决方案


Direct3D9Ex 和 Direct3D 10 到 DirectX 12 没有D3DPOOL_MANAGED. 这是因为这些版本的 Direct3D 没有 Direct3D 9 所具有的“丢失设备”。他们只有在您的游戏/应用程序运行时 GPU 崩溃或更新驱动程序时发生“设备移除”。请参阅Microsoft 文档

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


推荐阅读