Direct3D11在哪里分配资源对象?

亚伦·戈登(Aaron Gordon)

我已经阅读了很多有关Direct3D11的文章(包括堆栈溢出!),在我的所有研究中,我都无法最终回答以下问题:

当创建资源对象(即Buffer或Texture对象)时,例如使用pDevice-> CreateBuffer(),它将存储在哪里?是在系统RAM上还是在GPU的Video-RAM上?还是我完全误解了资源对象是什么的基本性质?

显然,您用来填充资源的任何数据(例如顶点和索引数组)都存储在您(程序员)放置在任何地方的位置,但是一旦将数据映射到Resource上,就将其复制到哪里?(我假设,由于必须对资源进行映射和取消映射以进行读/写保护,因此实际上将映射的数据复制到了VRAM中)。此外,资源对象本身在哪里实例化?

在此先感谢您提供的所有帮助!

拉贾

在创建资源期间,您的Create *调用将遍历D3D运行时,UMD(用户模式图形驱动程序)和KMD(内核模式)。KMD负责页表管理(在共享虚拟内存的情况下,它可以与OS通讯,但是可以忽略它)。如果您的资源不使用SVM,则将其渗入图形内存。

用于处理器图形的图形内存(例如Intel Iris)是您的系统RAM。因此,它实际上只是从应用程序虚拟地址空间到KMD的副本。

对于独立显卡,数据驻留在显卡的视频RAM中。GPU只能处理视频RAM中的数据。(我不确定共享虚拟内存如何用于离散图形)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Direct3D11是否包括色彩空间转换?

来自分类Dev

如何处理Direct3D11中的backbuffer?

来自分类Dev

Direct3D11是否包括色彩空间转换?

来自分类Dev

为什么Direct3D11的输入汇编程序仅绘制1个对象?

来自分类Dev

在Direct3D11中模拟Direct3D9固定功能管道

来自分类Dev

在其他D3D11设备上复制Direct3D11纹理

来自分类Dev

当SampleDesc.Count> 1时,Direct3D11 DEBUG MODE在最终的COM版本中崩溃

来自分类Dev

当SampleDesc.Count> 1时,Direct3D11 DEBUG MODE在最终的COM版本上崩溃

来自分类Dev

JVM在哪里分配对象

来自分类Dev

静态对象的非静态成员分配在哪里?

来自分类Dev

程序在哪里分配用于抛出对象的内存?

来自分类Dev

静态 shared_ptr 的底层对象在哪里分配内存?

来自分类Dev

在哪里可以找到不同国家/地区的d3.js的语言环境对象

来自分类Dev

QtCreator资源别名在哪里?

来自分类Dev

QtCreator资源别名在哪里?

来自分类Dev

在哪里创建对象?

来自分类Dev

Direct3D 11中具有不同数量图元的图形对象

来自分类Dev

Visual Studio 2013 Ultimate中的SQL Server对象资源管理器在哪里?

来自分类Dev

Direct3D纹理资源生命周期

来自分类Dev

从类对象开始执行功能指针时,该指针分配在哪里?

来自分类Dev

这个Oracle对象在哪里?

来自分类Dev

在哪里放置资源文件?

来自分类Dev

在哪里可以找到软件资源?

来自分类Dev

我将图像资源放在哪里?

来自分类Dev

我的人力资源在哪里?

来自分类Dev

流星,在哪里放置d3代码?

来自分类Dev

Unity3D刚安装在哪里?

来自分类Dev

std :: list元素在哪里分配?

来自分类Dev

CLR在哪里分配本地内存池?

Related 相关文章

热门标签

归档