游戏开发工程师-- 显卡驱动

250 阅读1分钟

图形绘制

用户态驱动就是我们所使用的openGL以及directX标准的具体实现,是我们图形绘制程序编程中调用接口的实现代码。

这里所谓的软件实现就是遵循上层接口的标准,用软件的方法,通过GPU来完成图形绘制中的所有计算,最后将像素点拷贝到framebuffer中,通过显示控制器display controller来输出到屏幕。

用户态的GPU驱动如何驱动硬件的呢?所有的用户态函数都是通过libdrm.so库文件,调用底层驱动注册好的系统调用来完成对硬件资源的访问的。

现在的显卡都是可编程渲染管线,DRM模块提供的就是直接渲染管理,所谓直接渲染,就是说通过驱动GPU硬件来完成图形渲染当前的复杂计算。

图形渲染管线

可编程管线中的可编程性就是体现在shader中

所谓的EGL是openGL的扩展,主要的目的就是为我们的图形绘制提供一个窗口和画布,可以理解为我们OS中的窗口管理器。

现在的openCL以及cuda这些通用计算框架,原理和shader是一样的,利用的就是图形绘制的管线,基于drm所封装出来的一套接口。