论文部分内容阅读
随着Linux在图形系统中的占有率的不断增大和嵌入式图形处理器(Graphics Processing Unit, GPU)的应用领域不断扩大,Linux下的GPU图形驱动软件的设计和研究越来越受重视。图形驱动软件是能够使图形硬件充分发挥性能的重要系统软件,而它的开发不仅与具体的图形硬件关系密切,而且涉及到操作系统,三维图形渲染过程等多个方面的内容。但目前相关的GPU的硬件描述文档和驱动软件源程序很难获得,这对研究基于Linux系统的图形驱动软件是一个巨大的障碍。针对上述问题,本文对Linux下GPU图形驱动软件的设计和实现进行了研究。具体研究工作包括:1.介绍了当前主流的GPU的架构及其驱动程序的现状。研究了三维图形固定渲染管线。2.研究了Linux下的驱动模型和驱动开发流程,介绍了Linux下的图形驱动栈结构,包括Linux下的窗口系统X Window, OpenGL的实现Mesa 3D软件库和Linux内核的直接渲染管理器DRM。3.研究了OpenGL核心库的实现方法,提出了OpenGL核心库的四层结构设计,实现了GPU驱动软件的用户空间部分-——OpenGL核心库和GLU实用库,完成了将应用程序里的OpenGL函数翻译成GPU可识别的硬件命令的任务。4.研究了Linux内核驱动模块的机制和编写方法,以平台(platform)设备作为驱动模型实现了GPU驱动软件的内核空间部分,主要完成了配置和控制GPU,并将从用户空间提交的GPU命令传送给GPU命令处理器的任务。5.对所实现的GPU驱动软件在基于FPGA芯片原型的SoC图形系统上进行全面系统地测试,分别用单一功能测试用例和经典的OpenGL NeHe教程示例程序进行测试。结果与在Microsoft Visual Studio中和使用Mesa 3D库运行的结果基本相同。