Bagikan melalui


Fungsi D3DKMTCreateNativeFence (d3dkmthk.h)

Dxgkrnl memanggil D3DKMTCreateNativeFence untuk membuat objek pagar GPU asli pada perangkat tertentu.

Sintaks

NTSTATUS D3DKMTCreateNativeFence(
  D3DKMT_CREATENATIVEFENCE *unnamedParam1
);

Parameter

unnamedParam1

[masuk/keluar] Arahkan ke struktur D3DKMT_CREATENATIVEFENCE yang menjelaskan objek pagar yang akan dibuat.

Menampilkan nilai

D3DKMTCreateNativeFence mengembalikan STATUS_SUCCESS pada pembuatan yang berhasil. Jika tidak, kode kesalahan NTSTATUS akan dikembalikan seperti STATUS_INVALID_PARAMETER.

Keterangan

D3DDDI_NATIVEFENCE_TYPE yang ditentukan menentukan jenis pagar asli yang dibuat OS. Pagar ini berbeda dalam fungsionalitas, karakteristik performa, dan persyaratan penyimpanan untuk CurrentValue dan MonitoredValue. Tabel berikut menunjukkan perbedaan ini, di mana CVal adalah singkatan dari CurrentValue dan MVal adalah singkatan monitoredValue.

Jenis CurrentValue MonitoredValue Mendukung Berbagi Lintas Proses pada CPU Mendukung Berbagi Lintas Adaptor UM CPUVA CVal KM CPUVA CVal GPU VA CVal CMPVA CVal UM MVal KM MVal GPU VA MVal CMPVA MVal Kasus penggunaan 6
D3DDDI_NATIVEFENCE_TYPE_DEFAULT Sisme Sisme Ya Ya Baca Saja Baca/Tulis Baca/Tulis Baca/Tulis T/A Write ReadOnly (atau Baca/Tulis) Baca/Tulis Pagar aplikasi dengan gangguan CPU yang berkurang. Pelayan GPU tidak diblokir tanpa membangunkan CPU
D3DDDI_NATIVEFENCE_TYPE_DEFAULT (DIOPTIMALKAN) Sisme VRAM Ya Ya Baca Saja Baca/Tulis Baca/Tulis Baca/Tulis T/A Write ReadOnly (atau Baca/Tulis) Baca/Tulis Sama seperti Tipe 0 tetapi dengan lalu lintas bus PCI yang berkurang karena pembacaan MVal bersifat lokal untuk GPU. Perintah sinyal GPU selesai lebih cepat karena latensi yang berkurang ini (throughput++).
D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU VRAM VRAM Ya Tidak T/A T/A Baca/Tulis Baca/Tulis T/A T/A ReadOnly (atau Baca/Tulis) Baca/Tulis Sinkronisasi tingkat buffer perintah (tidak terlihat aplikasi) dalam GPU yang sama. Baca/Tulis ke nilai pagar (CVal) bersifat lokal, sehingga operasi sinyal/buka blokir cepat.
  • D3DDDI_NATIVEFENCE_TYPE_DEFAULT

    • Didukung dalam Windows 11, versi 24H2.
    • Jenis pagar ini mendukung semua objek sinkronisasi D3DKMT yang ada Wait/Signal dari operasi CPU/GPU.
    • Penyimpanan CurrentValue dan MonitoredValue untuk jenis pagar ini dialokasikan di segmen memori sistem.
  • D3DDDI_NATIVEFENCE_TYPE_DEFAULT (Dioptimalkan)

    • Kemampuan ini saat ini tidak didukung oleh OS.
    • Versi D3DDDI_NATIVEFENCE_TYPE_DEFAULT yang dioptimalkan, di mana penyimpanan MonitoredValue dapat dialokasikan di VRAM, akan mempercepat pembacaan MonitoredValue dari mesin GPU.
    • Pengoptimalan ini tidak terekspos ke UMD. Sebaliknya, Dxgkrnl dan KMD akan memutuskan apakah jenis pagar default dapat dioptimalkan dengan mengalokasikan penyimpanan MonitoredValue di VRAM.
    • Penyimpanan MonitoredValue yang dialokasikan di VRAM mungkin masih diturunkan ke memori sistem jika sistem berada di bawah tekanan memori lokal.
    • Jika OS mendukung jenis pagar ini, OS mengatur SupportOptimizedDefaultFenceType ke TRUE dalam tabel antarmuka fitur DXGKARGCB_FEATURE_NATIVEFENCE_CAPS_1 . KMD diharapkan untuk mengkueri tabel antarmuka fitur selama inisialisasi driver untuk menentukan kemampuan OS ini.
  • D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU

    • Kemampuan ini saat ini tidak didukung oleh OS.
    • Pagar D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU tidak mendukung operasi CPU apa pun; artinya, OS tidak memungkinkan mode pengguna untuk mengantre tunggu dan memberi sinyal ke objek pagar ini.
    • Oleh karena itu, jenis ini tidak dapat digunakan untuk pagar aplikasi DX yang harus mendukung semantik tunggu dan sinyal CPU. Jenis ini terutama digunakan untuk pagar UMD internal untuk sinkronisasi antara mesin GPU. Membuat jenis ini sebagai objek pagar asli D3DKMT memberikan visibilitas ke pagar ini untuk alat seperti GpuView dan penelusuran kesalahan.
    • Segmen yang didukung untuk pagar ini harus merupakan segmen memori lokal yang terlihat non-CPU.
    • Penyimpanan yang dialokasikan dalam memori lokal mungkin masih diturunkan ke memori sistem jika sistem berada di bawah tekanan memori lokal.
    • Jika OS mendukung jenis pagar ini, OS mengatur SupportIntraGpuFenceType ke TRUE dalam tabel antarmuka fitur DXGKARGCB_FEATURE_NATIVEFENCE_CAPS_1 . KMD diharapkan untuk mengkueri tabel antarmuka fitur selama inisialisasi driver untuk menentukan kemampuan OS ini.

Untuk informasi selengkapnya tentang pagar GPU asli, lihat Objek pagar GPU asli.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11, versi 24H2
Header d3dkmthk.h

Lihat juga

D3DKMT_CREATENATIVEFENCE

D3DKMTOpenNativeFenceFromNTHandle

D3DKMTDestroySynchronizationObject

DxgkDdiCreateNativeFence