Bagikan melalui


struktur DXGKARG_CREATEHWQUEUE (d3dkmddi.h)

Struktur DXGKARG_CREATEHWQUEUE digunakan dengan DxgkDdiCreateHwQueue untuk membuat antrean perangkat keras.

Sintaksis

typedef struct _DXGKARG_CREATEHWQUEUE {
  HANDLE                    hHwQueue;
  D3DDDI_CREATEHWQUEUEFLAGS Flags;
  UINT                      PrivateDriverDataSize;
  VOID                      *pPrivateDriverData;
  D3DKMT_HANDLE             hHwQueueProgressFence;
  VOID                      *HwQueueProgressFenceCPUVirtualAddress;
  D3DGPU_VIRTUAL_ADDRESS    HwQueueProgressFenceGPUVirtualAddress;
} DXGKARG_CREATEHWQUEUE;

Anggota

hHwQueue

[masuk/keluar] Pada input, handel Dxgkrnlke antrean perangkat keras. Pada output, handel driver ke antrean perangkat keras.

Flags

[di] Struktur D3DDDI_CREATEHWQUEUEFLAGS yang berisi bendera pembuatan antrean.

PrivateDriverDataSize

[di] Ukuran dalam byte data driver privat yang poin pPrivateDriverData.

pPrivateDriverData

[masuk/keluar] Penunjuk ke data driver privat yang diteruskan oleh fungsi driver mode pengguna pfnCreateHwContextCb. Karena pPrivateDriverData adalah parameter masuk, KMD juga dapat mengembalikan data privat kembali ke UMD.

hHwQueueProgressFence

[di] Tangani ke objek sinkronisasi GPU yang dibuat oleh OS untuk antrean perangkat keras ini. Pagar kemajuan digunakan untuk menyinkronkan penyelesaian buffer DMA pada antrean perangkat keras ini. Lihat Komentar.

HwQueueProgressFenceCPUVirtualAddress

[di] Alamat virtual CPU mode kernel yang dapat digunakan untuk membaca nilai pagar kemajuan antrean perangkat keras yang saat ini disinyalir.

HwQueueProgressFenceGPUVirtualAddress

[di] Alamat virtual GPU yang dapat digunakan untuk membaca atau menulis nilai pagar kemajuan antrean perangkat keras. Nilai pagar kemajuan antrean harus meningkat secara monoton dengan setiap pengiriman baru ke antrean perangkat keras. Instruksi GPU untuk memperbarui pagar kemajuan antrean harus dimasukkan oleh driver mode pengguna di akhir buffer DMA yang sedang dilacak.

Komentar

Untuk pengiriman kernel HWQueues, OS akan mengalokasikan pagar kemajuan sebagai jenis pagar asli pada GPU yang mendukung pagar asli. Ketika bendera NativeProgressFence diatur, KMD DxgkDdiCreateHwQueue harus membaca yang sesuai hHwQueueNativeProgressFence bidang yang menentukan handel driver ke objek pagar asli yang sebelumnya dibuat di DxgkDdiCreateNativeFence. Jika bendera NativeProgressFence adalah FALSE, maka pagar kemajuan HWQueue ini adalah objek pagar yang dipantau secara teratur, dan KMD harus membaca warisan bidang hHwQueueProgressFence seperti sebelumnya.

Setelah membuat pagar asli untuk HWQueue, OS juga akan mengatur D3DKMT_CREATEHWQUEUE::Flags.NativeProgressFence ke TRUE, sehingga runtime juga menyadari bahwa pagar kemajuan HWQueue dialokasikan sebagai pagar asli.

Untuk pengiriman pengguna HWQueues, OS akan mengalokasikan pagar kemajuannya sebagai pagar asli di DxgkDdiCreateHwQueueForUserModeSubmission() menurut definisi.

Catatan tentang kompatibilitas driver: Dxgkrnl hanya akan menulis ke bidang hHwQueueNativeProgressFence pada driver yang mendukung batas NativeGpuFence. Ini memastikan bahwa OS hanya akan mereferensikan bidang ini pada driver dalam pengembangan dan di masa mendatang yang dikompilasi dengan header yang diperbarui ini. KMD hanya akan membaca bidang ini jika DXGKARG_CREATEHWQUEUE. Flags.NativeProgressFence ADALAH TRUE. Ini memastikan bahwa KMD hanya mereferensikan bidang ini pada build OS terbaru yang mendukung pagar kemajuan asli dan header yang diperbarui ini.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 10, versi 1703 (WDDM 2.2)
Header d3dkmddi.h

Lihat juga

DxgkDdiCreateHwQueue