Bagikan melalui


PFND3D11DDI_DISPATCHINDIRECT fungsi panggilan balik (d3d10umddi.h)

Fungsi DispatchIndirect menjalankan shader komputasi.

Sintaks

PFND3D11DDI_DISPATCHINDIRECT Pfnd3d11ddiDispatchindirect;

void Pfnd3d11ddiDispatchindirect(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  UINT unnamedParam3
)
{...}

Parameter

unnamedParam1

hDevice [in]

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

hBufferForArgs [in]

Handel ke buffer yang berisi tiga nilai UINT yang menyimpan ukuran, dalam grup utas, dimensi X, Y, dan Z dari kisi grup utas. Buffer berisi struktur yang dikemas dengan erat berikut:

struct DispatchArgs {
  UINT ThreadGroupCountX; 
  UINT ThreadGroupCountY;
  UINT ThreadGroupCountZ;
}

unnamedParam3

AlignedByteOffsetForArgs [in]

Offset, dalam byte, ke dalam buffer yang ditentukan hBufferForArgs . AlignedByteOffsetForArgs harus kelipatan 4.

Menampilkan nilai

Tidak ada

Keterangan

Driver dapat menggunakan fungsi panggilan balik pfnSetErrorCb untuk mengatur kode kesalahan.

Fungsi DispatchIndirect melakukan tugas yang sama dengan panggilan ke fungsi Pengiriman driver. Runtime Direct3D memanggil fungsi DispatchIndirect driver pada perangkat tampilan untuk menjalankan shader komputasi melalui sejumlah utas dalam kisi grup utas. Namun, DispatchIndirect mendapatkan jumlah grup utas untuk dieksekusi dari konten buffer yang ditentukan parameter hBufferForArgs . DispatchIndirect membaca tiga nilai UINT, dimulai dari offset byte yang ditentukan parameter AlignedByteOffsetForArgs .

Ketika runtime Direct3D memanggil fungsi CreateResource (D3D11) driver untuk membuat sumber daya buffer yang ditentukan parameter hBufferForArgs , runtime harus mengatur bendera D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS di anggota MiscFlags dari struktur D3D11DDIARG_CREATERESOURCE .

Driver seharusnya tidak mengalami kesalahan apa pun, kecuali untuk D3DDDIERR_DEVICEREMOVED. Oleh karena itu, jika driver melewati kesalahan apa pun, kecuali untuk D3DDDIERR_DEVICEREMOVED, dalam panggilan ke fungsi pfnSetErrorCb , runtime Direct3D menentukan bahwa kesalahan sangat penting. Bahkan jika perangkat dihapus, driver tidak diharuskan untuk mengembalikan D3DDDIERR_DEVICEREMOVED; namun, jika penghapusan perangkat mengganggu pengoperasian DispatchIndirect (yang biasanya tidak boleh terjadi), driver dapat mengembalikan D3DDDIERR_DEVICEREMOVED.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung DispatchIndirect didukung dimulai dengan sistem operasi Windows 7.
Target Platform Desktop
Header d3d10umddi.h (termasuk D3d10umddi.h)

Lihat juga

CreateResource(D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

Pengiriman

pfnSetErrorCb