这里是SunshineBooming,GPU公司一枚小小的Driver工程师,主要工作是写DirectX12 Driver,我会持续更新这个DX12 Spec系列,可能比较冷门,但是都是干货和工作中的心得体会,有任何GPU相关的问题都可以在评论区互动,知无不言:
目录
- [1. 图形驱动的本质?](#1. 图形驱动的本质?)
- [2. 参考资料](#2. 参考资料)
1. 图形驱动的本质?
- 图形驱动其实重点落在驱动二字上,与图形学联系并不密切。你可以看到绝大多数图形驱动的开发人员,其实不太了解图形学。
- 拿directx12的驱动开发人员来说,我们更关心的是,与windows系统的交互(特别是drirectx12的runtime),与gpu硬件的交互(各种gpu架构指令,硬件设备特性,以及痛苦地为gpu硬件缺陷打patch...)。
- 而去剖析directx12图形驱动(包括umd+kmd),它其实重点做了2件事:生成gpu硬件指令,准备指令执行过程中需要的数据。这听着是不是很耳熟:任何的程序,只不过是指令和数据的集合。
- 所以归根结底,图形驱动是运行在cpu端的程序,它的职能就是为gpu硬件准备command+data,然后控制gpu硬件状态:
2. 参考资料
- a trip through the grapics pipeline(这个网上很多链接,就不贴pdf了)
- https://learn.microsoft.com/zh-cn/windows-hardware/drivers/display/windows-vista-and-later-display-driver-model-architecture