第8章 Linux图形原理探讨
在第6章和第7章中,我们揭示了在Linux操作系统中,图形系统及桌面环境的构成。这一章,我们进一步深入,尝试探讨Linux的图形原理。
本质上,谈及图形原理必会涉及渲染和显示两部分。但是显示过程比较简单和直接,而渲染过程要复杂得多,更重要的是,渲染牵扯到操作系统内部的组件更多,因此,本章我们主要讨论渲染过程。我们不想只浮于理论,结合具体的GPU进行讨论更有助于深度理解计算机的图形原理。相比于NV及ATI的GPU,我们选择相对更开放一些的Intel的GPU进行讨论。Intel的GPU也在不断的演进,本书写作时主要针对的是用在Sandy Bridge和Ivy Bridge架构上的Intel HD Graphics。
显存是图形渲染的基础,也是理解图形原理的基础,因此,本章我们从讨论显存开始。或许读者会说,显存有什么好讨论的,不就是一块存储区吗?早已是陈词滥调。但是事实并非如此,通过显存的讨论,我们会注意到CPU和GPU融合的脚步,会看到它们是如何的和谐共享物理内存的。或许,已经有GPU和CPU完美地进行统一寻址了。
然后,我们分别讨论2D和3D的渲染过程。在其间,我们将看到到底何谓硬件加速,我们也会从更深的层次去展示3D渲染过程中所谓的Pipeline。以往,很多教材都会为了辅助OpenGL的应用开发,多少从理论上谈及一点Pipeline,而在这一章中,我们从操作系统角度和Pipeline进行一次亲密接触。
最后,我们讨论了很多读者认为神秘而陌生的Wayland。其实,Wayland既不神秘也不陌生,它是在DRI和复合扩展发展的背景下产生的,基于DRI和复合扩展演进的成果。从某个角度,Wayland更像是去除了基于网络的服务器/客户端的X和复合管理器的一次整合。