我知道如何编写OpenGL/DirectX程序,也了解背后的数学和概念,但是我好奇GPU和CPU之间的低级通信如何工作。
比如说,我有一个用C语言编写的OpenGL程序,显示一个三角形并将相机旋转45度。当我编译这个程序时,它会被转换成一系列的ioctl调用,然后GPU驱动程序发送适当的命令到GPU,让其旋转三角形并设置适当的像素颜色吗?还是这个程序会被编译成“GPU程序”,加载到GPU上计算旋转等操作?或者完全不同的方式?
编辑: 几天后,我找到了这篇文章系列,基本上回答了这个问题: http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-1/