enumerasi D3D12_HEAP_FLAGS (d3d12.h)
Menentukan opsi heap, seperti apakah heap dapat berisi tekstur, dan apakah sumber daya dibagikan di seluruh adaptor.
Sintaks
typedef enum D3D12_HEAP_FLAGS {
D3D12_HEAP_FLAG_NONE = 0,
D3D12_HEAP_FLAG_SHARED = 0x1,
D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING,
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
} ;
Konstanta
D3D12_HEAP_FLAG_NONE Nilai: 0 Tidak ada opsi yang ditentukan. |
D3D12_HEAP_FLAG_SHARED Nilai: 0x1 Timbunan dibagikan. Lihat Shared Heaps. |
D3D12_HEAP_FLAG_DENY_BUFFERS Nilai: 0x4 Timbunan tidak diizinkan untuk memuat buffer. |
D3D12_HEAP_FLAG_ALLOW_DISPLAY Nilai: 0x8 Timbunan diizinkan untuk mengandung permukaan rantai pertukaran. |
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER Nilai: 0x20 Timbunan diizinkan untuk berbagi sumber daya di seluruh adaptor. Lihat Shared Heaps. Sesi yang dilindungi tidak dapat dicampur dengan sumber daya yang dibagikan di seluruh adaptor. |
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES Nilai: 0x40 Heap tidak diizinkan untuk menyimpan tekstur Render Target (RT) dan/atau Depth-Stencil (DS). |
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES Nilai: 0x80 Timbunan tidak diizinkan untuk berisi sumber daya dengan D3D12_RESOURCE_DIMENSION_TEXTURE1D, D3D12_RESOURCE_DIMENSION_TEXTURE2D, atau D3D12_RESOURCE_DIMENSION_TEXTURE3D kecuali ada D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET atau D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL. Lihat D3D12_RESOURCE_DIMENSION dan D3D12_RESOURCE_FLAGS. |
D3D12_HEAP_FLAG_HARDWARE_PROTECTED Nilai: 0x100 Tidak didukung. Jangan gunakan. |
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH Nilai: 0x200 Timbunan mendukung fungsionalitas MEM_WRITE_WATCH, yang menyebabkan sistem melacak halaman yang ditulis di wilayah memori yang diterapkan. Bendera ini tidak dapat digabungkan dengan bendera D3D12_HEAP_TYPE_DEFAULT atau D3D12_CPU_PAGE_PROPERTY_UNKNOWN. Aplikasi tidak disarankan untuk menggunakan bendera ini sendiri karena mencegah alat menggunakan fungsionalitas ini. |
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS Nilai: 0x400 Memastikan bahwa operasi atom akan menjadi atomik pada memori tumpukan ini, menurut komponen yang dapat melihat memori. Membuat timbunan dengan bendera ini akan gagal di bawah salah satu kondisi ini. - Jenis heap D3D12_HEAP_TYPE_DEFAULT, dan heap dapat terlihat pada beberapa node, tetapi perangkat tidak mendukung D3D12_CROSS_NODE_SHARING_TIER_3. - Timbunan terlihat CPU, tetapi jenis heap tidakD3D12_HEAP_TYPE_CUSTOM. Perhatikan bahwa timbunan dengan bendera ini mungkin merupakan sumber daya terbatas pada beberapa sistem. |
D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT Nilai: 0x800 Tumpukan dibuat dalam status non-residen dan harus dibuat residen menggunakan ID3D12Device::MakeResident atau ID3D12Device3::EnqueueMakeResident. Secara default, langkah terakhir pembuatan timbunan adalah membuat penghuni tumpukan, sehingga bendera ini melewati langkah ini dan memungkinkan aplikasi untuk memutuskan kapan melakukannya. |
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED Nilai: 0x1000 Memungkinkan OS untuk tidak nol timbunan yang dibuat. Secara default, sumber daya dan timbunan yang berkomitmen hampir selalu di-nol setelah pembuatan. Bendera ini memungkinkan hal ini diteruskan dalam beberapa skenario. Namun, itu tidak menjaminnya. Misalnya, memori yang berasal dari proses lain masih perlu di-nol untuk perlindungan data dan isolasi proses. Ini dapat menurunkan overhead pembuatan timbunan. |
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES Nilai: 0 Timbunan diizinkan untuk menyimpan semua jenis buffer dan/atau tekstur. Ini adalah alias; untuk detail selengkapnya, lihat "Alias" di bagian Keterangan. |
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS Nilai: 0xc0 Timbunan hanya diperbolehkan untuk menyimpan buffer. Ini adalah alias; untuk detail selengkapnya, lihat "Alias" di bagian Keterangan. |
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES Nilai: 0x44 Timbunan hanya diizinkan untuk menyimpan tekstur non-RT, non-DS. Ini adalah alias; untuk detail selengkapnya, lihat "Alias" di bagian Keterangan. |
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES Nilai: 0x84 Timbunan hanya diizinkan untuk menyimpan tekstur RT dan/atau DS. Ini adalah alias; untuk detail selengkapnya, lihat "Alias" di bagian Keterangan. |
Keterangan
Enum ini digunakan oleh item API berikut:
Bendera heap berikut harus digunakan dengan ID3D12Device::CreateHeap, tetapi akan diatur secara otomatis untuk timbunan implisit yang dibuat oleh ID3D12Device::CreateCommittedResource. Adaptor yang hanya mendukung heap tingkat 1 harus mengatur dua dari tiga bendera berikut.Nilai | Deskripsi |
---|---|
D3D12_HEAP_FLAG_DENY_BUFFERS | Timbunan tidak diizinkan untuk berisi sumber daya dengan D3D12_RESOURCE_DIMENSION_BUFFER (yang merupakan konstanta enumerasi D3D12_RESOURCE_DIMENSION ). |
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES | Timbunan tidak diizinkan untuk berisi sumber daya dengan D3D12_RESOURCE_DIMENSION_TEXTURE1D, D3D12_RESOURCE_DIMENSION_TEXTURE2D, atau D3D12_RESOURCE_DIMENSION_TEXTURE3D bersama dengan D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET atau D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL. (Dua item terakhir adalah konstanta enumerasi D3D12_RESOURCE_FLAGS.) |
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES | Timbunan tidak diizinkan untuk berisi sumber daya dengan D3D12_RESOURCE_DIMENSION_TEXTURE1D, D3D12_RESOURCE_DIMENSION_TEXTURE2D, atau D3D12_RESOURCE_DIMENSION_TEXTURE3D kecuali D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET dan D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL tidak ada. |
Alias
Adaptor yang mendukung heap tier 2 atau lebih tinggi juga diizinkan untuk mengatur tidak ada bendera di atas. Alias untuk bendera ini tersedia untuk aplikasi yang lebih suka berpikir hanya sumber daya mana yang didukung.Alias berikut ada, jadi berhati-hatilah saat melakukan manipulasi bit:
- D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0 dan hanya didukung pada tingkat heap 2 dan yang lebih besar.
- D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES
- D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = D3D12_HEAP_FLAG_DENY_BUFFERS | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES
- D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = D3D12_HEAP_FLAG_DENY_BUFFERS | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES
Timbunan yang dapat ditampilkan
Tumpukan yang dapat ditampilkan paling umum dibuat oleh swapchain untuk presentasi, untuk mengaktifkan pemindaian ke monitor.Timbunan yang dapat ditampilkan ditentukan dengan anggota D3D12_HEAP_FLAG_ALLOW_DISPLAY enum D3D12_HEAP_FLAGS .
Aplikasi dapat membuat timbunan yang dapat ditampilkan di luar swapchain; tetapi tidak dapat benar-benar hadir dengan mereka. Bendera ini tidak didukung oleh CreateHeap dan hanya dapat digunakan dengan CreateCommittedResource dengan D3D12_HEAP_TYPE_DEFAULT.
Pembatasan tambahan untuk D3D12_RESOURCE_DESC berlaku untuk sumber daya yang dibuat dengan tumpukan yang dapat ditampilkan.
- Format tidak hanya harus didukung oleh perangkat, tetapi harus didukung untuk pemindaian. Lihat penggunaan anggota D3D12_FORMAT_SUPPORT1 D3D12_FORMAT_SUPPORT1_DISPLAY.
- Dimensi harus D3D12_RESOURCE_DIMENSION_TEXTURE2D.
- Perataan harus 0.
- ArraySize mungkin 1 atau 2.
- MipLevels harus 1.
- SampleDesc harus memiliki Hitungan yang diatur ke 1 dan Kualitas diatur ke 0.
- Tata letak harus D3D12_TEXTURE_LAYOUT_UNKNOWN.
- D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL dan D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER adalah bendera yang tidak valid.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | d3d12.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk