Bagikan melalui


DXGKCB_CREATECONTEXTALLOCATION fungsi panggilan balik (d3dkmddi.h)

DXGKCB_CREATECONTEXTALLOCATION mengalokasikan konteks GPU atau konteks khusus perangkat.

Sintaks

DXGKCB_CREATECONTEXTALLOCATION DxgkcbCreatecontextallocation;

NTSTATUS DxgkcbCreatecontextallocation(
  [in/out] INOUT_PDXGKARGCB_CREATECONTEXTALLOCATION unnamedParam1
)
{...}

Parameter

[in/out] unnamedParam1

Penunjuk ke struktur DXGKARGCB_CREATECONTEXTALLOCATION yang menentukan atribut konteks yang akan dialokasikan.

Menampilkan nilai

DXGKCB_CREATECONTEXTALLOCATION mengembalikan STATUS_SUCCESS jika berhasil. Jika tidak, ia mengembalikan salah satu kode kesalahan yang ditentukan dalam Ntstatus.h.

Keterangan

Dimulai dengan WDDM 1.2, driver miniport tampilan dapat mengalokasikan konteks khusus GPU (alokasi konteks GPU) atau konteks khusus perangkat (alokasi konteks perangkat).

Alokasi konteks GPU memungkinkan GPU untuk menyimpan status konteks dari buffer DMA yang didahului di tengah eksekusinya. Driver membuat alokasi yang terkait dengan konteks GPU untuk menyimpan statusnya saat diperlukan. Sistem operasi memastikan bahwa alokasi konteks adalah residen sebelum perintah dari konteks ini ditempatkan dalam antrean eksekusi perangkat keras GPU. Konteks akan tetap tinggal sampai perintah dari konteks lain ditempatkan dalam antrean eksekusi perangkat keras.

Selain itu, sistem operasi mendukung peralihan konteks GPU malas dengan mengasumsikan bahwa status konteks perangkat keras dipertahankan pada GPU setelah menyelesaikan perintah yang termasuk dalam konteks. Dengan cara ini, konteks hanya diaktifkan pada GPU ketika perintah dari konteks yang berbeda dikirimkan ke antrean perangkat keras.

DXGKCB_XXX diimplementasikan oleh Dxgkrnl. Untuk menggunakan fungsi panggilan balik ini, atur anggota DXGKARGCB_ALLOCATEPAGESFORMDL lalu panggil DxgkCbCreateContextAllocation melalui DXGKRNL_INTERFACE.

Alokasi konteks GPU

Alokasi konteks GPU hanya dapat dilakukan untuk konteks non-sistem. Driver miniport tampilan membuat konteks ini dengan memanggil DxgkDdiCreateContext. Untuk membuat konteks non-sistem, driver mengatur anggota SystemContext dari struktur DXGK_CREATECONTEXTFLAGS ke nol, dan meneruskan penunjuk ke struktur ini dalam parameter pCreateContext .

Alokasi konteks perangkat mengikuti model serupa, kecuali bahwa ia akan tetap tinggal untuk konteks apa pun yang termasuk dalam perangkat yang terkait dengannya. Model ini memungkinkan driver menggunakan alokasi konteks GPU untuk menyimpan data area penyimpanan konteks GPU (CSA) dan menggunakan alokasi konteks perangkat untuk menyimpan data tabel halaman.

Alokasi konteks perangkat

Alokasi konteks perangkat hanya dapat dilakukan untuk perangkat non-sistem. Driver miniport tampilan membuat perangkat ini dengan memanggil DxgkDdiCreateDevice. Untuk membuat perangkat non-sistem, driver mengatur anggota Flags.SystemDevice dari struktur DXGK_CREATEDEVICEFLAGS ke nol, dan meneruskan penunjuk ke struktur ini dalam parameter pCreateDevice .

Driver miniport tampilan memanggil DXGKCB_DESTROYCONTEXTALLOCATION untuk membebaskan sumber daya konteks yang dialokasikan melalui DxgkCbCreateContextAllocation.

Alamat virtual untuk alokasi konteks tujuan

Untuk memastikan bahwa sistem operasi menetapkan alamat virtual yang valid (non-NULL) untuk alokasi konteks tujuan (InitContextResource-Destination-VirtualAddress>> anggota struktur DXGKARG_BUILDPAGINGBUFFER), ketika driver miniport tampilan memanggil DxgkCbCreateContextAllocation harus:

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 (WDDM 1.2)
Server minimum yang didukung Windows Server 2012
Target Platform Desktop
Header d3dkmddi.h (termasuk D3dkmddi.h)
IRQL PASSIVE_LEVEL

Lihat juga

DXGK_ALLOCATIONINFOFLAGS

DXGK_CREATECONTEXTFLAGS

DXGK_CREATEDEVICEFLAGS

DXGKARG_BUILDPAGINGBUFFER

DXGKARGCB_CREATECONTEXTALLOCATION

DXGKCB_DESTROYCONTEXTALLOCATION

DxgkDdiCreateContext

DxgkDdiCreateDevice

DXGKRNL_INTERFACE