enumerasi D3D11_CREATE_DEVICE_FLAG (d3d11.h)

Menjelaskan parameter yang digunakan untuk membuat perangkat.

Sintaks

typedef enum D3D11_CREATE_DEVICE_FLAG {
  D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1,
  D3D11_CREATE_DEVICE_DEBUG = 0x2,
  D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
  D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
  D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
  D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40,
  D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
  D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100,
  D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800
} ;

Konstanta

 
D3D11_CREATE_DEVICE_SINGLETHREADED
Nilai: 0x1
Gunakan bendera ini jika aplikasi Anda hanya akan memanggil metode antarmuka Direct3D 11 dari satu utas. Secara default, objek ID3D11Device aman untuk utas.
Dengan menggunakan bendera ini, Anda dapat meningkatkan performa. Namun, jika Anda menggunakan bendera ini dan aplikasi Anda memanggil metode antarmuka Direct3D 11 dari beberapa utas, perilaku yang tidak terdefinisi dapat mengakibatkan.
D3D11_CREATE_DEVICE_DEBUG
Nilai: 0x2
Membuat perangkat yang mendukung lapisan debug.

Untuk menggunakan bendera ini, Anda harus menginstal D3D11*SDKLayers.dll; jika tidak, pembuatan perangkat gagal. Untuk mendapatkan D3D11_1SDKLayers.dll, instal SDK untuk Windows 8.
D3D11_CREATE_DEVICE_SWITCH_TO_REF
Nilai: 0x4
Catatan Bendera ini tidak didukung di Direct3D 11.

 
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS
Nilai: 0x8
Mencegah beberapa utas dibuat. Ketika bendera ini digunakan dengan perangkat Windows Advanced Rasterization Platform (WARP), tidak ada utas tambahan yang akan dibuat oleh WARP
dan semua rasterisasi akan terjadi pada utas panggilan. Bendera ini tidak disarankan untuk penggunaan umum. Lihat keterangan.
D3D11_CREATE_DEVICE_BGRA_SUPPORT
Nilai: 0x20
Membuat perangkat yang mendukung format BGRA (DXGI_FORMAT_B8G8R8A8_UNORM dan DXGI_FORMAT_B8G8R8A8_UNORM_SRGB). Semua perangkat keras 10level9 dan yang lebih tinggi dengan driver WDDM 1.1+ mendukung format BGRA.

Catatan Diperlukan untuk interoperabilitas Direct2D dengan sumber daya Direct3D.

 
D3D11_CREATE_DEVICE_DEBUGGABLE
Nilai: 0x40
Menyebabkan perangkat dan driver menyimpan informasi yang dapat Anda gunakan untuk penelusuran kesalahan shader. Dampak pasti dari bendera ini akan bervariasi dari driver ke driver.

Untuk menggunakan bendera ini, Anda harus menginstal D3D11_1SDKLayers.dll; jika tidak, pembuatan perangkat gagal. Perangkat yang dibuat mendukung lapisan debug. Untuk mendapatkan D3D11_1SDKLayers.dll, instal SDK untuk Windows 8.

Jika Anda menggunakan bendera ini dan driver saat ini tidak mendukung penelusuran kesalahan shader, pembuatan perangkat gagal. Penelusuran kesalahan shader memerlukan driver yang diimplementasikan ke WDDM untuk Windows 8 (WDDM 1.2).

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY
Nilai: 0x80
Menyebabkan runtime Direct3D mengabaikan pengaturan registri yang mengaktifkan lapisan debug. Anda dapat mengaktifkan lapisan debug dengan menggunakan Panel Kontrol DirectX yang disertakan sebagai bagian dari DirectX SDK. Kami mengirimkan versi terakhir DirectX SDK pada bulan Juni 2010; Anda dapat mengunduhnya dari Pusat Unduhan Microsoft. Anda dapat mengatur bendera ini di aplikasi, biasanya hanya dalam build rilis, untuk mencegah pengguna akhir menggunakan DirectX Panel Kontrol untuk memantau cara aplikasi menggunakan Direct3D.

Catatan Anda juga dapat mengatur bendera ini di aplikasi untuk mencegah alat penelusuran kesalahan Direct3D, seperti Visual Studio Ultimate 2012, agar tidak mengaitkan aplikasi Anda.

 

Windows 8.1: Bendera ini tidak mencegah Visual Studio 2013 dan yang lebih baru berjalan di Windows 8.1 dan yang lebih baru dari menghubungkan aplikasi Anda; sebagai gantinya gunakan ID3D11DeviceContext2::IsAnnotationEnabled. Bendera ini masih mencegah Visual Studio 2013 dan yang lebih baru berjalan di Windows 8 dan yang lebih lama dari menghubungkan aplikasi Anda.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT
Nilai: 0x100
Gunakan bendera ini jika perangkat akan menghasilkan beban kerja GPU yang membutuhkan waktu lebih dari dua detik untuk diselesaikan, dan Anda ingin sistem operasi berhasil menyelesaikannya. Jika bendera ini tidak diatur, sistem operasi melakukan deteksi dan pemulihan batas waktu saat mendeteksi paket GPU yang membutuhkan waktu lebih dari dua detik untuk dieksekusi. Jika bendera ini diatur, sistem operasi memungkinkan paket yang berjalan lama untuk dijalankan tanpa mengatur ulang GPU. Sebaiknya jangan atur bendera ini jika perangkat Anda harus sangat responsif sehingga sistem operasi dapat mendeteksi dan memulihkan dari batas waktu GPU. Sebaiknya atur bendera ini jika perangkat Anda perlu melakukan tugas latar belakang yang memakan waktu seperti komputasi, pengenalan gambar, dan pengodean video agar tugas tersebut berhasil diselesaikan.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
Nilai: 0x800
Memaksa pembuatan perangkat Direct3D gagal jika driver tampilan tidak diimplementasikan ke WDDM untuk Windows 8 (WDDM 1.2). Ketika driver tampilan tidak diimplementasikan ke WDDM 1.2, hanya perangkat Direct3D yang dibuat dengan tingkat fitur 9.1, 9.2, atau 9.3 yang mendukung video; oleh karena itu, jika bendera ini diatur, runtime membuat perangkat Direct3D hanya untuk tingkat fitur 9.1, 9.2, atau 9.3. Sebaiknya jangan tentukan bendera ini untuk aplikasi yang ingin mendukung kemampuan Direct3D melalui video. Jika fitur tingkat 10 dan yang lebih tinggi tersedia, runtime akan menggunakan tingkat fitur tersebut terlepas dari dukungan video.

Jika bendera ini diatur, pembuatan perangkat pada Perangkat Render Dasar (BRD) akan berhasil terlepas dari dukungan BRD yang hilang untuk dekode video. Ini karena tumpukan video Media Foundation beroperasi dalam mode perangkat lunak pada BRD. Dalam situasi ini, jika Anda memaksa tumpukan video untuk membuat perangkat Direct3D dua kali (buat perangkat sekali dengan bendera ini, selanjutnya temukan BRD, lalu lagi buat perangkat tanpa bendera), Anda benar-benar menurunkan performa.

Jika Anda mencoba membuat perangkat Direct3D dengan jenis driver D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_REFERENCE, atau D3D_DRIVER_TYPE_SOFTWARE, pembuatan perangkat gagal pada tingkat fitur apa pun karena tidak ada driver terkait yang menyediakan kemampuan video. Jika Anda mencoba membuat perangkat Direct3D dengan jenis driver D3D_DRIVER_TYPE_WARP, pembuatan perangkat berhasil memungkinkan fallback perangkat lunak untuk video.

Direct3D 11: Nilai ini tidak didukung hingga Direct3D 11.1.

Keterangan

Bendera pembuatan perangkat digunakan oleh D3D11CreateDevice dan D3D11CreateDeviceAndSwapChain.

Aplikasi mungkin secara dinamis membuat (dan menghancurkan) utas untuk meningkatkan performa terutama pada komputer dengan beberapa inti CPU. Namun, mungkin ada kasus ketika aplikasi perlu mencegah utas tambahan dibuat. Ini dapat terjadi ketika Anda ingin menyederhanakan penelusuran kesalahan, kode profil, atau mengembangkan alat misalnya. Untuk kasus ini, gunakan D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS untuk meminta agar runtime dan driver video tidak membuat utas tambahan yang mungkin mengganggu aplikasi.

Persyaratan

Persyaratan Nilai
Header d3d11.h

Lihat juga

Enumerasi Inti