【问题标题】:DirectX HAL specificationDirectX HAL 规范
【发布时间】:2011-01-11 23:04:19
【问题描述】:

在哪里可以找到 DirectX HAL 规范?

this diagram 为正确

然后所有 GPU 供应商都必须编写他们的设备驱动程序,以便它们与 HAL 对话。

HAL 在哪里指定? MSFT 如何调整或更新 HAL? HAL 何时更改?如果 HAL 发生变化,是天崩地裂还是天塌地陷?

【问题讨论】:

    标签: gpu hal


    【解决方案1】:

    Vista+ 上的视频驱动程序是针对 WDDM 编写的。 See MSDN。我不确定我是否正确理解了您,但我认为 WDDM 规范/指南/API 正是您正在寻找的。​​p>

    【讨论】:

      【解决方案2】:

      GPU 供应商写入设备驱动程序模型(Vista 和 Windows 7 中的WDDM)。它们必须符合 DirectX 使用的模型。

      WDDM 在 Windows Device Driver Kit 中可用。

      【讨论】:

        【解决方案3】:

        据我所知,没有“DirectX HAL”,HAL 就是 HAL。 HAL 是 WDDM 使用的内核模式抽象层。反过来,DirectX API 与 WDDM 驱动程序(由 nVidia、ATi 等编写)对话,并实例化 HAL 设备。

        要让软件与 HAL 通信,它需要在特权模式下运行(即成为驱动程序)。如果你好奇,这里就是指定 HAL 的地方:http://msdn.microsoft.com/en-us/library/aa490448.aspx

        当新版本的 Windows 发布时,HAL(通常)会发生变化。是的,天有时会塌下来。还记得没有 XP 驱动程序在 Vista 上工作的时候吗?这是由 WDDM 更改或 HAL 更改引起的。或者,很可能两者兼而有之。

        【讨论】:

          【解决方案4】:

          他在找这个?

          DirectDraw DDI, Direct3D DDI
          这是编写设备驱动程序的接口:
          1. 通过该接口接受 D3D 请求(例如绘制三角形)。
          2. 然后直接访问显卡硬件寄存器以应用该请求。

          (填充PCI-E内存映射内存,带有:三角形参数,渲染状态和发送命令到gpu开始绘制三角形。)


          (等式。调用顺序:
          1. 用户调用 Direct3D.DrawPrimitive 函数 =>
          2. Direct3D在驱动中调用Direct3DDDIDriver.D3dDrawPrimitives2 funcion =>
          3. Direct3D DDI驱动程序将请求参数写入显卡内存,并将绘图命令写入命令​​寄存器)。
          4. GPU 正在工作并在其指定的目标内存区域(例如在 GDDR5 中)绘制一个三角形,该区域是动态分配的并标记为目标 2D 表面。)


          您可以练习为更简单、更旧的开放硬件规格 GPU 实施此驱动程序,例如:SIS 6326、3dfx Voodoo 1、2、3、4、5。
          这在大学里会是非常好的做法。

          【讨论】:

          • 您能否在答案中加入一些有意义的信息,而不是仅提供一个链接作为问题的答案。
          • 虽然这在理论上可以回答问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-22
          • 2017-05-31
          • 1970-01-01
          • 2013-08-21
          • 2016-05-13
          相关资源
          最近更新 更多