enumerasi D3D12_RESOURCE_FLAGS (d3d12.h)

Menentukan konstanta yang menentukan opsi untuk bekerja dengan sumber daya.

Sintaks

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:

  • Format tekstur harus mendukung kemampuan stensil kedalaman pada tingkat fitur saat ini. Atau, ketika formatnya adalah format tanpa jenis, format dalam grup tanpa jenis yang sama harus mendukung kemampuan stensil kedalaman pada tingkat fitur saat ini.

  • Tidak dapat digunakan dengan D3D12_RESOURCE_DIMENSION_BUFFER, Perataan 4KB, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, atau digunakan dengan timbunan yang memiliki D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES atau D3D12_HEAP_FLAG_ALLOW_DISPLAY.

  • Menghalangi penggunaan WriteToSubresource dan ReadFromSubresource.

  • Menghalangi penyalinan GPU dari subregion. CopyTextureRegion harus menyalin seluruh subsumber daya ke atau dari sumber daya dengan bendera ini.

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 agar tidak beralih ke status D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE atau D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Beberapa arsitektur adaptor mengalami peningkatan bandwidth untuk tekstur stensil kedalaman ketika 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:

  • Harus digunakan dengan D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
Nilai: 0x10
Memungkinkan sumber daya digunakan untuk data lintas adaptor, serta fitur yang diaktifkan oleh D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS. Sumber daya lintas adaptor umumnya 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 transisi ResourceBarrier yang dilakukan di 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:

  • Tidak dapat digunakan dengan D3D12_RESOURCE_DIMENSION_BUFFER; tetapi buffer selalu memiliki properti yang diwakili oleh bendera ini.

  • Tidak dapat digunakan dengan tekstur MSAA.

  • Tidak dapat digunakan dengan D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL.

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
Nilai: 0x40
Menentukan bahwa sumber daya ini hanya dapat digunakan sebagai bingkai referensi dekode. Ini mungkin ditulis ke 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 ke atau dibaca hanya oleh operasi pengodean video.
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
Nilai: 0x100
Disiapkan untuk penggunaan masa mendatang. Jangan gunakan.

Memerlukan DirectX 12 Agility SDK 1.7 atau yang lebih baru. Menunjukkan bahwa buffer akan digunakan sebagai struktur akselerasi raytracing.

Keterangan

Enum ini digunakan oleh anggota BenderaD3D12_RESOURCE_DESC.

Persyaratan

   
Header d3d12.h

Lihat juga