A trip through the Graphics Pipeline 2011 是发布在博客 http://fgiesen.wordpress.com 上的系列文章。主要涉及图形流水线在GPU中实现的方方面面。包括D3D/OpenGL app, UMD Driver, KMD Driver, GPU 硬件流水线设计等等。是非常好的学习图形学应用,GPU驱动等相关领域的资料。翻译的目的一方面是对学习的总结;另一方面是为了分享,因为国内在图形学, GPU相关的资料比较缺乏,导致学习曲线比较陡峭。由于能力欠缺,翻译和理解中肯定存在很多问题,如果发现有问题,烦请交流,避免为后续学习者挖坑。

这部分是图形流水线之旅系列博客的索引页,这个系列主要写D3D/OpenGL图形管道在GPU硬件中的实际实现。 图形学相关的程序员都知道,目前有大量关于图形学各方面的文章,它们中有些是对基本概念的概述,也有些是对某些组件细节的详细叙述,但是处于它们之间的材料非常之少,而且这些材料中有很多都是过时的内容。

这个系列的文章主要面向熟悉现代3D API(至少是OpenGL 2.0+D3D9+的图形编程人员)并想知道它在GPU中的实现的相关程序员,这并不是面向图形流水线新手的; 如果你还没有使用3D API,那么大多数内容对你来说都是毫无用处的。我还假设你对当代硬件设计有一个基本的理解——你至少应该知道寄存器、FIFO、缓存和管道是什么,以及它们是如何工作的(《深入理解计算机系统》中有相关内容,可以参考)。最后,你至少需要了解基本的并行编程机制。GPU是一台大规模并行的计算机,没有办法绕过并行机制的内容。

一些读者评论说,这是对图形管道和GPU的一个非常底层的描述。底层还是上层,这完全取决于你站的位置。GPU架构师称之为GPU的上层描述。这些内容并不像当新一代GPU出现时你在官网上看到的眼花缭乱的流程图那么上层,但是,老实说,这种报告往往信息密度非常低的,即使它做得非常绚丽。归根结底,官网上的那些内容并不是要解释各项技术是如何工作的——它只是试图炫耀新产品的科技宣传片。

所以,这个系列的文章试着将它们没有解释的技术原理充实一下。当然,这也就意味着,相比宣传片,技术文章的视觉效果没那么绚丽,也没有那么多的基准测试结果。取而代之的是大量的文本,一些单色图表,甚至是一些公式。

那么这个系列的内容主要就包含下面的这些内容:

翻译声明】翻译中发现其实有很多的名词平常都是直接使用英文来称呼的,强行翻译成中文有些觉得比较别扭。关于名词有更好的译法的烦请指正,谢谢。