• 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:性能高。

    例如:

  • 相关阅读:
    GoF 23种设计模式概述
    设计模式总篇
    面向对象软件开发六大原则
    StarUML类图相关——关联、聚合、组合、泛化、依赖、实现
    Java8集合框架——ArrayList源码分析
    Q6:ZigZag Conversion
    Python基础学习-列表基本操作
    Python基础学习之字符串(1)
    Python基础学习之序列(2)
    Python基础学习之序列(1)
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/9975227.html
Copyright © 2020-2023  润新知