struktur DXGKARG_SUBMITCOMMAND (d3dkmddi.h)
Struktur DXGKARG_SUBMITCOMMAND menjelaskan buffer akses memori langsung (DMA) yang dikirimkan driver miniport tampilan ke unit eksekusi perintah perangkat keras selama panggilan ke DxgkDdiSubmitCommand.
Sintaks
typedef struct _DXGKARG_SUBMITCOMMAND {
union {
HANDLE hDevice;
HANDLE hContext;
};
UINT DmaBufferSegmentId;
PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
UINT DmaBufferSize;
UINT DmaBufferSubmissionStartOffset;
UINT DmaBufferSubmissionEndOffset;
VOID *pDmaBufferPrivateData;
UINT DmaBufferPrivateDataSize;
UINT DmaBufferPrivateDataSubmissionStartOffset;
UINT DmaBufferPrivateDataSubmissionEndOffset;
UINT SubmissionFenceId;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
DXGK_SUBMITCOMMANDFLAGS Flags;
UINT EngineOrdinal;
D3DGPU_VIRTUAL_ADDRESS DmaBufferVirtualAddress;
UINT NodeOrdinal;
} DXGKARG_SUBMITCOMMAND;
Anggota
hDevice
[in] Jika driver tidak sadar beberapa mesin (yaitu, driver tidak mendukung pembuatan konteks), hDevice adalah handel ke perangkat tampilan (konteks grafis) asal permintaan pengiriman. Handel perangkat diberikan ke fungsi DxgkDdiSubmitCommand driver dalam gabungan yang DXGKARG_SUBMITCOMMAND berisi.
Untuk beberapa operasi paging, hDevice adalah NULL (misalnya, operasi paging yang mengeluarkan konten seluruh buffer bingkai selama manajemen daya). Operasi halaman ditunjukkan oleh bendera Paging bit-field di anggota Bendera .
hContext
[in] Jika driver mengetahui beberapa mesin (yaitu, driver mendukung pembuatan konteks), handel ke konteks perangkat asal permintaan pengiriman. Handel konteks diberikan ke fungsi DxgkDdiSubmitCommand driver dalam serikat yang DXGKARG_SUBMITCOMMAND berisi.
Untuk beberapa operasi paging, hContext adalah NULL (misalnya, operasi paging yang mengeluarkan konten seluruh buffer bingkai selama manajemen daya). Operasi halaman ditunjukkan oleh bendera Paging bit-field di anggota Bendera .
DmaBufferSegmentId
[in] Pengidentifikasi segmen memori tempat buffer DMA dipajang.
Pengidentifikasi dapat menjadi nol jika driver yang ditunjukkan tidak memetakan buffer DMA ke segmen dengan mengatur anggota DmaBufferSegmentSet dari struktur DXGK_CONTEXTINFO ke 0 dalam panggilan ke fungsi DxgkDdiCreateContext driver. Jika DmaBufferSegmentId adalah nol, buffer DMA dialokasikan sebagai blok memori sistem yang berdekatan.
DmaBufferPhysicalAddress
[in] Jenis data PHYSICAL_ADDRESS (yang didefinisikan sebagai LARGE_INTEGER) yang menunjukkan alamat fisik tempat buffer DMA di-paged in.
Jika DmaBufferSegmentId adalah nol, DmaBufferPhysicalAddress adalah alamat fisik dalam memori sistem tempat buffer DMA berada.
Jika DmaBufferSegmentId bukan nol, DmaBufferPhysicalAddress adalah alamat fisik segmen untuk buffer DMA; yaitu, alamat menunjuk ke alamat fisik segmen aperture yang merupakan ruang alamat yang berdekatan yang ditentukan dalam memori fisik (DXGK_SEGMENTDESCRIPTOR. BaseAddress + DmaBuffer.SegmentOffset).
Perhatikan bahwa DmaBufferPhysicalAddress selalu mengacu pada awal buffer DMA meskipun driver mungkin diperlukan untuk menambal atau mengirimkan bagian dari buffer DMA yang tidak menyertakan awal buffer DMA (yaitu, jika anggota DmaBufferSubmissionStartOffset bukan nol).
DmaBufferSize
[in] Ukuran, dalam byte, dari buffer DMA.
DmaBufferSize mewakili seluruh panjang buffer DMA; namun, permintaan untuk menambal atau mengirimkan mungkin hanya merujuk ke sebagian buffer DMA.
DmaBufferSubmissionStartOffset
[in] Offset, dalam byte, dari awal buffer DMA hingga awal bagian buffer DMA yang memerlukan patching atau pengiriman. Offset yang diterima pada waktu patch cocok dengan offset yang diterima pada waktu pengiriman.
DmaBufferSubmissionEndOffset
[in] Offset, dalam byte, dari awal buffer DMA hingga akhir bagian buffer DMA yang memerlukan patching atau pengiriman. Offset yang diterima pada waktu patch cocok dengan offset yang diterima pada waktu pengiriman.
pDmaBufferPrivateData
[in] Penunjuk ke data pribadi residen pengemudi yang terkait dengan buffer DMA yang diisi selama fungsi DxgkDdiRender, DxgkDdiPresent, atau DxgkDdiPatch .
Untuk operasi paging, buffer paging tunggal digunakan untuk beberapa pengiriman independen. Dalam skenario itu, driver dapat menunjukkan --dengan mengembalikan penunjuk data driver pribadi yang sesuai dalam panggilan ke fungsi DxgkDdiBuildPagingBuffer --untuk memiliki rentang data pribadi driver tunggal untuk semua pengiriman atau satu untuk setiap pengiriman.
DmaBufferPrivateDataSize
[in] Ukuran data driver privat yang dituju pDmaBufferPrivateData , dalam byte.
DmaBufferPrivateDataSize mewakili seluruh panjang buffer data driver privat; namun, bagian yang terkait dengan pengiriman saat ini mungkin lebih kecil.
KMD tidak boleh memvalidasi data privat saat anggota ini nol.
DmaBufferPrivateDataSubmissionStartOffset
[in] Offset, dalam byte, dari awal data privat buffer DMA yang ditentukan pDmaBufferPrivateData ke awal bagian data privat yang terkait dengan pengiriman saat ini. DmaBufferPrivateDataSubmissionStartOffset selalu nol untuk permintaan nonpaging.
DmaBufferPrivateDataSubmissionEndOffset
[in] Offset, dalam byte, dari awal data privat buffer DMA yang ditentukan pDmaBufferPrivateData hingga akhir bagian data privat yang terkait dengan pengiriman saat ini.
SubmissionFenceId
[in] Pengidentifikasi unik yang dapat ditulis driver ke dalam perintah pagar di buffer cincin, yang merupakan buffer tempat buffer DMA diantrekan agar unit pemrosesan grafis (GPU) berjalan. Untuk informasi selengkapnya tentang jenis pengidentifikasi ini, lihat Menyediakan Pengidentifikasi Pagar.
VidPnSourceId
[in] Nomor identifikasi berbasis nol dari sumber video yang ada di jalur topologi video present network (VidPN) untuk operasi balik. Anggota ini hanya valid ketika bendera bidang bit Flip atau FlipWithNoWait diatur dalam anggota Bendera .
FlipInterval
[in] Nilai D3DDDI_FLIPINTERVAL_TYPE-ketik yang menunjukkan interval balik (yaitu, jika flip terjadi setelah sinkronisasi vertikal nol, satu, dua, tiga, atau empat). FlipInterval hanya valid jika bendera Flip bit-field diatur (yaitu TRUE) di anggota Bendera .
Flags
[in] Struktur DXGK_SUBMITCOMMANDFLAGS yang mengidentifikasi informasi tentang buffer DMA untuk dikirimkan.
EngineOrdinal
[in] Disiapkan untuk penggunaan di masa mendatang.
DmaBufferVirtualAddress
Anggota ini dicadangkan dan harus diatur ke nol. Didukung dimulai dengan Windows 7.
NodeOrdinal
Indeks berbasis nol dari simpul tempat konteks dibuat. Mengidentifikasi simpul ketika konteksnya adalah NULL. Didukung dimulai dengan Windows 8.
Keterangan
Fungsi DxgkDdiSubmitCommand driver miniport tampilan harus menyadari bahwa beberapa proses dapat mengakses objek perangkat yang ditentukan anggota hDevice secara bersamaan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista (WDDM 1.0) |
Header | d3dkmddi.h (termasuk D3dkmddi.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk