青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Video memory, AGP memory and System memory

在讀DirectXSDK中關(guān)于內(nèi)存池的描述時,對于Video memory, AGP memory and System memory這三個概念比較模糊,google了一下,找到了一些很好的解釋。引用如下:

Those two identifiers are hints to the driver for how the buffer will be used, to optimize how the card accesses the data. They make sense even without AGP memory.

On systems with AGP memory, there are three classes of memory:

1) System Memory. This is cached, and reasonably fast to read from and write to with the CPU. However, it typically needs an additional copy before the graphics card can use it. System and scratch pool memory goes here.

2) AGP Memory. This is still CPU-local RAM, but it is not cached. This means that it's slow to read from, and it's slow to write to, UNLESS you write sequentially, without doing too much other memory traffic inbetween, and overwrite every byte, so that the write combiners don't need to fetch lines from RAM to do a combine. Thus, generating software-transformed vertices as a stream into this buffer might still be fast. For the GPU, the AGP memory is directly accessible, so no additional copy is needed. Dynamic pool memory goes here.

3) Video Memory. This is RAM that's local to the GPU. It typically has insanely high throughput. It is accessible over the bus for the CPU, but going over the bus is really slow; typically both for reading and for writing. Thus writing directly into this memory (or even worse, reading out of it), is not recommended. Default pool memory goes here.

On systems with PCI-Express, some of the AGP vs system memory differences are reduced, but the usage hints you're giving the driver ("I will change the data by writing it sequentially" vs "I will not change the data much") are still useful for optimizing performance.

Video memory is the memory chips physically located on the card. The card can easily access this memory, while reading it from the CPU is extremely slow.

AGP memory a part of your main memory on the motherboard that has been set aside for talking to the graphics card. The card and your CPU can access this memory at a decent speed.

This pageshows that your BIOS "AGP aperture size" controls the size of your AGP memory, and explains how "reducing the AGP aperture size won't save you any RAM. Again, what setting the AGP aperture size does is limit the amount of RAM the AGP bus can appropriate when it needs to. It is not used unless absolutely necessary. So, setting a 64MB AGP aperture doesn't mean 64MB of your RAM will be used up as AGP memory. It will only limit the maximum amount that can be used by the AGP bus to 64MB (with a usable AGP memory size of only 26MB)."

1) video memory can mean one of two things depending on the context the term is used in:

a. video memory is generally any memory which is used by the graphics chip.

b. video memory (correctly "local video memory") is memory that exists on the graphic card itself (i.e. RAM chips that live on the graphics card, they are 'local' to the graphics chip).


2) AGP memory is main memory on your system motherboard that has been specially assigned for graphics use. The "AGP Aperture" setting in your system BIOS controls this assignment. The more you have assigned for AGP use, the less you have for general system use. AGP memory is sometimes also known as "non-local video memory".


3a) 'Local' video memory is very fast for the graphics chip to read from and write to because it is 'local' to the graphics chip.

3b) 'Local' video memory is extremely slow to read from using for the system CPU, and reasonably slow to write to using the system CPU.
This is for a number of reasons; partly because the memory is physically on a different board (the graphics card) to the CPU (i.e. it's not 'local' for the CPU); partly because that memory isn't cached at all for reads using the CPU, and only burst cached for writes; partly due to the way data transfers over bus standards such as AGP must be done.


4a) AGP memory is reasonably fast for the graphics chip to read from or write to, but not as fast as local video memory.

4b) AGP memory is fairly slow to read from using the system CPU because it is marked as "Write Combined" so any reads don't benefit from the L2 and L1 caches (i.e. each read is effectively a cache-miss).
AGP memory is however faster than local video memory to read from using the CPU since it is local to the CPU.

4c) AGP memory is reasonably fast to write to using the system CPU. Although not fully cached, "Write Combined" memory uses a small buffer that collects sequential writes to memory (32 or 64 bytes IIRC) and writes them out in one go. This is why sequential access of vertex data using the CPU is preferable for performance.


5) D3DUSAGE_DYNAMIC is only a hint to the display driver about how you intend using that resource, usually it will give you AGP memory, but it isn't guaranteed (so don't rely it!).


6) Generally, for vertex buffers which you need to Lock() and update using the CPU regularly at runtime should be D3DUSAGE_DYNAMIC, and all others should be static.


7) Graphics drivers use techniques such as "buffer renaming" where multiple copies of the buffer are created and cycled through to reduce the chance of stalls when dynamic resources are locked. This is why it's essential to use the D3DLOCK_DISCARD and D3DLOCK_NOOVERWRITE locking flags correctly if you want good performance. It's also one of the many reasons you shouldn't rely on the data pointer from a Lock() after the resource has been unlocked.


8) General advice for good performance:
- treat all graphics resources as write-only for the CPU, particularly those in local video memory. CPU reads from graphics resources is a recipe for slowness.

- CPU writes to locked graphics resources should be done sequentially.

- it's better to write all of a vertex out to memory with the CPU than it is to skip elements of it. Skipping can harm the effectiveness of write combining, and even cause hidden reads in some situations (and reads are bad - see above).


since the "local video memory" is fast for video card to manipulate, and the video card dedicated to GRAPHICS PROCESS,why bother to use the "AGP memory"?
is that only because the "local video memory" may be not enough for graphic data storage?
what role does the CPU play in the process of graphics??

Yes. That's one of the main reasons. AGP comes from a time (~10 years ago!) when a typical graphics card would have, say, 2MB of local video memory and a typical PC system had 64-128MB of main system memory, so it made sense to set some system memory aside for situations where there wasn't enough local memory.

In these days of monster graphics cards with 512MB of local video memory, it's less likely used as an overflow.


Another reason is dynamic graphics data - any data that needs to be regularly modified with the CPU is usually better off in AGP memory (it's write combined, but it's local to the CPU too, so uses less CPU time to access)
Not very much these days. Mostly application-side jobs like writing vertex data into locked buffers, object culling, traversing scene graphs, loading resources into main memory, things like that.
On the D3D and device driver side: handling the D3D API, swizzling and other conversion when some types of resources are locked/unlocked [I believe some GPUs can even do their own swizzling now though], and setting up the command buffer for the GPU.

Before hardware T&L, the CPU also handled all vertex processing.

The fact that modern GPUs now handle so much of the graphics pipeline makes avoiding unnecessary serialization between CPU and GPU all the more important (i.e. stalls where one has a resource locked and the other wants to use it), thus things like buffer renaming. Serialization between CPU and GPU throws away the GPUs processing ability.

原貼:http://www.gamedev.net/community/forums/topic.asp?topic_id=388869

posted on 2007-07-11 09:47 隨便寫寫 閱讀(1167) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計

常用鏈接

留言簿(1)

隨筆分類(30)

隨筆檔案(16)

文章分類(18)

文章檔案(9)

鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            av不卡免费看| 最近中文字幕日韩精品| 一区二区三区产品免费精品久久75 | 老鸭窝毛片一区二区三区| 亚洲欧美国产77777| 国产精品日韩欧美一区| 午夜亚洲影视| 欧美一区观看| 亚洲电影在线| 亚洲精品影院| 国产精品日韩在线| 久久国产精品一区二区| 欧美自拍偷拍午夜视频| 亚洲大片在线| 亚洲人成欧美中文字幕| 欧美日韩一区二区视频在线| 午夜在线a亚洲v天堂网2018| 久久国产精品色婷婷| 亚洲精品免费网站| 亚洲免费一级电影| 亚洲福利一区| 亚洲视频网站在线观看| 伊人夜夜躁av伊人久久| 最新69国产成人精品视频免费| 国产精品久久久久天堂| 久久亚洲私人国产精品va| 美女精品在线观看| 欧美亚洲一区二区在线观看| 美女久久网站| 欧美中文字幕精品| 欧美激情亚洲另类| 久久精品日韩欧美| 欧美日韩精品久久久| 久久男人资源视频| 欧美日本一区二区高清播放视频| 欧美在线1区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲一级黄色片| 久久尤物视频| 久久国产直播| 国产精品久久久免费| 亚洲高清不卡一区| 国语自产偷拍精品视频偷 | 午夜在线精品偷拍| 欧美精品激情blacked18| 久久精品色图| 国产精品理论片| 亚洲欧洲综合| 亚洲三级视频| 久久婷婷丁香| 老司机亚洲精品| 国产区在线观看成人精品| 日韩午夜高潮| 99精品欧美一区| 免费不卡中文字幕视频| 久久天堂成人| 国产精品综合久久久| 一区二区久久| 一本一本大道香蕉久在线精品| 久久久久久久综合日本| 久久香蕉精品| 亚洲国产二区| 老色批av在线精品| 欧美成人在线网站| 亚洲精品久久嫩草网站秘色| 久久天天狠狠| 亚洲第一福利视频| 亚洲国产视频一区二区| 久久乐国产精品| 欧美成人精品不卡视频在线观看| 黄网站色欧美视频| 久久先锋资源| 亚洲高清在线精品| 一本色道久久88综合亚洲精品ⅰ| 欧美日本三级| 一区二区高清| 欧美在线观看天堂一区二区三区| 国产精品入口66mio| 性做久久久久久久久| 久久久精品五月天| 在线看欧美视频| 欧美国产专区| 亚洲午夜精品视频| 欧美专区中文字幕| 亚洲动漫精品| 欧美激情视频给我| 亚洲夜晚福利在线观看| 久久久久久国产精品mv| 在线看不卡av| 欧美日韩另类在线| 午夜一级在线看亚洲| 欧美1区视频| 亚洲天堂网在线观看| 国产三区二区一区久久| 美女福利精品视频| 亚洲色在线视频| 久久亚洲精品伦理| 一二美女精品欧洲| 国产一区二区三区无遮挡| 久久久中精品2020中文| 亚洲最新色图| 裸体女人亚洲精品一区| 99视频在线观看一区三区| 国产精品三级视频| 美女啪啪无遮挡免费久久网站| 亚洲精选中文字幕| 久久视频免费观看| 亚洲一区二区成人在线观看| 国产在线欧美日韩| 欧美日韩久久| 蜜桃精品久久久久久久免费影院| 一本色道久久综合亚洲精品小说 | 欧美一区影院| 亚洲精品综合| 伊大人香蕉综合8在线视| 国产精品国产三级国产aⅴ浪潮| 久久精品视频免费播放| 日韩一本二本av| 欧美激情四色| 久久久久国色av免费观看性色| 一本久久a久久精品亚洲| 在线免费观看一区二区三区| 国产精品99一区| 欧美国产在线电影| 久久视频在线视频| 久久国产精品黑丝| 亚洲欧美国产日韩天堂区| 亚洲激情专区| 欧美福利电影网| 美女精品视频一区| 久久久久久亚洲精品杨幂换脸 | 国产亚洲欧美日韩日本| 欧美日韩伦理在线| 欧美国产免费| 欧美1区2区3区| 久久伊人免费视频| 久久国产精品久久久久久久久久 | 一本到高清视频免费精品| 亚洲高清二区| 亚洲二区在线| 亚洲电影av| 亚洲国产成人一区| 欧美激情精品久久久久久大尺度| 久久婷婷久久一区二区三区| 久久精品国产清自在天天线 | 亚洲福利电影| 亚洲二区免费| 91久久线看在观草草青青| 亚洲国产精品嫩草影院| 在线不卡a资源高清| 亚洲国产精品第一区二区三区 | 国产精品va在线播放| 欧美视频一区二区三区在线观看| 欧美激情中文不卡| 欧美日韩精品一区二区天天拍小说| 欧美激情导航| 欧美无乱码久久久免费午夜一区| 国产精品ⅴa在线观看h| 国产麻豆日韩| 一区二区三区在线视频播放| 亚洲国产精品久久久久久女王| 亚洲国产成人久久| 一本到12不卡视频在线dvd| 亚洲一区二区三区在线观看视频| 亚洲一区二区欧美| 久久久久久久综合日本| 欧美暴力喷水在线| 亚洲精品日韩在线| 亚洲女人av| 久久婷婷国产麻豆91天堂| 欧美福利一区二区三区| 国产精品护士白丝一区av| 国产日韩1区| 最新中文字幕一区二区三区| 在线视频你懂得一区| 欧美在线观看视频一区二区三区| 久久久水蜜桃av免费网站| 亚洲黄色在线| 性做久久久久久久久| 暖暖成人免费视频| 国产精品免费在线| 雨宫琴音一区二区在线| 亚洲一区二区欧美日韩| 久久久伊人欧美| 日韩午夜激情电影| 久久久久久一区| 欧美日韩在线免费视频| 尤物精品在线| 欧美亚洲一区二区三区| 亚洲欧洲一区二区三区久久| 香蕉av777xxx色综合一区| 欧美成人免费一级人片100| 国产精品欧美一区二区三区奶水| 在线观看成人一级片| 欧美一区二区成人| 日韩视频在线观看| 欧美99在线视频观看| 国产综合亚洲精品一区二| 亚洲天堂网站在线观看视频| 欧美成人精品福利|