Bagikan melalui


METODE ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat (d3d12.h)

Mengatur semua elemen dalam tampilan akses tidak berurut (UAV) ke nilai float yang ditentukan.

Penting

Ini berperilaku seperti operasi komputasi karena tidak diurutkan sehubungan dengan pekerjaan di sekitarnya seperti panggilan Pengiriman . Untuk memastikan pemesanan, panggilan pembatas harus dikeluarkan sebelum dan/atau setelah panggilan ClearUnorderedAccessViewXxx sesuai kebutuhan. Ini mungkin muncul pada beberapa driver bahwa hambatan seperti itu tidak diperlukan. Tetapi hambatan implisit bukanlah jaminan spesifikasi; sehingga mereka tidak dapat diandalkan. Ini berbeda dengan ClearDepthStencilView dan ClearRenderTargetView yang (seperti perintah DrawXxx ), menghormati urutan daftar perintah.

Sintaks

void ClearUnorderedAccessViewFloat(
  D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap,
  D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle,
  ID3D12Resource              *pResource,
  const FLOAT [4]             Values,
  UINT                        NumRects,
  const D3D12_RECT            *pRects
);

Parameter

ViewGPUHandleInCurrentHeap

Jenis: [in] D3D12_GPU_DESCRIPTOR_HANDLE

D3D12_GPU_DESCRIPTOR_HANDLE yang mereferensikan deskriptor yang diinisialisasi untuk tampilan akses tidak berurut (UAV) yang akan dibersihkan. Deskriptor ini harus berada dalam tumpukan deskriptor yang terlihat shader, yang harus diatur pada daftar perintah melalui SetDescriptorHeaps.

ViewCPUHandle

Ketik: [in] D3D12_CPU_DESCRIPTOR_HANDLE

D3D12_CPU_DESCRIPTOR_HANDLE dalam tumpukan deskriptor yang terlihat non-shader yang mereferensikan deskriptor yang diinisialisasi untuk tampilan akses tidak berurut (UAV) yang akan dibersihkan.

Penting

Deskriptor ini tidak boleh berada dalam tumpukan deskriptor yang terlihat shader. Ini untuk memungkinkan driver yang mengimplementasikan yang jelas sebagai operasi perangkat keras fungsi tetap (bukan sebagai pengiriman) untuk membaca secara efisien dari deskriptor, karena tumpukan yang terlihat shader dapat dibuat dalam memori WRITE_BACK (mirip dengan jenis tumpukan D3D12_HEAP_TYPE_UPLOAD ), dan pembacaan CPU dari jenis memori ini sangat lambat.

pResource

Jenis: [in] ID3D12Resource*

Penunjuk ke antarmuka ID3D12Resource yang mewakili sumber daya unordered-access-view (UAV) untuk menghapusnya.

Values

Jenis: [in] const FLOAT[4]

Array 4-komponen yang berisi nilai untuk mengisi sumber daya tampilan akses yang tidak diurutkan dengan.

NumRects

Ketik: [in] UINT

Jumlah persegi panjang dalam array yang ditentukan parameter pRects .

pRects

Jenis: [in] const D3D12_RECT*

Array struktur D3D12_RECT untuk persegi panjang dalam tampilan sumber daya untuk dihapus. Jika NULL, ClearUnorderedAccessViewFloat menghapus seluruh tampilan sumber daya.

Menampilkan nilai

Tidak ada

Keterangan

Validasi runtime

Untuk input floating-point, runtime mengatur nilai yang didenormalisasi ke 0 (sambil mempertahankan NAN).

Jika Anda ingin menghapus UAV ke pola bit tertentu, pertimbangkan untuk menggunakan ID3D12GraphicsCommandList::ClearUnorderedAccessViewUint.

Kegagalan validasi menghasilkan panggilan ke ID3D12GraphicsCommandList::Close mengembalikan E_INVALIDARG.

Lapisan debug

Lapisan debug mengeluarkan kesalahan jika nilai input berada di luar rentang yang dinormalisasi.

Lapisan debug mengeluarkan kesalahan jika subsumber daya yang direferensikan oleh tampilan tidak dalam status yang sesuai. Untuk ClearUnorderedAccessViewFloat, status harus D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d12.h
Pustaka D3d12.lib
DLL D3d12.dll

Lihat juga

Antarmuka ID3D12GraphicsCommandList