D3D11_CREATE_DEVICE_FLAG列舉 (d3d11.h)
描述用來建立裝置的參數。
Syntax
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
} ;
常數
D3D11_CREATE_DEVICE_SINGLETHREADED 值: 0x1 如果您的應用程式只會從單一線程呼叫 Direct3D 11 介面的方法,請使用此旗標。 根據預設, ID3D11Device 對像是 安全線程。 藉由使用此旗標,您可以提升效能。 不過,如果您使用此旗標,而您的應用程式會從多個線程呼叫 Direct3D 11 介面的方法,則未定義的行為可能會造成。 |
D3D11_CREATE_DEVICE_DEBUG 值: 0x2 建立支援 偵錯層的裝置。 若要使用此旗標,您必須安裝 D3D11*SDKLayers.dll;否則,裝置建立會失敗。 若要取得 D3D11_1SDKLayers.dll,請安裝 sdk for Windows 8。 |
D3D11_CREATE_DEVICE_SWITCH_TO_REF 值: 0x4 注意 Direct3D 11 不支援此旗標。 |
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS 值: 0x8 防止建立多個線程。 當此旗標搭配 Windows 進階點陣化平臺 (WARP) 裝置使用時,WARP 將不會建立任何其他線程 而且所有點陣化都會發生在呼叫線程上。 不建議將此旗標用於一般用途。 請參閱<備註>。 |
D3D11_CREATE_DEVICE_BGRA_SUPPORT 值: 0x20 建立支援 BGRA 格式的裝置, (DXGI_FORMAT_B8G8R8A8_UNORM 和 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB) 。 所有具有 WDDM 1.1+ 驅動程式的 10level9 和更高硬體都支援 BGRA 格式。 注意 Direct2D 與 Direct3D 資源的互操作性所需。 |
D3D11_CREATE_DEVICE_DEBUGGABLE 值: 0x40 讓裝置和驅動程式保留可用於著色器偵錯的資訊。 此旗標的確切影響會因驅動程序而異。 若要使用此旗標,您必須安裝 D3D11_1SDKLayers.dll;否則,裝置建立會失敗。 建立的裝置支援 偵錯層。 若要取得 D3D11_1SDKLayers.dll,請安裝 sdk for Windows 8。 如果您使用此旗標,且目前的驅動程式不支援著色器偵錯,則裝置建立會失敗。 著色器偵錯需要實作至 WDDM 的驅動程式,以便 Windows 8 (WDDM 1.2) 。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY 值: 0x80 導致 Direct3D 執行時間忽略開啟 偵錯層的登錄設定。 您可以使用 DirectX SDK 隨附的 DirectX 控制台 來開啟偵錯層。 我們在 2010 年 6 月隨附的 DirectX SDK 最後一個版本;您可以從 Microsoft 下載中心下載。 您通常只能在發行組建中設定此旗標,以防止終端使用者使用 DirectX 控制台 來監視應用程式如何使用 Direct3D。 注意您也可以在應用程式中設定此旗標,以防止 Direct3D 偵錯工具,例如 Visual Studio Ultimate 2012,無法連結您的應用程式。 Windows 8.1:此旗標不會防止在 Windows 8.1 和更新版本上執行 Visual Studio 2013 及更新版本,而無法連結您的應用程式;請改用 ID3D11DeviceContext2::IsAnnotationEnabled。 此旗標仍會防止 Visual Studio 2013 及更新版本在 Windows 8 和更早版本上執行,而無法連結您的應用程式。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 值: 0x100 如果裝置會產生超過兩秒才能完成的 GPU 工作負載,而且您希望操作系統能夠順利完成,請使用此旗標。 如果未設定此旗標,當操作系統偵測到執行超過兩秒的 GPU 封包時,就會執行 逾時偵測和復原 。 如果已設定此旗標,操作系統允許執行這類長時間執行的封包,而不需要重設 GPU。 如果您的裝置需要高度回應,讓操作系統能夠偵測並從 GPU 逾時復原,建議您不要設定此旗標。 如果您的裝置需要執行計算、影像辨識和視訊編碼等耗時的背景工作,以允許這類工作順利完成,建議您設定此旗標。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
D3D11_CREATE_DEVICE_VIDEO_SUPPORT 值: 0x800 如果顯示驅動程式未實作至 WDDM for Windows 8 (WDDM 1.2) ,則強制建立 Direct3D 裝置失敗。 當顯示器驅動程式未實作至 WDDM 1.2 時,只有使用 功能層級 9.1、9.2 或 9.3 建立的 Direct3D 裝置支持視訊;因此,如果設定此旗標,運行時間只會針對功能層級 9.1、9.2 或 9.3 建立 Direct3D 裝置。 建議您不要為想要透過視訊偏好 Direct3D 功能的應用程式指定此旗標。 如果功能層級 10 和更新版本可供使用,不論視訊支援為何,運行時間都會使用該功能層級。 如果設定此旗標,不論 BRD 對影片譯碼的支持遺失,在基本轉譯裝置上建立裝置 (BRD) 都會成功。 這是因為媒體基礎視訊堆疊在 BRD 上的軟體模式中運作。 在此情況下,如果您強制視訊堆疊建立 Direct3D 裝置兩次, (使用此旗標建立裝置一次,接下來探索 BRD,然後再次建立沒有旗標的裝置) ,您實際上會降低效能。 如果您嘗試使用驅動程式類型建立 Direct3D 裝置,D3D_DRIVER_TYPE_NULL、D3D_DRIVER_TYPE_REFERENCE或D3D_DRIVER_TYPE_SOFTWARE,則裝置建立會在任何功能層級失敗,因為沒有任何相關聯的驅動程式提供視訊功能。 如果您嘗試建立具有驅動程式類型 D3D_DRIVER_TYPE_WARP的 Direct3D 裝置,裝置建立會成功允許視訊的軟體後援。 Direct3D 11: 在 Direct3D 11.1 之前,不支援此值。 |
備註
D3D11CreateDevice 和 D3D11CreateDeviceAndSwapChain 會使用裝置建立旗標。
應用程式可能會動態建立 (並終結) 線程,以改善效能,特別是在具有多個 CPU 核心的電腦上。 不過,在某些情況下,當應用程式需要防止建立額外的線程時。 當您想要簡化偵錯、分析程式代碼或開發工具時,就會發生這種情況。 在這些情況下,請使用 D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS 要求運行時間和視訊驅動程式不會建立可能會干擾應用程式的任何其他線程。
規格需求
需求 | 值 |
---|---|
標頭 | d3d11.h |