D3D11_CREATE_DEVICE_FLAG
列挙型フラグメンバー 9
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| D3D11_CREATE_DEVICE_SINGLETHREADED | 1 | 0x1 | アプリケーションが Direct3D 11 インターフェイスのメソッドを単一のスレッドからのみ呼び出す場合は、このフラグを使用します。既定では、ID3D11Device オブジェクトは スレッドセーフ です。 このフラグを使用すると、パフォーマンスを向上させることができます。ただし、このフラグを使用しているにもかかわらず、アプリケーションが複数のスレッドから Direct3D 11 インターフェイスのメソッドを呼び出した場合、動作は未定義になります。 |
| D3D11_CREATE_DEVICE_DEBUG | 2 | 0x2 | デバッグ レイヤー をサポートするデバイスを作成します。 このフラグを使用するには、D3D11*SDKLayers.dll がインストールされている必要があります。インストールされていない場合、デバイスの作成は失敗します。D3D11_1SDKLayers.dll を入手するには、Windows 8 用の SDK をインストールしてください。 |
| D3D11_CREATE_DEVICE_SWITCH_TO_REF | 4 | 0x4 | メモ このフラグは Direct3D 11 ではサポートされていません。
|
| D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS | 8 | 0x8 | 複数のスレッドが作成されるのを防ぎます。このフラグを Windows Advanced Rasterization Platform (WARP) デバイスと共に使用すると、WARP は追加のスレッドを作成せず、 すべてのラスタライズは呼び出し元のスレッドで実行されます。このフラグは一般的な用途には推奨されません。解説を参照してください。 |
| D3D11_CREATE_DEVICE_BGRA_SUPPORT | 32 | 0x20 | BGRA 形式 (DXGI_FORMAT_B8G8R8A8_UNORM および DXGI_FORMAT_B8G8R8A8_UNORM_SRGB) をサポートするデバイスを作成します。WDDM 1.1 以降のドライバーを備えた 10level9 以上のすべてのハードウェアは BGRA 形式をサポートします。 メモ Direct3D リソースとの Direct2D 相互運用には必須です。
|
| D3D11_CREATE_DEVICE_DEBUGGABLE | 64 | 0x40 | シェーダーのデバッグに使用できる情報を、デバイスとドライバーに保持させます。このフラグによる正確な影響はドライバーごとに異なります。 このフラグを使用するには、D3D11_1SDKLayers.dll がインストールされている必要があります。インストールされていない場合、デバイスの作成は失敗します。作成されたデバイスは デバッグ レイヤー をサポートします。D3D11_1SDKLayers.dll を入手するには、Windows 8 用の SDK をインストールしてください。 このフラグを使用しても、現在のドライバーがシェーダーのデバッグをサポートしていない場合は、デバイスの作成が失敗します。シェーダーのデバッグには、Windows 8 用の WDDM (WDDM 1.2) に準拠して実装されたドライバーが必要です。 Direct3D 11: この値は Direct3D 11.1 以降でのみサポートされます。 |
| D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY | 128 | 0x80 | デバッグ レイヤー を有効にするレジストリ設定を、Direct3D ランタイムに無視させます。デバッグ レイヤーは、DirectX SDK の一部として提供されていた DirectX コントロール パネル を使用して有効にできます。DirectX SDK の最後のバージョンは 2010 年 6 月に出荷されており、Microsoft ダウンロード センター からダウンロードできます。通常はリリース ビルドでのみアプリにこのフラグを設定することで、エンド ユーザーが DirectX コントロール パネル を使用してアプリの Direct3D の使用状況を監視するのを防ぐことができます。 メモ Visual Studio Ultimate 2012 などの Direct3D デバッグ ツールがアプリにフックするのを防ぐために、アプリでこのフラグを設定することもできます。
Direct3D 11: この値は Direct3D 11.1 以降でのみサポートされます。 |
| D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT | 256 | 0x100 | 完了までに 2 秒を超える GPU ワークロードをデバイスが生成し、それらをオペレーティング システムに正常に完了させたい場合は、このフラグを使用します。このフラグが設定されていない場合、オペレーティング システムは実行に 2 秒を超える時間がかかった GPU パケットを検出すると、タイムアウトの検出と回復 を実行します。このフラグが設定されている場合、オペレーティング システムは GPU をリセットせずに、そのような長時間実行されるパケットの実行を許可します。デバイスに高い応答性が求められる場合は、オペレーティング システムが GPU のタイムアウトを検出して回復できるように、このフラグを設定しないことをお勧めします。コンピューティング、画像認識、ビデオ エンコードなど、時間のかかるバックグラウンド タスクをデバイスで実行する必要がある場合は、それらのタスクを正常に完了させるために、このフラグを設定することをお勧めします。 Direct3D 11: この値は Direct3D 11.1 以降でのみサポートされます。 |
| D3D11_CREATE_DEVICE_VIDEO_SUPPORT | 2048 | 0x800 | ディスプレイ ドライバーが Windows 8 用の WDDM (WDDM 1.2) に準拠して実装されていない場合に、Direct3D デバイスの作成を強制的に失敗させます。ディスプレイ ドライバーが WDDM 1.2 に準拠して実装されていない場合、ビデオをサポートするのは 機能レベル 9.1、9.2、または 9.3 で作成された Direct3D デバイスのみです。そのため、このフラグが設定されている場合、ランタイムは機能レベル 9.1、9.2、または 9.3 でのみ Direct3D デバイスを作成します。ビデオよりも Direct3D の機能を優先したいアプリケーションでは、このフラグを指定しないことをお勧めします。機能レベル 10 以上が利用可能な場合、ランタイムはビデオのサポートに関係なくその機能レベルを使用します。 このフラグが設定されている場合、Basic Render Device (BRD) でのデバイスの作成は、BRD がビデオ デコードをサポートしていなくても成功します。これは、Media Foundation のビデオ スタックが BRD 上ではソフトウェア モードで動作するためです。この状況で、ビデオ スタックに Direct3D デバイスを 2 回作成させると (このフラグを指定してデバイスを作成し、次に BRD を検出してから、フラグを指定せずに再度デバイスを作成する)、かえってパフォーマンスが低下します。 ドライバーの種類 D3D_DRIVER_TYPE_NULL、D3D_DRIVER_TYPE_REFERENCE、または D3D_DRIVER_TYPE_SOFTWARE で Direct3D デバイスを作成しようとした場合、対応するドライバーはいずれもビデオ機能を提供しないため、どの 機能レベル でもデバイスの作成は失敗します。ドライバーの種類 D3D_DRIVER_TYPE_WARP で Direct3D デバイスを作成しようとした場合は、ビデオのソフトウェア フォールバックを可能にするために、デバイスの作成は成功します。 Direct3D 11: この値は Direct3D 11.1 以降でのみサポートされます。 |
公式ドキュメント
デバイスの作成に使用されるパラメーターについて説明します。
解説(Remarks)
デバイス作成フラグは、D3D11CreateDevice および D3D11CreateDeviceAndSwapChain で使用されます。
アプリケーションは、特に複数の CPU コアを備えたマシンでパフォーマンスを向上させるために、スレッドを動的に作成 (および破棄) することがあります。しかし、アプリケーションが余分なスレッドの作成を防ぐ必要がある場合もあります。たとえば、デバッグを簡略化したい場合、コードをプロファイリングしたい場合、ツールを開発する場合などです。このような場合は、D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS を使用して、アプリケーションを妨げる可能性のある追加のスレッドをランタイムやビデオ ドライバーが作成しないよう要求します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D3D11_CREATE_DEVICE_FLAG : unsigned int {
D3D11_CREATE_DEVICE_SINGLETHREADED = 1,
D3D11_CREATE_DEVICE_DEBUG = 2,
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4,
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8,
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32,
D3D11_CREATE_DEVICE_DEBUGGABLE = 64,
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128,
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256,
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048
} D3D11_CREATE_DEVICE_FLAG;[Flags]
public enum D3D11_CREATE_DEVICE_FLAG : uint
{
D3D11_CREATE_DEVICE_SINGLETHREADED = 1,
D3D11_CREATE_DEVICE_DEBUG = 2,
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4,
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8,
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32,
D3D11_CREATE_DEVICE_DEBUGGABLE = 64,
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128,
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256,
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048,
}<Flags>
Public Enum D3D11_CREATE_DEVICE_FLAG As UInteger
D3D11_CREATE_DEVICE_SINGLETHREADED = 1
D3D11_CREATE_DEVICE_DEBUG = 2
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32
D3D11_CREATE_DEVICE_DEBUGGABLE = 64
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048
End Enumimport enum
class D3D11_CREATE_DEVICE_FLAG(enum.IntFlag):
D3D11_CREATE_DEVICE_SINGLETHREADED = 1
D3D11_CREATE_DEVICE_DEBUG = 2
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32
D3D11_CREATE_DEVICE_DEBUGGABLE = 64
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048// D3D11_CREATE_DEVICE_FLAG (flags)
pub const D3D11_CREATE_DEVICE_SINGLETHREADED: u32 = 1;
pub const D3D11_CREATE_DEVICE_DEBUG: u32 = 2;
pub const D3D11_CREATE_DEVICE_SWITCH_TO_REF: u32 = 4;
pub const D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS: u32 = 8;
pub const D3D11_CREATE_DEVICE_BGRA_SUPPORT: u32 = 32;
pub const D3D11_CREATE_DEVICE_DEBUGGABLE: u32 = 64;
pub const D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY: u32 = 128;
pub const D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT: u32 = 256;
pub const D3D11_CREATE_DEVICE_VIDEO_SUPPORT: u32 = 2048;// D3D11_CREATE_DEVICE_FLAG
const (
D3D11_CREATE_DEVICE_SINGLETHREADED uint32 = 1
D3D11_CREATE_DEVICE_DEBUG uint32 = 2
D3D11_CREATE_DEVICE_SWITCH_TO_REF uint32 = 4
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS uint32 = 8
D3D11_CREATE_DEVICE_BGRA_SUPPORT uint32 = 32
D3D11_CREATE_DEVICE_DEBUGGABLE uint32 = 64
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY uint32 = 128
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT uint32 = 256
D3D11_CREATE_DEVICE_VIDEO_SUPPORT uint32 = 2048
)const
D3D11_CREATE_DEVICE_SINGLETHREADED = 1;
D3D11_CREATE_DEVICE_DEBUG = 2;
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4;
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8;
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32;
D3D11_CREATE_DEVICE_DEBUGGABLE = 64;
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128;
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256;
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048;// D3D11_CREATE_DEVICE_FLAG
pub const D3D11_CREATE_DEVICE_SINGLETHREADED: u32 = 1;
pub const D3D11_CREATE_DEVICE_DEBUG: u32 = 2;
pub const D3D11_CREATE_DEVICE_SWITCH_TO_REF: u32 = 4;
pub const D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS: u32 = 8;
pub const D3D11_CREATE_DEVICE_BGRA_SUPPORT: u32 = 32;
pub const D3D11_CREATE_DEVICE_DEBUGGABLE: u32 = 64;
pub const D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY: u32 = 128;
pub const D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT: u32 = 256;
pub const D3D11_CREATE_DEVICE_VIDEO_SUPPORT: u32 = 2048;const
D3D11_CREATE_DEVICE_SINGLETHREADED* = 1
D3D11_CREATE_DEVICE_DEBUG* = 2
D3D11_CREATE_DEVICE_SWITCH_TO_REF* = 4
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS* = 8
D3D11_CREATE_DEVICE_BGRA_SUPPORT* = 32
D3D11_CREATE_DEVICE_DEBUGGABLE* = 64
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY* = 128
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT* = 256
D3D11_CREATE_DEVICE_VIDEO_SUPPORT* = 2048enum D3D11_CREATE_DEVICE_FLAG : uint {
D3D11_CREATE_DEVICE_SINGLETHREADED = 1,
D3D11_CREATE_DEVICE_DEBUG = 2,
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 4,
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8,
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 32,
D3D11_CREATE_DEVICE_DEBUGGABLE = 64,
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128,
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 256,
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 2048,
}#define global D3D11_CREATE_DEVICE_SINGLETHREADED 0x1
#define global D3D11_CREATE_DEVICE_DEBUG 0x2
#define global D3D11_CREATE_DEVICE_SWITCH_TO_REF 0x4
#define global D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS 0x8
#define global D3D11_CREATE_DEVICE_BGRA_SUPPORT 0x20
#define global D3D11_CREATE_DEVICE_DEBUGGABLE 0x40
#define global D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY 0x80
#define global D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 0x100
#define global D3D11_CREATE_DEVICE_VIDEO_SUPPORT 0x800
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。