Direct3D驱动类型(DRIVER_TYPE)介绍

Posted octoptuslian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Direct3D驱动类型(DRIVER_TYPE)介绍相关的知识,希望对你有一定的参考价值。

之前部门老大叫我查找有关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:性能高。

例如:

技术分享图片

 

以上是关于Direct3D驱动类型(DRIVER_TYPE)介绍的主要内容,如果未能解决你的问题,请参考以下文章

显卡中如何处理 Direct3D 和 OpenGL 指令?

Direct3D中 SetTextureStageState 函数

Direct3D 线条粗细

[翻译]观察变换View Transform (Direct3D 9)

转载Direct3D纹理映射

检测全屏 Direct3D 应用程序