METODE ID3D12Device::CreateCommandList (d3d12.h)
Membuat daftar perintah.
Sintaks
HRESULT CreateCommandList(
[in] UINT nodeMask,
[in] D3D12_COMMAND_LIST_TYPE type,
[in] ID3D12CommandAllocator *pCommandAllocator,
[in, optional] ID3D12PipelineState *pInitialState,
[in] REFIID riid,
[out] void **ppCommandList
);
Parameter
[in] nodeMask
Jenis: UINT
Untuk operasi GPU tunggal, atur ini ke nol. Jika ada beberapa simpul GPU, atur sedikit untuk mengidentifikasi simpul (adaptor fisik perangkat) untuk membuat daftar perintah. Setiap bit dalam masker sesuai dengan satu simpul. Hanya satu bit yang harus diatur. Lihat juga Sistem multi-adapter.
[in] type
Jenis: D3D12_COMMAND_LIST_TYPE
Menentukan tipe daftar perintah yang akan dibuat.
[in] pCommandAllocator
Jenis: ID3D12CommandAllocator*
Penunjuk ke objek alokator perintah tempat perangkat membuat daftar perintah.
[in, optional] pInitialState
Jenis: ID3D12PipelineState*
Penunjuk opsional ke objek status alur yang berisi status alur awal untuk daftar perintah. Jika ya nullptr
, maka runtime menetapkan status alur awal dummy, sehingga driver tidak perlu berurusan dengan status yang tidak terdefinisi. Overhead untuk ini rendah, terutama untuk daftar perintah, yang biaya keseluruhan merekam daftar perintah kemungkinan mengerdilkan biaya pengaturan status awal tunggal. Jadi ada sedikit biaya dalam tidak mengatur parameter status alur awal, jika melakukannya tidak nyaman.
Untuk bundel, di sisi lain, mungkin lebih masuk akal untuk mencoba mengatur parameter status awal (karena bundel kemungkinan lebih kecil secara keseluruhan, dan dapat sering digunakan kembali).
[in] riid
Jenis: REFIID
Referensi ke pengidentifikasi unik global (GUID) dari antarmuka daftar perintah untuk dikembalikan di ppCommandList.
[out] ppCommandList
Jenis: void**
Pointer ke blok memori yang menerima pointer ke antarmuka ID3D12CommandList atau ID3D12GraphicsCommandList untuk daftar perintah.
Mengembalikan nilai
Jenis: HRESULT
Jika fungsi berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahanHRESULT akan dikembalikan.
Mengembalikan nilai | Deskripsi |
---|---|
E_OUTOFMEMORY | Memori tidak cukup untuk membuat daftar perintah. |
Lihat Kode pengembalian Direct3D 12 untuk kemungkinan nilai pengembalian lainnya.
Keterangan
Perangkat membuat daftar perintah dari alokator perintah.
Contoh
Sampel D3D12Bundles menggunakan ID3D12Device::CreateCommandList sebagai berikut.
Buat objek alur.
ComPtr<ID3D12CommandAllocator> m_commandAllocator;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
Buat alokator perintah.
ThrowIfFailed(m_device->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&m_commandAllocator)));
Membuat daftar perintah langsung.
ThrowIfFailed(m_device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, m_commandAllocator.Get(), nullptr, IID_PPV_ARGS(&m_commandList)));
Lihat Contoh Kode dalam Referensi D3D12.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | d3d12.h |
Pustaka | D3D12.lib |
DLL | D3D12.dll |