enumerasi D3D11_RESOURCE_MISC_FLAG (d3d11.h)

Mengidentifikasi opsi untuk sumber daya.

Sintaks

typedef enum D3D11_RESOURCE_MISC_FLAG {
  D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
  D3D11_RESOURCE_MISC_SHARED = 0x2L,
  D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L,
  D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L,
  D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
  D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
  D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
  D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L,
  D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L,
  D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L,
  D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L,
  D3D11_RESOURCE_MISC_GUARDED = 0x8000L,
  D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L,
  D3D11_RESOURCE_MISC_TILED = 0x40000L,
  D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L,
  D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE,
  D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
} ;

Konstanta

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
Nilai: 0x1L
Mengaktifkan pembuatan peta MIP dengan menggunakan ID3D11DeviceContext::GenerateMips pada sumber daya tekstur. Sumber daya harus dibuat dengan bendera ikatan yang menentukan bahwa sumber daya adalah target render dan sumber daya shader.
D3D11_RESOURCE_MISC_SHARED
Nilai: 0x2L
Memungkinkan berbagi data sumber daya antara dua atau beberapa perangkat Direct3D. Satu-satunya sumber daya yang dapat dibagikan adalah tekstur 2D non-mipmapped.


D3D11_RESOURCE_MISC_SHARED dan D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX saling eksklusif.


Perangkat WARP dan REF tidak mendukung sumber daya bersama.
Jika Anda mencoba membuat sumber daya dengan bendera ini pada perangkat WARP atau REF , metode buat akan mengembalikan kode kesalahan E_OUTOFMEMORY .


Catatan Dimulai dengan Windows 8, perangkat WARP sepenuhnya mendukung sumber daya bersama.

 

Catatan Dimulai dengan Windows 8, kami sarankan Anda mengaktifkan berbagi data sumber daya antara dua atau beberapa perangkat Direct3D dengan menggunakan kombinasi bendera D3D11_RESOURCE_MISC_SHARED_NTHANDLE dan D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX sebagai gantinya.

 
D3D11_RESOURCE_MISC_TEXTURECUBE
Nilai: 0x4L
Mengatur sumber daya menjadi tekstur kubus yang dibuat dari Texture2DArray yang berisi 6 tekstur.
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Nilai: 0x10L
Memungkinkan instancing konten yang dihasilkan GPU.
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Nilai: 0x20L
Mengaktifkan sumber daya sebagai buffer alamat byte.
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Nilai: 0x40L
Mengaktifkan sumber daya sebagai buffer terstruktur.
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
Nilai: 0x80L
Mengaktifkan sumber daya dengan penjepitan peta MIP untuk digunakan dengan ID3D11DeviceContext::SetResourceMinLOD.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Nilai: 0x100L
Memungkinkan sumber daya disinkronkan dengan menggunakan IDXGIKeyedMutex::AcquireSync dan
IDXGIKeyedMutex::ReleaseSync Api.
API pembuatan sumber daya Direct3D 11 berikut, yang mengambil parameter D3D11_RESOURCE_MISC_FLAG , telah diperluas untuk mendukung bendera baru.


Jika Anda memanggil salah satu metode ini dengan set bendera D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX , antarmuka yang dikembalikan akan mendukung antarmuka IDXGIKeyedMutex . Anda dapat mengambil pointer ke antarmuka IDXGIKeyedMutex dari sumber daya dengan menggunakan IUnknown::QueryInterface. Antarmuka IDXGIKeyedMutex mengimplementasikan API IDXGIKeyedMutex::AcquireSync dan IDXGIKeyedMutex::ReleaseSync untuk menyinkronkan akses ke permukaan. Perangkat yang membuat permukaan, dan perangkat lain yang membuka permukaan dengan menggunakan OpenSharedResource, harus memanggil IDXGIKeyedMutex::AcquireSync sebelum mengeluarkan perintah penyajian apa pun ke permukaan. Ketika perangkat tersebut selesai dirender, perangkat harus memanggil IDXGIKeyedMutex::ReleaseSync.


D3D11_RESOURCE_MISC_SHARED dan D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX saling eksklusif.


Perangkat WARP dan REF tidak mendukung sumber daya bersama.
Jika Anda mencoba membuat sumber daya dengan bendera ini pada perangkat WARP atau REF , metode buat akan mengembalikan kode kesalahan E_OUTOFMEMORY .


Catatan Dimulai dengan Windows 8, perangkat WARP sepenuhnya mendukung sumber daya bersama.

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Nilai: 0x200L
Mengaktifkan sumber daya yang kompatibel dengan GDI. Anda harus mengatur bendera D3D11_RESOURCE_MISC_GDI_COMPATIBLE pada permukaan yang Anda gunakan dengan GDI. Mengatur bendera D3D11_RESOURCE_MISC_GDI_COMPATIBLE memungkinkan penyajian GDI di permukaan melalui IDXGISurface1::GetDC.


Pertimbangkan tips pemrograman berikut untuk menggunakan D3D11_RESOURCE_MISC_GDI_COMPATIBLE saat Anda membuat tekstur atau menggunakan tekstur tersebut dalam rantai pertukaran:


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX dan D3D11_RESOURCE_MISC_GDI_COMPATIBLE saling eksklusif. Oleh karena itu, jangan gunakan bersama-sama.

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP dan D3D11_RESOURCE_MISC_GDI_COMPATIBLE saling eksklusif. Oleh karena itu, jangan gunakan bersama-sama.

  • Anda harus mengikat tekstur sebagai target render untuk tahap output-merger. Misalnya, atur bendera D3D11_BIND_RENDER_TARGET di anggota BindFlags dari struktur D3D11_TEXTURE2D_DESC .

  • Anda harus mengatur jumlah maksimum tingkat peta MIP ke 1. Misalnya, atur anggota MipLevels dari struktur D3D11_TEXTURE2D_DESC ke 1.

  • Anda harus menentukan bahwa tekstur memerlukan akses baca dan tulis oleh GPU. Misalnya, atur Anggota penggunaan struktur D3D11_TEXTURE2D_DESC ke D3D11_USAGE_DEFAULT.


  • Anda harus mengatur format tekstur ke salah satu jenis berikut.


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    Misalnya, atur anggota Format dari struktur D3D11_TEXTURE2D_DESC ke salah satu jenis ini.

  • Anda tidak dapat menggunakan D3D11_RESOURCE_MISC_GDI_COMPATIBLE dengan multisampling. Oleh karena itu, atur anggota Hitung dari struktur DXGI_SAMPLE_DESC ke 1. Kemudian, atur anggota SampleDesc dari struktur D3D11_TEXTURE2D_DESC ke struktur DXGI_SAMPLE_DESC ini.

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Nilai: 0x800L
Atur bendera ini untuk mengaktifkan penggunaan nilai NT HANDLE saat Anda membuat sumber daya bersama. Dengan mengaktifkan bendera ini, Anda menghentikan penggunaan nilai HANDLE yang ada.

Nilai menentukan jenis sumber daya bersama baru yang mengarahkan runtime untuk menggunakan nilai NT HANDLE untuk sumber daya bersama. Runtime kemudian harus mengonfirmasi bahwa sumber daya bersama berfungsi pada semua perangkat keras pada tingkat fitur yang ditentukan.


Tanpa set bendera ini, runtime tidak memvalidasi parameter sumber daya bersama secara ketat (yaitu, format, bendera, penggunaan, dan sebagainya). Ketika runtime tidak memvalidasi parameter sumber daya bersama, perilaku sebagian besar API Direct3D mungkin tidak terdefinisi dan mungkin bervariasi dari driver ke driver.

Direct3D 11 dan yang lebih lama: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
Nilai: 0x1000L
Atur bendera ini untuk menunjukkan bahwa sumber daya mungkin berisi konten yang dilindungi; oleh karena itu, sistem operasi harus menggunakan sumber daya hanya ketika driver dan perangkat keras mendukung perlindungan konten. Jika driver dan perangkat keras tidak mendukung perlindungan konten dan Anda mencoba membuat sumber daya dengan bendera ini, pembuatan sumber daya gagal.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
Nilai: 0x2000L
Atur bendera ini untuk menunjukkan bahwa sistem operasi membatasi akses ke permukaan bersama. Anda dapat menggunakan bendera ini bersama dengan bendera D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER dan hanya saat Anda membuat permukaan bersama. Proses yang membuat sumber daya bersama selalu dapat membuka sumber daya bersama.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Nilai: 0x4000L
Atur bendera ini untuk menunjukkan bahwa driver membatasi akses ke permukaan bersama. Anda dapat menggunakan bendera ini bersama dengan bendera D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE dan hanya saat Anda membuat permukaan bersama. Proses yang membuat sumber daya bersama selalu dapat membuka sumber daya bersama.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_RESOURCE_MISC_GUARDED
Nilai: 0x8000L
Atur bendera ini untuk menunjukkan bahwa sumber daya dijaga. Sumber daya tersebut dikembalikan oleh API IDCompositionSurface::BeginDraw (DirectComposition) dan ISurfaceImageSourceNative::BeginDraw (Windows Runtime). Untuk API ini, Anda menyediakan wilayah yang menarik (ROI) di permukaan untuk diperbarui. Permukaan ini tidak kompatibel dengan beberapa target render (MRT).

Sumber daya yang dijaga secara otomatis membatasi semua penulisan ke wilayah yang terkait dengan salah satu API sebelumnya. Selain itu, sumber daya memberlakukan akses ke ROI dengan pembatasan ini:


Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_RESOURCE_MISC_TILE_POOL
Nilai: 0x20000L
Atur bendera ini untuk menunjukkan bahwa sumber daya adalah kumpulan petak peta.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.2.
D3D11_RESOURCE_MISC_TILED
Nilai: 0x40000L
Atur bendera ini untuk menunjukkan bahwa sumber daya adalah sumber daya ubin.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.2.
D3D11_RESOURCE_MISC_HW_PROTECTED
Nilai: 0x80000L
Atur bendera ini untuk menunjukkan bahwa sumber daya harus dibuat sehingga akan dilindungi oleh perangkat keras. Pembuatan sumber daya akan gagal jika perlindungan konten perangkat keras tidak didukung.

Bendera ini memiliki batasan berikut:


  • Bendera ini tidak dapat digunakan dengan nilai D3D11_USAGE berikut:

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • Bendera ini tidak dapat digunakan dengan nilai D3D11_BIND_FLAG berikut.

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • Tidak ada bendera akses CPU yang dapat ditentukan.


Catatan  

Membuat tekstur menggunakan bendera ini tidak secara otomatis menjamin bahwa perlindungan perangkat keras akan diaktifkan untuk alokasi yang mendasar. Beberapa implementasi mengharuskan komponen DRM diinisialisasi terlebih dahulu sebelum jaminan perlindungan.


 

Catatan Nilai enumerasi ini didukung dimulai dengan Windows 10.
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
Memungkinkan sumber daya bekerja dengan fitur permukaan yang dapat ditampilkan . Anda harus menggunakan D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE dalam kombinasi dengan D3D11_RESOURCE_MISC_SHARED dan D3D11_RESOURCE_MISC_SHARED_NTHANDLE.
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

Keterangan

Enumerasi ini digunakan dalam D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC.

Bendera ini dapat digabungkan dengan bitwise OR.

D3D11_RESOURCE_MISC_FLAG tidak dapat digunakan saat membuat sumber daya dengan bendera D3D11_CPU_ACCESS.

Persyaratan

Persyaratan Nilai
Header d3d11.h

Lihat juga

Enumerasi Sumber Daya