Windows驱动_WDDM之四

          人有时很奇怪,有时很多愁,有时很善感,有时候觉得自己很委屈,为什么,自己会是这样,觉得对自己是多么的不公,但是回头想想,其实也是公平的,包含整体的公平,也许这就是自己的人生。我应该去接受它。更加的努力。其实,我要相信自己,现在不比别人差,以后要比别人更强。其实,现在还是没有强大的足够的内心而已。人生是长跑,前面既然,这样那样的原因落后,后面就要奋起直追。
     
      下面几个章节,介绍显存的管理和GPU的执行模式。
     
       1,处理内存段。
       2,处理命令和DMA缓冲区。
       3,GDI的硬件加速。
       4,显存的提供和回收。
       5,GPU的抢占。


       1.1,使用内存段地址描述GPU的地址空间。
             
            在显存管理器管理GPU的地址空间之前,显示的小端口驱动必须使用内存段来描述GPU的地址空间,来和显存管理器交互。显示的小端口驱动可以创建内存的段产生一个虚拟的显存资源。驱动可以配置硬件支持的内存段的类型,比如帧内存或系统光圈内存。


            在驱动的初始化过程中,驱动必须返回一个可被显存管理器管理的不同内存资源类型的列表。驱动可以在DxgDdiQueryAdapterInfo调用时指定内存段的数量,以及段的类型。驱动通个DXGK_SEGMENTDESCRIPTION结构来描述每一个段。更多个信息可以参考初始化内存段一节。
            在这以后,段的数量和类型就会一直不变。当然,如果需要,驱动可以重新配置每个段的地址的大小。显存管理器确保,在确定的每一种指定的段上面,所有的进程都可以平等的得到资源。显存管理器管理所有的段都是相对独立的,段是不会重叠的。所以显存管理器不管应用程序是否当前已经拥有另一个段的资源,而一样会平等的将这一个短的资源分配给应用程序。
            驱动为每一个内存段分配一个段的标示符。后面,当显存管理器请求去创建分配视频资源时而且渲染这些资源时,驱动就会标示这些支持的请求和指定的段,这是为了,驱动可以提前提供这些段给显存管理器使用。更多的信息,可以参考在创建段的时候指定段。
            驱动不需要指定所有的在内存段中可以被GPU应用的显存资源,但是驱动必须指定显存管理器可以使用的系统中所有进程的内存资源。举例来说,顶点伪代码是一个确定可以直接在GPU地址空间中执行的功能。但是显存管理器不能管理这段内存。因为伪代码在所有的进程中都可以应用。而不是在独立进程中。但是,显存管理器必须在驱动的相应的指定的内存段中为这些顶点,字体,渲染目标,或者应用程序指定的渲染,分配显存资源,因为资源类型对于所有进程都是平等的。

            下面这几幅图,显示驱动怎样从GPU地址空间中配置内存段。

             

             需要注意的是,显存一般都是被显存管理器隐藏的,不能被映射到用户空间,或者给指定的进程独占使用。  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值