Bagikan melalui


struktur D3D11_FEATURE_DATA_D3D11_OPTIONS (d3d11.h)

Menjelaskan opsi fitur Direct3D 11.1 di driver grafis saat ini.

Catatan

Struktur ini didukung oleh runtime Direct3D 11.1, yang tersedia pada Sistem operasi Windows 8 dan yang lebih baru.

Sintaks

typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
  BOOL OutputMergerLogicOp;
  BOOL UAVOnlyRenderingForcedSampleCount;
  BOOL DiscardAPIsSeenByDriver;
  BOOL FlagsForUpdateAndCopySeenByDriver;
  BOOL ClearView;
  BOOL CopyWithOverlap;
  BOOL ConstantBufferPartialUpdate;
  BOOL ConstantBufferOffsetting;
  BOOL MapNoOverwriteOnDynamicConstantBuffer;
  BOOL MapNoOverwriteOnDynamicBufferSRV;
  BOOL MultisampleRTVWithForcedSampleCountOne;
  BOOL SAD4ShaderInstructions;
  BOOL ExtendedDoublesShaderInstructions;
  BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;

Anggota

OutputMergerLogicOp

Menentukan apakah operasi logika tersedia dalam status campuran. Runtime mengatur anggota ini ke TRUE jika operasi logika tersedia dalam status campuran dan FALSE sebaliknya. Anggota ini FALSE untuk tingkat fitur 9.1, 9.2, dan 9.3. Anggota ini bersifat opsional untuk tingkat fitur 10, 10.1, dan 11. Anggota ini TRUE untuk tingkat fitur 11.1.

UAVOnlyRenderingForcedSampleCount

Menentukan apakah driver dapat merender tanpa tampilan target render (RTV) atau tampilan stensil kedalaman (DSV), dan hanya terikat tampilan akses yang tidak diurutkan (UAV). Runtime mengatur anggota ini ke TRUE jika driver dapat merender tanpa RTV atau DSV dan hanya UAV yang terikat dan FALSE sebaliknya. Jika TRUE, Anda dapat mengatur anggota ForcedSampleCountdari D3D11_RASTERIZER_DESC1 ke 1, 4, atau 8 saat Anda merender tanpa RTV atau DSV dan hanya UAV yang terikat. Untuk tingkat fitur 11.1, anggota ini selalu TRUE dan Anda juga dapat mengatur ForcedSampleCount ke 16 selain 1, 4, atau 8. Nilai default ForcedSampleCount adalah 0, yang berarti sama seperti jika nilai diatur ke 1. Anda selalu dapat mengatur ForcedSampleCount ke 0 atau 1 untuk penyajian khusus UAV secara independen tentang bagaimana anggota ini ditetapkan.

DiscardAPIsSeenByDriver

Menentukan apakah driver mendukung metode ID3D11DeviceContext1::D iscardView dan ID3D11DeviceContext1::D iscardResource . Runtime mengatur anggota ini ke TRUE jika driver mendukung metode ini dan FALSE sebaliknya. Bagaimana anggota ini diatur tidak menunjukkan apakah driver benar-benar menggunakan metode ini; artinya, driver mungkin mengabaikan metode ini jika tidak berguna untuk perangkat keras. Jika FALSE, runtime tidak mengekspos metode ini ke driver karena driver tidak mendukungnya. Anda dapat memantau anggota ini selama pengembangan untuk mengesampingkan driver warisan pada perangkat keras di mana metode ini mungkin bermanfaat. Anda tidak diharuskan menulis jalur kode terpisah berdasarkan apakah anggota ini TRUE atau FALSE; Anda dapat memanggil metode ini kapan pun berlaku.

FlagsForUpdateAndCopySeenByDriver

Menentukan apakah driver mendukung semantik baru untuk penyalinan dan pembaruan yang diekspos oleh metode ID3D11DeviceContext1::CopySubresourceRegion1 dan ID3D11DeviceContext1::UpdateSubresource1 . Runtime mengatur anggota ini ke TRUE jika driver mendukung semantik baru untuk penyalinan dan pembaruan. Runtime mengatur anggota ini ke FALSE hanya untuk driver warisan. Runtime menangani anggota ini mirip dengan anggota DiscardAPIsSeenByDriver .

ClearView

Menentukan apakah driver mendukung metode ID3D11DeviceContext1::ClearView . Runtime mengatur anggota ini ke TRUE jika driver mendukung metode ini dan FALSE sebaliknya. Jika FALSE, runtime tidak mengekspos metode ini ke driver karena driver tidak mendukungnya.

Catatan Untuk tingkat fitur 9.1, 9.2, dan 9.3, anggota ini selalu TRUE karena opsi ditiru oleh runtime.
 

CopyWithOverlap

Menentukan apakah Anda dapat memanggil ID3D11DeviceContext1::CopySubresourceRegion1 dengan persegi panjang sumber dan tujuan yang tumpang tindih. Runtime mengatur anggota ini ke TRUE jika Anda dapat memanggil CopySubresourceRegion1 dengan sumber dan persegi panjang tujuan yang tumpang tindih dan FALSE sebaliknya. Jika FALSE, runtime tidak mengekspos metode ini ke driver karena driver tidak mendukungnya.

Catatan Untuk tingkat fitur 9.1, 9.2, dan 9.3, anggota ini selalu TRUE karena driver sudah mendukung opsi untuk tingkat fitur ini.
 

ConstantBufferPartialUpdate

Menentukan apakah driver mendukung pembaruan parsial buffer konstanta. Runtime mengatur anggota ini ke TRUE jika driver mendukung pembaruan parsial buffer konstanta dan FALSE sebaliknya. Jika FALSE, runtime tidak mengekspos operasi ini ke driver karena driver tidak mendukungnya.

Catatan Untuk tingkat fitur 9.1, 9.2, dan 9.3, anggota ini selalu TRUE karena opsi ditiru oleh runtime.
 

ConstantBufferOffsetting

Menentukan apakah driver mendukung semantik baru untuk mengatur offset dalam buffer konstan untuk shader. Runtime mengatur anggota ini ke TRUE jika driver mendukung memungkinkan Anda menentukan offset saat Anda memanggil metode baru seperti metode ID3D11DeviceContext1::VSSetConstantBuffers1 dan FALSE sebaliknya. Jika FALSE, runtime tidak mengekspos operasi ini ke driver karena driver tidak mendukungnya.

Catatan Untuk tingkat fitur 9.1, 9.2, dan 9.3, anggota ini selalu TRUE karena opsi ditiru oleh runtime.
 

MapNoOverwriteOnDynamicConstantBuffer

Menentukan apakah Anda dapat memanggil ID3D11DeviceContext::Map dengan D3D11_MAP_WRITE_NO_OVERWRITE pada buffer konstanta dinamis (yaitu, apakah driver mendukung operasi ini). Runtime mengatur anggota ini ke TRUE jika driver mendukung operasi ini dan FALSE sebaliknya. Jika FALSE, runtime gagal metode ini karena driver tidak mendukung operasi.

Catatan Untuk tingkat fitur 9.1, 9.2, dan 9.3, anggota ini selalu TRUE karena opsi ditiru oleh runtime.
 

MapNoOverwriteOnDynamicBufferSRV

Menentukan apakah Anda dapat memanggil ID3D11DeviceContext::Map dengan D3D11_MAP_WRITE_NO_OVERWRITE pada buffer dinamis SRV (yaitu, apakah driver mendukung operasi ini). Runtime mengatur anggota ini ke TRUE jika driver mendukung operasi ini dan FALSE sebaliknya. Jika FALSE, runtime gagal metode ini karena driver tidak mendukung operasi.

MultisampleRTVWithForcedSampleCountOne

Menentukan apakah driver mendukung penyajian multisample saat Anda merender dengan RTV terikat. Jika TRUE, Anda dapat mengatur anggota ForcedSampleCountdari D3D11_RASTERIZER_DESC1 ke 1 dengan batas RTV multisample. Driver dapat mendukung opsi ini pada tingkat fitur 10 dan yang lebih tinggi. Jika FALSE, pembuatan rasterizer-state akan gagal karena driver warisan atau tingkat fitur terlalu rendah.

SAD4ShaderInstructions

Menentukan apakah perangkat keras dan driver mendukung fungsi intrinsik msad4 dalam shader. Runtime mengatur anggota ini ke TRUE jika dukungan perangkat keras dan driver memanggil ke fungsi intrinsik msad4 dalam shader. Jika FALSE, driver adalah warisan atau perangkat keras tidak mendukung opsi; runtime akan gagal pembuatan shader untuk shader yang menggunakan msad4.

ExtendedDoublesShaderInstructions

Menentukan apakah perangkat keras dan driver mendukung fungsi intrinsik fma dan instruksi ganda yang diperluas lainnya (DDIV dan DRCP) dalam shader. Fungsi intrinsik fma memancarkan instruksi DFMA ganda yang diperluas. Runtime mengatur anggota ini ke TRUE jika dukungan perangkat keras dan driver memperpanjang instruksi ganda dalam shader (model shader 5 dan yang lebih tinggi). Dukungan opsi ini menyiratkan dukungan instruksi shader presisi ganda dasar juga. Anda bisa menggunakan nilai D3D11_FEATURE_DOUBLES untuk mengkueri dukungan shader presisi ganda. Jika FALSE, perangkat keras dan driver tidak mendukung opsi; runtime akan gagal pembuatan shader untuk shader yang menggunakan instruksi ganda yang diperluas.

ExtendedResourceSharing

Menentukan apakah perangkat keras dan driver telah memperluas dukungan untuk jenis dan format sumber daya Texture2D bersama. Runtime mengatur anggota ini ke TRUE jika perangkat keras dan driver mendukung berbagi sumber daya Texture2D yang diperluas.

Keterangan

Jika perangkat Microsoft Direct3D mendukung fitur tingkat 11.1 (D3D_FEATURE_LEVEL_11_1), saat Anda memanggil ID3D11Device::CheckFeatureSupport dengan D3D11_FEATURE_D3D11_OPTIONS, CheckFeatureSupport mengembalikan pointer ke D3D11_FEATURE_DATA_D3D11_OPTIONS dengan semua anggota diatur ke TRUE kecuali SAD4ShaderInstructions dan ExtendedDoublesShaderInstructions anggota, yang secara opsional didukung oleh perangkat keras dan driver dan oleh karena itu dapat TRUE atau FALSE.

Fitur tingkat 11.1 menyediakan fitur tambahan berikut:

  • UAV di setiap tahap shader dengan 64 slot ikat UAV, bukan 8.
  • Rasterisasi independen target, yang memungkinkan Anda mengatur anggota ForcedSampleCountdari D3D11_RASTERIZER_DESC1 ke 1, 4, 8, atau 16 dan untuk merender ke RTV dengan satu sampel.
  • Penyajian khusus UAV dengan anggota ForcedSampleCountdari D3D11_RASTERIZER_DESC1 diatur hingga 16 (hanya hingga 8 untuk tingkat fitur 11).
Runtime selalu mengatur pengelompokan anggota berikut secara identik. Artinya, semua nilai dalam pengelompokan adalah TRUE atau FALSE bersama-sama:
  • BuangAPIsSeenByDriver dan FlagsForUpdateAndCopySeenByDriver
  • ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting, dan MapNoOverwriteOnDynamicConstantBuffer
  • MapNoOverwriteOnDynamicBufferSRV dan MultisampleRTVWithForcedSampleCountOne

Persyaratan

   
Klien minimum yang didukung Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 dan Platform Update untuk Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP]
Header d3d11.h

Lihat juga

Struktur Inti

D3D11_FEATURE