Bagikan melalui


struktur D3D11_RESOURCE_FLAGS (d3d11on12.h)

Digunakan dengan ID3D11On12Device::CreateWrappedResource untuk mengambil alih bendera yang akan disimpulkan oleh properti sumber daya atau properti tumpukan, termasuk bendera ikat, bendera misc, dan bendera akses CPU.

Sintaks

typedef struct D3D11_RESOURCE_FLAGS {
  UINT BindFlags;
  UINT MiscFlags;
  UINT CPUAccessFlags;
  UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;

Anggota

BindFlags

Bendera ikat harus benar-benar disimpulkan, atau sepenuhnya ditentukan, untuk memungkinkan driver grafis untuk mencakup sumber daya D3D12 umum ke sesuatu yang dapat dipahami D3D11.

Jika bendera ikat ditentukan yang tidak didukung oleh sumber daya yang disediakan, kesalahan akan dikembalikan.

Bendera ikat berikut (D3D11_BIND_FLAG konstanta enumerasi) tidak akan diasumsikan, dan harus ditentukan agar sumber daya dapat digunakan dengan cara seperti itu:

  • D3D11_BIND_VERTEX_BUFFER
  • D3D11_BIND_INDEX_BUFFER
  • D3D11_BIND_CONSTANT_BUFFER
  • D3D11_BIND_STREAM_OUTPUT
  • D3D11_BIND_DECODER
  • D3D11_BIND_VIDEO_ENCODER
Bendera ikat berikut akan diasumsikan berdasarkan keberadaan bendera sumber daya D3D12 yang sesuai, dan dapat dihapus dengan menentukan bendera ikat:
  • D3D11_BIND_SHADER_RESOURCE, selama D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE tidak ada
  • D3D11_BIND_RENDER_TARGET, jika D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET ada
  • D3D11_BIND_DEPTH_STENCIL, jika D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL ada
  • D3D11_BIND_UNORDERED_ACCESS, jika D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS ada
Target render atau buffer UAV dapat dibungkus tanpa mengesampingkan bendera; tetapi buffer VB/IB/CB/SO harus memiliki bendera ikat yang ditentukan secara manual, karena ini saling eksklusif dalam Direct3D 11.

MiscFlags

Jika bendera misc bukan nol, maka bendera yang ditentukan akan menjadi OR'd ke dalam desc sumber daya akhir dengan bendera yang disimpulkan. Bendera misc dapat ditentukan sebagian untuk menambahkan fungsionalitas, tetapi bendera misc yang tersirat tidak dapat ditutupi.

Bendera misc berikut (D3D11_RESOURCE_MISC_FLAG konstanta enumerasi) tidak akan diasumsikan:

  • D3D11_RESOURCE_MISC_GENERATE_MIPS (konflik dengan CLAMP).
  • D3D11_RESOURCE_MISC_TEXTURECUBE (mengubah perilaku tampilan default).
  • D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (eksklusif dengan beberapa bendera ikat).
  • D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (eksklusif dengan jenis UAV lainnya).
  • D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (eksklusif dengan jenis UAV lainnya).
  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP (melarang QIs D3D10, konflik dengan GENERATE_MIPS).
  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. Dimungkinkan untuk membuat sumber daya mutex kunci D3D11, membuat handel bersama untuk itu, dan membukanya melalui 11on12 atau D3D11.
Bendera misc berikut akan diasumsikan, dan tidak dapat dihapus dari desc sumber daya yang dihasilkan. Jika salah satu dari ini diatur, dan sumber daya D3D12 tidak mendukungnya, pembuatan akan gagal:
  • D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_NTHANDLE, D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE, jika ada bendera heap misc yang sesuai.
  • D3D11_RESOURCE_MISC_GDI_COMPATIBLE, jika sumber daya D3D12 kompatibel dengan GDI.
  • D3D11_RESOURCE_MISC_TILED, jika sumber daya D3D12 dibuat melalui CreateReservedResource.
  • D3D11_RESOURCE_MISC_TILE_POOL, jika tumpukan D3D12 diteruskan.
Bendera misc berikut tidak valid untuk ditentukan untuk API ini:
  • D3D11_RESOURCE_MISC_RESTRICTED_CONTENT, karena D3D12 hanya mendukung perlindungan perangkat keras.
  • D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER tidak ada di 12, dan tidak dapat ditambahkan setelah pembuatan sumber daya.
  • D3D11_RESOURCE_MISC_GUARDED hanya dimaksudkan untuk ditetapkan oleh mekanisme pembuatan internal.

CPUAccessFlags

CPUAccessFlags tidak disimpulkan dari sumber daya D3D12. Ini karena semua sumber daya diperlakukan sebagai D3D11_USAGE_DEFAULT, sehingga validasi paksa CPUAccessFlags yang mengasumsikan Peta buffer atau tekstur default. Sumber daya yang dibungkus tidak mendukung Peta (BUANG). Sumber daya yang dibungkus tidak mendukung Peta (NO_OVERWRITE), tetapi yang dapat diimplementasikan dengan memetakan sumber daya D3D12 yang mendasar sebagai gantinya. Mengeluarkan panggilan Peta pada sumber daya yang dibungkus akan disinkronkan dengan semua pekerjaan D3D11 yang dikirimkan terhadap sumber daya tersebut, kecuali bendera DO_NOT_WAIT digunakan.

StructureByteStride

Ukuran setiap elemen dalam struktur buffer (dalam byte) ketika buffer mewakili buffer terstruktur.

Keterangan

Gunakan struktur ini dengan CreateWrappedResource.

Persyaratan

Persyaratan Nilai
Header d3d11on12.h

Lihat juga

11on12 Struktur