enumerasi D3D12_RESOURCE_STATES (d3d12.h)
Menentukan konstanta yang menentukan status sumber daya mengenai bagaimana sumber daya digunakan.
Sintaks
typedef enum D3D12_RESOURCE_STATES {
D3D12_RESOURCE_STATE_COMMON = 0,
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000,
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000,
D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000,
D3D12_RESOURCE_STATE_GENERIC_READ,
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE,
D3D12_RESOURCE_STATE_PRESENT = 0,
D3D12_RESOURCE_STATE_PREDICATION = 0x200,
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
} ;
Konstanta
D3D12_RESOURCE_STATE_COMMON Nilai: 0 Aplikasi Anda harus beralih ke status ini hanya untuk mengakses sumber daya di berbagai jenis mesin grafis. Secara khusus, sumber daya harus dalam status COMMON sebelum digunakan pada antrean COPY (ketika sebelumnya digunakan pada DIRECT/COMPUTE), dan sebelum digunakan pada DIRECT/COMPUTE (ketika sebelumnya digunakan pada COPY). Pembatasan ini tidak ada saat mengakses data antara antrean DIRECT dan COMPUTE. Status COMMON dapat digunakan untuk semua penggunaan pada antrean Salin menggunakan transisi status implisit. Untuk informasi selengkapnya, dalam Sinkronisasi multi-mesin, temukan "umum". Selain itu, tekstur harus dalam status COMMON agar akses CPU menjadi legal, dengan asumsi tekstur dibuat dalam tumpukan yang terlihat CPU di tempat pertama. |
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER Nilai: 0x1 Subsumber daya harus dalam keadaan ini ketika diakses oleh GPU sebagai buffer vertex atau buffer konstanta. Ini adalah status baca-saja. |
D3D12_RESOURCE_STATE_INDEX_BUFFER Nilai: 0x2 Sub sumber daya harus dalam status ini ketika diakses oleh alur 3D sebagai buffer indeks. Ini adalah status baca-saja. |
D3D12_RESOURCE_STATE_RENDER_TARGET Nilai: 0x4 Sumber daya digunakan sebagai target render. Subsumber daya harus dalam status ini saat dirender, atau ketika dibersihkan dengan ID3D12GraphicsCommandList::ClearRenderTargetView. Ini adalah status tulis-saja. Untuk membaca dari target render sebagai sumber daya shader, sumber daya harus berada di D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE atau D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. |
D3D12_RESOURCE_STATE_UNORDERED_ACCESS Nilai: 0x8 Sumber daya digunakan untuk akses yang tidak berurut. Subsumber daya harus dalam status ini ketika diakses oleh GPU melalui tampilan akses yang tidak diurutkan. Subsumber daya juga harus dalam keadaan ini ketika dibersihkan dengan ID3D12GraphicsCommandList::ClearUnorderedAccessViewInt atau ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat. Ini adalah status baca/tulis. |
D3D12_RESOURCE_STATE_DEPTH_WRITE Nilai: 0x10 D3D12_RESOURCE_STATE_DEPTH_WRITE adalah keadaan yang saling eksklusif dengan negara bagian lain. Anda harus menggunakannya untuk ID3D12GraphicsCommandList::ClearDepthStencilView saat bendera (lihat D3D12_CLEAR_FLAGS) menunjukkan subsumber daya tertentu harus dibersihkan (jika tidak, status subsumber daya tidak masalah), atau saat menggunakannya dalam tampilan stensil kedalaman yang dapat ditulis (lihat D3D12_DSV_FLAGS) ketika PSO mengaktifkan penulisan kedalaman (lihat D3D12_DEPTH_STENCIL_DESC). |
D3D12_RESOURCE_STATE_DEPTH_READ Nilai: 0x20 DEPTH_READ adalah status yang dapat dikombinasikan dengan status lain. Ini harus digunakan ketika subsumber daya berada dalam tampilan stensil kedalaman baca-saja, atau ketika penulisan mendalam D3D12_DEPTH_STENCIL_DESC dinonaktifkan. Ini dapat dikombinasikan dengan status baca lainnya (misalnya, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE), sehingga sumber daya dapat digunakan untuk pengujian kedalaman atau stensil, dan diakses oleh shader dalam panggilan gambar yang sama. Menggunakannya ketika kedalaman akan ditulis oleh panggilan gambar atau perintah yang jelas tidak valid. |
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE Nilai: 0x40 Sumber daya digunakan dengan shader selain shader piksel. Subsumber daya harus dalam status ini sebelum dibaca oleh tahap apa pun (kecuali untuk tahap shader piksel) melalui tampilan sumber daya shader. Anda masih dapat menggunakan sumber daya dalam shader piksel dengan bendera ini selama juga memiliki bendera D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE diatur. Ini adalah status baca-saja. |
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE Nilai: 0x80 Sumber daya digunakan dengan shader piksel. Sub sumber daya harus dalam status ini sebelum dibaca oleh shader piksel melalui tampilan sumber daya shader. Ini adalah status baca-saja. |
D3D12_RESOURCE_STATE_STREAM_OUT Nilai: 0x100 Sumber daya digunakan dengan output aliran. Subsumber daya harus dalam status ini ketika diakses oleh alur 3D sebagai target stream-out. Ini adalah status tulis-saja. |
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT Nilai: 0x200 Sumber daya digunakan sebagai argumen tidak langsung. Sub-sumber daya harus dalam status ini ketika digunakan sebagai buffer argumen yang diteruskan ke metode gambar tidak langsung ID3D12GraphicsCommandList::ExecuteIndirect. Ini adalah status baca-saja. |
D3D12_RESOURCE_STATE_COPY_DEST Nilai: 0x400 Sumber daya digunakan sebagai tujuan dalam operasi salin. Subsumber daya harus dalam keadaan ini ketika digunakan sebagai tujuan operasi salin, atau operasi blt. Ini adalah status tulis-saja. |
D3D12_RESOURCE_STATE_COPY_SOURCE Nilai: 0x800 Sumber daya digunakan sebagai sumber dalam operasi salin. Subsumber daya harus dalam keadaan ini ketika digunakan sebagai sumber operasi salin, atau operasi blt. Ini adalah status baca-saja. |
D3D12_RESOURCE_STATE_RESOLVE_DEST Nilai: 0x1000 Sumber daya digunakan sebagai tujuan dalam operasi penyelesaian. |
D3D12_RESOURCE_STATE_RESOLVE_SOURCE Nilai: 0x2000 Sumber daya digunakan sebagai sumber dalam operasi penyelesaian. |
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE Nilai: 0x400000 Ketika buffer dibuat dengan ini sebagai status awalnya, ini menunjukkan bahwa sumber daya adalah struktur akselerasi raytracing, untuk digunakan dalam ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure, ID3D12GraphicsCommandList4::CopyRaytracingAccelerationStructure, atau ID3D12Device::CreateShaderResourceView untuk dimensi D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE . CATATAN Sumber daya yang akan digunakan untuk status D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE harus dibuat dalam status tersebut, dan kemudian tidak pernah bertransisi darinya. Atau mungkin sumber daya yang dibuat tidak dalam status tersebut akan ditransisikan ke dalamnya. Untuk informasi selengkapnya, lihat Pembatasan memori struktur akselerasi dalam spesifikasi fungsional DirectX raytracing (DXR) di GitHub. |
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE Nilai: 0x1000000 Dimulai dengan Windows 10, versi 1903 (10.0; Build 18362), menunjukkan bahwa sumber daya adalah gambar laju bayangan ruang layar untuk bayangan laju variabel (VRS). Untuk informasi selengkapnya, lihat Bayangan laju variabel (VRS). |
D3D12_RESOURCE_STATE_GENERIC_READ D3D12_RESOURCE_STATE_GENERIC_READ adalah kombinasi logis OR dari bit status baca lainnya. Ini adalah status awal yang diperlukan untuk heap unggahan. Aplikasi Anda umumnya harus menghindari transisi ke D3D12_RESOURCE_STATE_GENERIC_READ jika memungkinkan, karena itu dapat mengakibatkan flush cache prematur, atau perubahan tata letak sumber daya (misalnya, kompres/dekompresi), menyebabkan kios alur yang tidak perlu. Sebagai gantinya, Anda harus transisi sumber daya hanya ke status yang benar-benar digunakan. |
D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE Setara dengan D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE . |
D3D12_RESOURCE_STATE_PRESENT Nilai: 0 Identik dengan D3D12_RESOURCE_STATE_COMMON. |
D3D12_RESOURCE_STATE_PREDICATION Nilai: 0x200 Sumber daya digunakan untuk Predikasi. |
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ Nilai: 0x10000 Sumber daya digunakan sebagai sumber dalam operasi dekode. Contohnya termasuk membaca bitstream terkompresi dan membaca dari referensi dekode, |
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE Nilai: 0x20000 Sumber daya digunakan sebagai tujuan dalam operasi dekode. Status ini digunakan untuk mendekode output dan histogram. |
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ Nilai: 0x40000 Sumber daya digunakan untuk membaca data video selama pemrosesan video; artinya, sumber daya digunakan sebagai sumber dalam operasi pemrosesan seperti pengodean video (kompresi). |
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE Nilai: 0x80000 Sumber daya digunakan untuk menulis data video selama pemrosesan video; artinya, sumber daya digunakan sebagai tujuan dalam operasi pemrosesan seperti pengodean video (kompresi). |
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ Nilai: 0x200000 Sumber daya digunakan sebagai sumber dalam operasi pengodean. Status ini digunakan untuk input dan referensi estimasi gerakan. |
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE Nilai: 0x800000 Sumber daya ini digunakan sebagai tujuan dalam operasi pengodean. Status ini digunakan untuk tekstur tujuan operasi tumpukan vektor gerakan penyelesaian. |
Keterangan
Enum ini digunakan oleh metode berikut:
Persyaratan
Header | d3d12.h |