zoukankan      html  css  js  c++  java
  • OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?

    OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?

    图形硬件供应商,需要为显示适配器编,编写用户模式显示驱动程序。用户模式显示驱动程序,是由Microsoft Direct3D运行时加载的动态链接库(DLL)。用户模式显示驱动程序,必须至少支持Direct3D版本9 DDI。

    e.g. nvd3dum.dll is the UMD for DirectX11是运行Nvidia的DirectX11的UMD。着色器shader编译是从API调用的DirectX代码进行的,在它进入内核模式驱动程序之前。

    UMD是否也将代码放在中间表示吗?(driver驱动是中间语言吗)?

    从Windows95OSR2开始,OpenGL基本上一直在Windows上有某种用户模式组件。体系结构中客户机/服务器的分离,使得这一点非常容易做到。这意味着许多客户端API可以执行基本的命令队列、验证、资源创建等操作,而不必切换到内核模式。

    例如,在OpenGL中,draw调用比Direct3D更容易。在WindowsVista(WDDM)中,情况发生了变化,WDDM为D3D(包括Vista上的D3D9)指定了一个用户模式驱动程序,该驱动程序的作用与OpenGL的客户端前端类似。

    好处有两方面:

    如果驱动程序在用户模式下执行某些操作时崩溃,问题通常不会传播到,导致问题的应用程序之外(而不是全面的内核死机)。

    在不切换用户模式和内核模式的情况下,可以完成更多的实际工作,这意味着API本身在呈现时的瓶颈更少。

    D3D10非常注重减少API的总体开销,而引入WDDM的用户模式驱动程序,实际上也有益于D3D9应用程序。WDDM对OpenGL体系结构,在Windows新版本中的运行方式,几乎没有什么改变,尽管它确实添加了一些新特性,使D3D/GL之间的互操作性更简单(例如,surface共享)。

    着色器shader编译只是OpenGL ICD在Windows上用户模式下可以做的许多事情之一。

    UMD只与Direct3D相关,OpenGL的用户模式组件称为ICD(可安装客户端驱动程序)。它负责处理整个OpenGL API,并将OpenGL API调用生成的命令,转换为显示驱动程序使用的特定于硬件的命令。DXGI实际上是在windows vista+上将D3D和GL结合在一起的粘合剂,可以将其视为D3D和OpenGL,在用户模式端处理命令之后所描述的公共语言。DXGI是WDDM的中间组件。

    人工智能芯片与自动驾驶
  • 相关阅读:
    无声购票弹窗
    C#多线程与异步的区别
    关于adb驱动
    事务日志初探(二)---简单恢复模式
    预写式日志(Write-Ahead Logging (WAL))
    如果正确读取SQL Server中的扩展事件?
    索引初探(三)
    事务日志还原的次意外的操作失误
    索引初探(二)
    索引的初探(一)
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14311381.html
Copyright © 2011-2022 走看看