directx - 在 D3D11 中将纹理预加载到 GPU 内存
问题描述
如何在 Direct3D11 中将更新的托管 2D 纹理预加载到 GPU 内存?
在 Direct3D9 中,我调用了 IDirect3DBaseTexture9::PreLoad 以保证纹理准备好进行渲染。
解决方案
Direct3D9Ex 和 Direct3D 10 到 DirectX 12 没有D3DPOOL_MANAGED
. 这是因为这些版本的 Direct3D 没有 Direct3D 9 所具有的“丢失设备”。他们只有在您的游戏/应用程序运行时 GPU 崩溃或更新驱动程序时发生“设备移除”。请参阅Microsoft 文档。
从 Windows Vista 开始,显存由操作系统管理。纹理被分页进出显存,并由系统内存自动支持。您可以使用SetEvictionPriority方法提供提示。
推荐阅读
- xamarin.forms - Xamarin.Forms - 信息丰富的应用布局建议/方向
- android - 返回主活动后取消选中导航抽屉中的菜单项
- sql-server - 消息 4104,级别 16,状态 1,第 8 行无法绑定多部分标识符“xx.ParseThis”
- c# - Regex to find URL works on Regex101.com but not in C# code
- maven - 在 teamcity 中的构建之间共享属性不起作用
- python - 多个窗口上的 OpenCV gving 错误“ASSERT:文件 qasciikey.cpp,第 495 行中的“false””
- maven - Maven 无法解决依赖关系,因为找不到父 jar
- java - Android java添加widget到view问题
- javascript - 只需尝试在 javascript 中每 1 秒向下滚动一次
- mysql - Mysql:根据另一列值更新列