Bagikan melalui


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

Lihat juga

ID3D12Device

ID3D12GraphicsCommandList::Reset