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的中间组件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)