enumerasi D3D12_RESOURCE_FLAGS (d3d12.h)
Menentukan konstanta yang menentukan opsi untuk bekerja dengan sumber daya.
Sintaksis
typedef enum D3D12_RESOURCE_FLAGS {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;
Konstanta
D3D12_RESOURCE_FLAG_NONE Nilai: 0 Tidak ada opsi yang ditentukan. |
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET Nilai: 0x1 Memungkinkan tampilan target render dibuat untuk sumber daya; dan juga memungkinkan sumber daya untuk beralih ke status D3D12_RESOURCE_STATE_RENDER_TARGET. Beberapa arsitektur adaptor mengalokasikan memori tambahan untuk tekstur dengan bendera ini untuk mengurangi bandwidth yang efektif selama penyajian umum. Karakteristik ini mungkin tidak bermanfaat untuk tekstur yang tidak pernah dirender, juga tidak tersedia untuk tekstur yang dikompresi dengan format SM. Aplikasi Anda harus menghindari pengaturan bendera ini saat penyajian tidak akan pernah terjadi. Pembatasan dan interaksi berikut berlaku:
|
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL Nilai: 0x2 Memungkinkan tampilan stensil kedalaman dibuat untuk sumber daya, serta memungkinkan sumber daya untuk beralih ke status D3D12_RESOURCE_STATE_DEPTH_WRITE dan/atau D3D12_RESOURCE_STATE_DEPTH_READ. Sebagian besar arsitektur adaptor mengalokasikan memori tambahan untuk tekstur dengan bendera ini untuk mengurangi bandwidth yang efektif, dan memaksimalkan pengoptimalan untuk pengujian kedalaman awal. Aplikasi Anda harus menghindari pengaturan bendera ini ketika operasi kedalaman tidak akan pernah terjadi. Pembatasan dan interaksi berikut berlaku:
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS Nilai: 0x4 Memungkinkan tampilan akses yang tidak diurutkan dibuat untuk sumber daya, serta memungkinkan sumber daya untuk beralih ke status D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Beberapa arsitektur adaptor harus menggunakan tata letak tekstur yang kurang efisien untuk menyediakan fungsionalitas ini. Jika tekstur jarang digunakan untuk akses yang tidak diurutkan, maka mungkin ada baiknya memiliki dua tekstur di sekitar dan menyalin di antara mereka. Satu tekstur akan memiliki bendera ini, sementara yang lain tidak akan. Aplikasi Anda harus menghindari pengaturan bendera ini ketika operasi akses yang tidak diurutkan tidak akan pernah terjadi. Pembatasan dan interaksi berikut berlaku:
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE Nilai: 0x8 Melarang tampilan sumber daya shader dibuat untuk sumber daya, serta menonaktifkan sumber daya dari transisi ke status D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE atau D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Beberapa arsitektur adaptor mendapatkan kapasitas bandwidth untuk tekstur stensil kedalaman saat tampilan sumber daya shader didahului. Jika tekstur jarang digunakan untuk sumber daya shader, maka mungkin ada baiknya memiliki dua tekstur di sekitar dan menyalin di antara mereka. Satu tekstur akan memiliki bendera ini, sementara yang lain tidak akan. Aplikasi Anda harus mengatur bendera ini ketika tekstur stensil kedalaman tidak akan pernah digunakan dari tampilan sumber daya shader. Pembatasan dan interaksi berikut berlaku:
|
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER Nilai: 0x10 Memungkinkan sumber daya digunakan untuk data lintas adaptor, serta fitur-fitur yang diaktifkan oleh D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Sumber daya lintas adaptor biasanya menghalangi teknik yang mengurangi bandwidth tekstur yang efektif selama penggunaan, dan beberapa arsitektur adaptor mungkin memerlukan perilaku penembolokan yang berbeda. Aplikasi Anda harus menghindari pengaturan bendera ini ketika data sumber daya tidak akan pernah digunakan dengan adaptor lain. Pembatasan dan interaksi berikut berlaku:
|
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS Nilai: 0x20 Memungkinkan sumber daya diakses secara bersamaan oleh beberapa antrean, perangkat, atau proses yang berbeda (misalnya, memungkinkan sumber daya digunakan dengan ResourceBarrier transisi yang dilakukan dalam lebih dari satu daftar perintah yang dijalankan pada saat yang sama). Akses bersamaan memungkinkan beberapa pembaca dan satu penulis, selama penulis tidak secara bersamaan memodifikasi texel yang diakses pembaca lain. Beberapa arsitektur adaptor tidak dapat memanfaatkan teknik untuk mengurangi bandwidth tekstur yang efektif selama penggunaan. Namun, aplikasi Anda harus menghindari pengaturan bendera ini ketika beberapa pembaca tidak diperlukan selama penulisan yang sering dan tidak tumpang tindih ke tekstur. Penggunaan bendera ini dapat membahayakan pagar sumber daya untuk melakukan penantian, dan mencegah pemadatan yang digunakan dengan sumber daya. Pembatasan dan interaksi berikut berlaku:
|
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Nilai: 0x40 Menspesifikasikan bahwa sumber daya ini hanya dapat digunakan sebagai bingkai referensi dekode. Ini mungkin ditulis atau dibaca hanya oleh operasi dekode video. D3D12_VIDEO_DECODE_TIER_1 dan D3D12_VIDEO_DECODE_TIER_2 dapat melaporkan D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED dalam bendera konfigurasi struktur D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT. Jika itu terjadi, maka aplikasi Anda harus mengalokasikan bingkai referensi dengan bendera sumber daya D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. D3D12_VIDEO_DECODE_TIER_3 tidak boleh mengatur [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] (.. Bendera konfigurasi /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags), dan tidak boleh memerlukan penggunaan bendera sumber daya ini. |
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY Nilai: 0x80 Menspesifikasikan bahwa sumber daya ini hanya dapat digunakan sebagai bingkai referensi enkode. Ini mungkin ditulis atau dibaca hanya oleh operasi pengodean video. |
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE Nilai: 0x100 Memerlukan DirectX 12 Agility SDK 1.608.0 atau yang lebih baru. Menunjukkan bahwa buffer akan digunakan sebagai struktur akselerasi raytracing. Saat menggunakan D3D12 Enhanced Barriers, bendera ini berfungsi sebagai pengganti D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE , karena buffer tidak lagi memiliki tata letak/status. |
Komentar
Enum ini digunakan oleh Flags anggota D3D12_RESOURCE_DESC.
Persyaratan
Syarat | Nilai |
---|---|
Header |
d3d12.h |