Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A parancspuffer Windows grafikus vermen keresztüli átviteléhez a következő műveletsort kell végrehajtani:
A felhasználói módú megjelenítési illesztőprogram (UMD) parancspuffer-küldést kezdeményez, ha a Direct3D futtatókörnyezet a következő UMD-függvények egyikét hívja meg a megadott művelet végrehajtásához:
- Az Present függvény a grafikus elemek megjelenítéséhez.
- A Flush függvény a hardverparancsok elküldéséhez.
- Az aktuális parancskötegben használt erőforrás zárolásához használt Lock függvény.
Az UMD mindig kezdeményez egy parancspuffer-küldést, ha a parancspuffer megtelt.
Az UMD meghívja a Direct3D futtatókörnyezet pfnRenderCb függvényét, hogy küldje el a parancspuffert a futtatókörnyezetnek.
A DirectX grafikus kernel alrendszere (Dxgkrnl) meghívja a kernel módú megjelenítési miniportillesztő (KMD) DxgkDdiRender vagy DxgkDdiRenderKm függvényét a parancspuffer ellenőrzéséhez, egy DMA-puffer hardverformátumban való írásához, és létrehoz egy foglalási listát, amely leírja a használt felületeket. Vegye figyelembe, hogy a DMA-puffer még nem lett javítva (azaz hozzárendelt fizikai címek). Jegyzet Ha a futtatókörnyezet az UMD Present függvényének meghívásával indította el a parancspuffer-küldést, a grafikus alrendszer a DxgkDdiPresent függvényt hívja meg a DxgkDdiRender vagy a DxgkDdiRenderKm helyett.
A videomemória-kezelő meghívja a KMD DxgkDdiBuildPagingBuffer függvényét, hogy hozzon létre speciális célú DMA-puffereket, más néven lapozópuffereket, amelyek áthelyezik a DMA-puffert a GPU által hozzáférhető memóriába és onnan elkísérő foglalási listában megadott foglalásokat. További információért lásd a videomemória-erőforrások lapozása részt.
A GPU-ütemező meghívja a KMD DxgkDdiPatch függvényét, hogy fizikai címeket rendeljen a DMA-puffer erőforrásaihoz. Az ütemezőnek azonban nem kell meghívnia a DxgkDdiPatchet , hogy fizikai címeket rendeljen a lapozópufferhez, mert a lapozópuffer fizikai címei a DxgkDdiBuildPagingBuffer hívás során lettek átadva és hozzárendelve.
A GPU-ütemező meghívja a KMD DxgkDdiSubmitCommand függvényét, hogy kérje az illesztőprogramot a lapozópuffernek a GPU végrehajtási egységéhez történő sorba állítására.
A GPU-ütemező meghívja a KMD DxgkDdiSubmitCommand függvényét, hogy megkérje az illesztőprogramot, hogy sorba állítsa a DMA-puffert a GPU végrehajtási egységéhez. A GPU-nak küldött összes DMA-puffer tartalmaz egy kerítésazonosítót. Miután a GPU befejezte a DMA-puffer feldolgozását, a GPU megszakítást hoz létre.
A KMD értesítést kap a megszakításról a DxgkDdiInterruptRoutine függvényben. A KMD-nek a GPU-ból be kell olvasnia az imént befejezett DMA-puffer kerítésazonosítóját.
A KMD meghívja a DxgkCbNotifyInterrupt függvényt , hogy értesítse a GPU-ütemezőt a DMA-puffer befejezéséről.
A KMD-nek meg kell hívnia a DxgkCbQueueDpc függvényt egy halasztott eljáráshívás (DPC) várólistára helyezéséhez.
A rendszer értesíti a KMD DPC-jét, hogy kezelje a DMA pufferfeldolgozásának nagy részét.