D3D中的AGP内存、系统内存、显存的理解

转自 http://www.cnblogs.com/lancidie/archive/2011/05/20/2052094.html

学习D3D,应该对这三个内存理解,网上收集了一下相关资料,收藏下来。

三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点用用了!这就是AGP内存的由来,在我们电脑BIOS中有个设置AGP Aperture的选项,这里就是设置显卡可以使用系统内存的最大允许值,通常是设置为64M。注意,这里只是说最大允许值,并不是一开机他就把这64M给拿走了,你的256内存就变成192了!而是你的内存依然还是256M,只是限制显卡最多可以使用64M的系统内存。

再说说这三个内存的速度的不同吧!

系统内存当然是人家CPU读和写操作最快啦!而显卡就会相对于使用自己的显存慢上很多很多!
AGP内存是显卡读和写的速度一般,当然肯定没有显卡使用显存速度快啦!CPU就相对复杂点了,CPU读取AGP内存速度很慢,但是写的速度却并不会慢,而是速度一般,比使用系统内存慢那么一点,也就是说适合CPU去写但不适合读。有人就要问了,同样是系统内存只不过名字不一样,咋速度的就有差别了呢?这个嘛,我也不太清楚,老外没有说的太详细,大家只要记住就行了!
最后说的就是显存了,这个很简单,当然是显卡读和写的速度最快,而CPU读和写的速度肯定要慢好多的!
说了三个内存的区别,现在说说他们都有什么用处吧!这里涉及一个D3DUSAGE枚举量:

D3DUSAGE_DYNAMIC,这个变量是在你创建资源时使用到的,它指示D3D将资源指定为动态的,而动态的意思就是需要经常修改,修改通常是CPU进行修改,所以动态资源应该放在AGP内存中。这样对速度的影响可以减至最小。

D3DUSAGE_WRITEONLY标志您所创建的资源只允许写操作。使用这个标志可以让设备将这个资源放到内存中最适合进行写处理和渲染的区域。如果没有使用D3DUSAGE_WRITEONLY标志,那么设备将假设您创建的资源既用来读也用来写,那么设备将很可能选择一块内存区域,读和写操作的速度都适中的地方。这将牺牲一部分处理和渲染速度。

对D3DLOCK的标志和资源创建类型也有影响
但是三种内存是另外一种优化访问的方法,因为比如粒子系统就需要使用AGP内存,因为他需要CPU经常进行修改,又需要图形处理卡经常读取,如果放在显存那么CPU修改的效率太低了!如果放在内存,那么图形处理卡访问的速度太慢!所以这三种内存还是需要分别清楚的!

时间: 2024-08-06 11:24:31

D3D中的AGP内存、系统内存、显存的理解的相关文章

DELL R720系统内存指南

该文章摘自于:http://www.dell.com/support/article/cn/zh/cndhs1/SLN153646/zh#issue3,仅供个人作为笔记使用 PowerEdge R720系统内存指南 目录: R720系统内存指南 最小/最大内存容量 内存模块安装指南/安装规则 内存模式特定指南 卸下/安装系统内存 系统内存一般故障诊断 使用系统诊断程序 文章摘要:本文介绍了PowerEdge R720服务器的内存功能.内容包括支持的内存类型.安装规则和一般故障诊断. 问题1:R7

PowerEdge R720系统内存指南

文章摘要:本文介绍了PowerEdge R720服务器的内存功能.内容包括支持的内存类型.安装规则和一般故障诊断. 问题1:R720系统内存指南 Power Edge R720支持DDR3无缓冲ECC DIMM (ECC UDIMM).已注册的DIMM (RDIMM)和减少负载的DIMM (LRDIMM). Power Edge R720支持DDR3无缓冲ECC DIMM (ECC UDIMM).已注册的DIMM (RDIMM)和减少负载的DIMM (LRDIMM). 注:戴尔仅支持带有ECC的

关于内存与显存

内存 Memory DRAM-Dynamic Random Access Memory 基本原理 利用电容内存储的电荷多寡代表0与1 每个bit只用到一个晶体管加一个电容 但电容会漏电,因此内存需要周期性刷新 同时电容充放电需要过程,因此刷新频率不可能无限提升 因此DRAM频率很容易达到上限,即便工艺先进也收效甚微 内存的三种频率 核心/IO/等效 通常所说的DDR3-1600并非真正频率,而是等效频率 内存三种频率指标 核心频率.时钟频率.有效数据传输频率 核心频率:内存Cell阵列的刷新频率

关于显卡的显存

显存,也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据.如同计算机的内存一样,显存是用来存储要处理的图形信息的部件. 作用 显存 如同计算机的内存一样,显存是用来存储要处理的图形信息的部件.我们在显示屏上看到的画面是由一个个的像素点构成的,而每个像素点都以4至32甚至64位的数据来控制它的亮度和色彩,这些数据必须通过显存来保存,再交由显示芯片和CPU调配,最后把运算结果转化为图形输出到显示器上.显存和主板内存一样,执行存贮的功能,但它存贮的对像是显卡输出到显示器上的每个像素

Mac更改显存

今天尝试了 发现很有效果 不敢独享 所以贴一下,如果我火星了 ..就无视我吧 问题表现为: 1. 随机出现花屏,和 横线. 随机出现死机2. 随着再次渲染(例如桌面背景切换),花屏或横线会消失3. 当观看电影,游戏,或使用占内存的程序时,花屏或横线出现几率变大4. 开机时不容易出现花屏或横线 若你出现的问题和上述明显不同,那就不一定有效果 这个问题我查了很久 基本觉得应该是MAC对需要的要求大于实际分配的显存导致的所以很多人发帖说加到8G内存 变成512M显存就解决了 这边就是手动把显存调整上去

[C#绘图]Bitmap锁定到系统内存中

具体方法Bitmap.LockBits方法的实现功能是讲Bitmap锁定到系统内存中. 使用LockBits方法,可以在系统内存中锁定现有的位图,以便通过编程方式进行修改.尽管用LockBits方式进行大规模更改可以获得更好的性能,但是仍然可以用SetPixel方法来更改图像的颜色. 函数的返回值的类型是BitmapData,包含选定Bitmap区域的特性. private void LockUnlockBitsExample(PaintEventArgs e) { // Create a ne

java中的各种数据类型在内存中存储的方式

1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间.释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作.但同时,它也加重了JVM的工作.因为,GC为了能够正确释放对象,GC必须监控每一个对象的运行状态,包括对象的申请.引用.被引用.赋值等,GC都需要进行监控. 2.什么叫java的内存泄露 在j

优化系统内存的九大秘技

优化系统内存的九大秘技 如何优化内存的管理,提高内存的使用效率,尽可能地提高运行速度,是我们所关心的问题.下面介绍在Windows操作系统中,提高内存的使用效率和优化内存管理的几种方法. 1.改变页面文件的位置 其目的主要是为了保持虚拟内存的连续性.因为硬盘读取数据是靠磁头在磁性物质上读取,页面文件放在磁盘上的不同区域,磁头就要跳来跳去,自然不利于提高效率.而且系统盘文件众多,虚拟内存肯定不连续,因此要将其放到其他盘上.改变页面文件位置的方法是:用鼠标右键点击“我的电脑”,选择“属性→高级→性能

在Activity中使用Thread导致的内存泄漏

原文链接 : Activitys, Threads, & Memory Leaks 原文作者 : AlexLockwood 译文出自 : 开发技术前线 www.devtf.cn 译者 : chaossss 校对者: yinna317 状态 : 完成 注:这篇博文涉及的源码可以在 GitHub 上面下载哦 做 Android 开发最常遇到的问题就是在 Activity 的生命周期中协调耗时任务,避免执行任务导致不易察觉的内存泄漏.不妨先读一读下面的代码,代码写了一个简单的 Activity,Act