Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membuat tabel pengikatan, yang merupakan objek yang dapat digunakan untuk mengikat sumber daya (seperti tensor) ke alur.
Tabel pengikatan membungkus berbagai tumpukan deskriptor yang dikelola aplikasi menggunakan handel dan hitungan deskriptor yang disediakan. Tabel pengikatan digunakan oleh DirectML untuk mengelola pengikatan sumber daya dengan menulis deskriptor ke dalam tumpukan deskriptor pada offset yang ditentukan oleh CPUDescriptorHandle, dan mengikat deskriptor tersebut ke alur menggunakan deskriptor pada offset yang ditentukan oleh GPUDescriptorHandle. Urutan di mana DirectML menulis deskriptor ke dalam tumpukan tidak ditentukan, sehingga aplikasi Anda harus berhati-hati untuk tidak menimpa deskriptor yang dibungkus oleh tabel pengikatan.
Handel deskriptor CPU dan GPU yang disediakan mungkin berasal dari timbunan yang berbeda, namun kemudian merupakan tanggung jawab aplikasi Anda untuk memastikan bahwa seluruh rentang deskriptor yang dirujuk oleh handel deskriptor CPU disalin ke dalam rentang yang dirujuk oleh handel deskriptor GPU sebelum eksekusi menggunakan tabel pengikatan ini.
Tumpukan deskriptor tempat handel disediakan harus memiliki jenis D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV. Selain itu, timbunan yang dirujuk oleh GPUDescriptorHandle harus berupa tumpukan deskriptor yang terlihat shader.
Anda tidak boleh menghapus tumpukan yang dirujuk oleh handel deskriptor GPU sampai semua pekerjaan yang merujuknya telah selesai dieksekusi pada GPU. Namun, Anda dapat mengatur ulang atau merilis tabel pengikatan itu sendiri segera setelah pengiriman telah direkam ke dalam daftar perintah. Mirip dengan hubungan antara ID3D12CommandList dan ID3D12CommandAllocator, IDMLBindingTable tidak memiliki memori yang mendasar yang dirujuk oleh handel deskriptor. Sebaliknya, ID3D12DescriptorHeap tidak. Oleh karena itu, Anda diizinkan untuk mengatur ulang atau merilis tabel pengikatan DirectML sebelum bekerja menggunakan tabel pengikatan telah menyelesaikan eksekusi pada GPU.
Sintaks
HRESULT CreateBindingTable(
[in, optional] const DML_BINDING_TABLE_DESC *desc,
REFIID riid,
[out] void **ppv
);
Parameter
[in, optional] desc
Jenis: const DML_BINDING_TABLE_DESC*
Penunjuk opsional ke DML_BINDING_TABLE_DESC yang berisi parameter tabel pengikatan. Ini mungkin nullptr, menunjukkan tabel pengikatan kosong.
riid
Jenis: REFIID
Referensi ke pengidentifikasi unik global (GUID) antarmuka yang ingin Anda kembalikan dalam ppv. Ini diharapkan menjadi GUID IDMLBindingTable.
[out] ppv
Jenis: batal**
Penunjuk ke blok memori yang menerima penunjuk ke tabel pengikatan. Ini adalah alamat penunjuk ke IDMLBindingTable, yang mewakili tabel pengikatan yang dibuat.
Menampilkan nilai
Jenis: HRESULT
Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.
Persyaratan
| Target Platform | Windows |
| Header | directml.h |
| Pustaka | DirectML.lib |
| DLL | DirectML.dll |