之前部門老大叫我查找有關Direct3D使用軟件渲染的方法,於是我找到了D3D驅動的類型,並整理如下
一、D3D驅動類型的句法
typedef enum D3D_DRIVER_TYPE { D3D_DRIVER_TYPE_UNKNOWN, D3D_DRIVER_TYPE_HARDWARE, D3D_DRIVER_TYPE_REFERENCE, D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_SOFTWARE, D3D_DRIVER_TYPE_WARP } ;
二、常量介紹
1,D3D_DRIVER_TYPE_UNKNOWN
這個驅動類型不知道。
(怎麼用,用在什麼地方,都不知道)
2,D3D_DRIVER_TYPE_HARDWARE
一個硬件驅動程序,在硬件中實現Direct3D功能。 這是你應該在Direct3D應用程序中使用的首要驅動程序,因爲它提供了最佳性能。 硬件驅動程序使用硬件加速(在支持的硬件上),但也可以使用軟件來管理硬件不支持的部分管道。 此驅動程序類型通常稱爲硬件抽象層或HAL。
(硬件驅動程序首選)
3,D3D_DRIVER_TYPE_REFERENCE
一個參考驅動程序,是支持每個Direct3D功能的軟件實現。 參考驅動器的設計是爲了精度而非速度,因此速度慢但準確。 驅動程序的光柵化器部分儘可能使用特殊的CPU指令,但它不適用於零售應用程序; 僅用於功能測試,功能演示,調試或驗證其他驅動程序中的錯誤。 此驅動程序的參考設備由Windows SDK 8.0或更高版本安裝,僅用作開發目的的調試輔助工具。 該驅動程序可以稱爲REF驅動程序,參考驅動程序或參考光柵化程序。
(軟件驅動程序,精度高但速度慢)
4,D3D_DRIVER_TYPE_NULL
一個無效的驅動程序,它是沒有渲染功能的參考驅動程序。 此驅動程序通常用於調試非呈現API調用,不適用於零售應用程序。 此驅動程序由DirectX SDK安裝。
(起調試作用)
5,D3D_DRIVER_TYPE_SOFTWARE
一個軟件驅動程序,是一個完全用軟件實現的驅動程序。 由於其性能非常低,因此軟件實現不適用於高性能應用程序。
(軟件驅動程序,性能低)
6,D3D_DRIVER_TYPE_WARP
WARP驅動程序,是一種高性能軟件光柵化程序。 光柵化器支持功能級別9_1到10_1級,具有高性能軟件實現。
注意:
- Windows 8包含的WARP驅動程序支持功能級別9_1到級別11_1。
- Windows 8.1包含的WARP驅動程序完全支持功能級別11_1,包括平鋪資源,IDXGIDevice3 :: Trim,共享BCn表面,minblend和地圖默認值。
(軟件驅動程序,性能高)
三、小結
以上整理了六種Direct3D的驅動類型,我們可以看出
1,如果要用硬件驅動的話,首選D3D_DRIVER_TYPE_HARDWARE;
2,如果要用軟件驅動的話,分以下三種
- D3D_DRIVER_TYPE_REFERENCE:精度高,速度慢;
- D3D_DRIVER_TYPE_SOFTWARE:性能低;
- D3D_DRIVER_TYPE_WARP:性能高。
例如: