驱动开发系列31 - Linux Graphics 调试 mesa 的 glDrawArrays (三)
一:概述
接着前面驱动开发系列26 - Linux Graphics 调试 mesa 的 glDrawArrays (二)-CSDN博客的文章继续分析下glDrawArrays的实现,本文介绍一下在Gallium3D HW Driver中,驱动如何将绘制命令提交给GPU执行。看下驱动层的执行逻辑:即 draw_vbo 的过程。
二:回顾下draw_vbo的调用栈
主线程提交命令: glDrawArrays -> mesa_DrawArrays -> _mesa_draw_arrays -> st_draw_gallium -> cso_multi_draw -> tc_draw_vbo 将任务打包并提交到命令队列中。
后台线程处理:线程池中的工作线程从队列中获取任务,执行 tc_call_draw_single,并最终调用驱动接口 draw_vbo 提交给GPU。