zoukankan      html  css  js  c++  java
  • 谈一谈AGP

    typedef enum D3DPOOL { 
      D3DPOOL_DEFAULT      = 0,
      D3DPOOL_MANAGED      = 1,
      D3DPOOL_SYSTEMMEM    = 2,
      D3DPOOL_SCRATCH      = 3,
      D3DPOOL_FORCE_DWORD  = 0x7fffffff
    } D3DPOOL, *LPD3DPOOL;
    

    D3DPOOL_DEFAULT

    在"显存(video memory)"中,包括"本地显存(local video memory)"和"AGP内存",表明资源将按照"设备访问(Device Acess)",这里设备指显卡。

    D3DPOOL_MANAGED

    当需要时自动拷贝到显卡可直接访问的内存中(device-accessible memory),在设备丢失时不需要重建.

    D3DPOOL_SYSTEMMEM

    资源位于系统内存中,不能直接被设备访问.会消耗系统内存,而非可分页内存.

    D3DPOOL_SCRATCH

    占用系统内存,但是格式什么的都无限制.

    D3DPOOL_FORCE_DWORD

    凑数的,没实际用途.

    什么是本地显存?什么是AGP内存?

    本地显存是指显卡本身的内存,物理上在显卡上.AGP实际是一块特殊的系统内存区域,位于主板上.这段区域是CPU和GPU共享资源区,CPU写入快读取慢,GPU读取很快,但是没有直接读取本地显存快.

    AGP如何工作?

    AGP的全称是"加速图形接口Accelerated Graphics Port".专门用于电脑和显卡通讯.1996年intel把它带入公众视野,之前使用的是PCI总线(Peripheral Component Interconnect bus).PCI总线是条用于显卡向CPU传输信息的通路.但是PCI不是独占的,其他设备也使用PCI向CPU发送信息,当所有外围设备都通过PCI向CPU发信息后,就需要等候CPU一条条的执行.于是瓶颈诞生了.AGP是基于PCI设计的,但是不是一个总线,是基于点对点的GPU和CPU通讯,这就极大加速了复杂图形显示时信息传输瓶颈.

    AGP是如何加速图形渲染的呢

    专用的端口:显卡可以完全占用这条数据路线,解决了数据阻塞的问题.

    流水线处理: AGP使GPU在接收到渲染图形的信息后,请求所有所需信息并一次性发送渲染指令.而回到PCI时代,情况会变成:显卡收到图像的高,等待...显卡收到图像的宽,等待...最后收到所有信息,发送渲染指令.

    边带寻址: 发送信息需要From和To,PCI是把这个信息同工作数据打包在一起.为了辨明这个信息,就需要拆包解析,进而导致占用时间和空间.AGP会为每个工作数据包加上明确的寻址信息.省去了PCI需要消耗的时间.

  • 相关阅读:
    JavaScript实现类的private、protected、public、static以及继承
    OSS网页上传和断点续传(STSToken篇)
    OSS网页上传和断点续传(OSS配置篇)
    Linq sum()时遇到NULL
    SQLSERVER事务日志已满 the transaction log for database 'xx' is full
    笔记本高分辨软件兼容问题,字体太小或模糊
    H5上传图片之canvas
    An error occurred while updating the entries. See the inner exception for details.
    无限级结构SQL查询所有的下级和所有的上级
    SQLserver 进程被死锁问题解决
  • 原文地址:https://www.cnblogs.com/Baesky/p/AGP_THEROY.html
Copyright © 2011-2022 走看看