Linked display adapter
每一个在LDA(linked display adapter)上的物理适配器都能支持GpuMmu或IoMmu或这两种寻址模式分别支持。
IoMmu support
每一个在LDA(linked display adapter)上的物理适配器都能支持GpuMmu或IoMmu或这两种寻址模式分别支持。
DxgkDdiCreateDevice 将调用支持IoMmu的逻辑适配器。
GpuMmu support
在一个LDA上的所有物理适配器都分享同一个进程虚拟地址空间,但是每个GPU都拥有自己的页表。通常来说,每个GPU拥有的页表内容都不一样。
每个物理适配器都允许拥有专属的GpuMmu能力(页表段,页表更新节点, 虚拟地址分布,隐含的页表格式,大小,等)。而唯一的限制是所有的物理适配器都必须拥有一段同样大小的虚拟地址。GpuMmuCaps.VirtualAddressBitCount 指定了所有适配器的虚拟地址的大小。The driver should clamp the address space size to the smallest of the physical GPUs(PS: 没有理解这一句).
MS DXGK将询问LDA上的每一个物理适配器的GpuMmu的能力。DxgkDdiQueryAdapterInfo(DXGKQAITYPE_PAGETABLELEVELDESC) 将会为在每个物理适配器所调用。
DxgkDdiQueryAdapterInfo(DXGKQAITYPE_GPUMMUCAPS)中参数 InputDataSize 和 pInputData 指向DXGK_GPUMMUCAPSIN。
DxgkDdiQueryAdapterInfo(DXGKQAITYPE_PAGETABLELEVELDESC)参数InputDataSize和pInputData 指向 DXGK_PAGETABLELEVELDESCIN。