专利名称:帧缓冲区合并的制作方法
技术领域:
本发明大体上涉及图形计算机系统。本发明至少揭示带有压縮的经延迟的帧缓冲区 合并。
技术背景一般而言,适合处理3D图像数据的计算机系统除了传统CPU (中央处理单元)之 外还包括专门图形处理器单元(或GPU)。 GPU包括经配置以处理3D的计算机产生的对 象的专门硬件。GPU经配置以对一组数据模型及其构成"图元"(通常是以算术形式描述 的三角多边形)进行操作,所述"图元"界定对象的形状、位置和属性。GPU的硬件处 理所述对象,实施在计算机系统的显示器上产生逼真的3D图像所需的计算。典型图形渲染处理的性能在很大程度上取决于系统的底层硬件的性能。高性能实时 图形渲染要求存储3D对象数据和构成图元的存储器具有高数据传送带宽和低等待时间。 因此,人们投入了大量开发工作来增加传送带宽并减少存储器的数据存取等待时间。因此,更为昂贵的现有技术GPU子系统(例如,配备GPU的图形卡等)通常包括 较大(例如,128MB或更大)的专门、昂贵、高带宽本机图形存储器,用于将所需的数 据馈送到GPU。此种GPU通常包括较大的芯片上高速缓冲存储器和具有非常低的数据存 取等待时间的寄存器组。较便宜的现有技术GPU子系统包括较小(64MB或更少)的此 类本机图形存储器,且有些最便宜的GPU子系统不具有本机图形存储器,而是依赖于系 统存储器来存储图形渲染数据。上述类型的现有技术GPU中的每一者的问题在于,系统存储器(或本机图形存储器) 的数据传送带宽远远低于GPU内部的高速缓冲存储器和寄存器的数据传送带宽。举例来 说,GPU需要读取命令流和场景说明,且确定帧缓冲区的每个像素受到每个包含场景的 图形图元的影响的程度。这一过程可能引起对存储像素数据的帧缓冲存储器的多次读取 和写入。虽然芯片上高速缓冲存储器和寄存器提供非常低的存取等待时间,但给定场景 中的大量像素(例如,1280x 1024、 1600xl200等)使得对帧缓冲区的大量存取不可避免。因此,对总体图形渲染过程造成较大等待时间诱发的性能恶化。对于在系统存储器 中存储其帧缓冲区的GPU,性能恶化远为严重。对于每个像素需要对多个样本进行读取 和写入的渲染过程(例如,抗混叠等)特别容易受到此类由等待时间诱发的性能恶化的 影响。因此,需要一种能够减少到本机图形存储器的通信路径和/或到系统存储器的通信路 径的数据传送等待时间所导致的局限性的解决方案。本发明为以上需求提供新颖的解决 方案。 发明内容在一个实施例中,本发明实施为用于经延迟的帧缓冲区合并的由GPU实施的方法。 所述方法包括存取与存储在存储器位置处的一群组像素(例如, 一个或一个以上拼接片) 相关的多边形,其中每一像素具有现有的颜色。确定多边形覆盖了哪些像素,其中每一 像素包括多个样本。产生对应于由多边形覆盖的样本的覆盖遮罩。通过将多边形的覆盖 遮罩和颜色存储在存储器位置中来更新所述像素群组。之后某一时间,将所述像素群组 合并到帧缓冲区中。在一个实施例中,将多个多边形更新到像素群组中,借此GPU存取与像素群组相关 的多个后续多边形(例如,部分地覆盖像素的后续多边形)。对于后续多边形中的每一者, 通过将每一后续多边形的个别覆盖遮罩和个别颜色存储在存储器位置中来更新所述像素 群组。在一个实施例中,使用标签值来跟踪存储群组像素的存储器位置的状态,其中根据 后续多边形来更新标签值。此外,可使用标签值来确定存储所述群组像素的存储器位置 何时充满,且借此指示何时应当将所述群组像素合并到帧缓冲区中。以此方式,本发明的经延迟的帧缓冲区合并过程可将来自到达的多边形的更新累积 到低等待时间存储器(例如,寄存器、高速缓冲存储器)内的像素群组中,而不是必须 向帧缓冲区进行读取和写入并因此导致高等待时间性能恶化。因此,经延迟的帧缓冲区 合并过程可改善本机图形存储器和系统存储器的较高数据存取等待时间所导致的瓶颈。
在附图的各图中以举例而非限制的方式说明本发明,且在附图各图中,相同参考数 字指待相似元件。图1展示根据本发明一个实施例的计算机系统。
图2展示根据本发明一个实施例的过程的步骤的流程图。图3展示根据本发明一个实施例的确定多边形覆盖一群组中的哪些像素的说明。 图4展示描绘根据本发明一个实施例的对多边形在一群组像素上的覆盖范围估计的 所得样本的图。图5展示根据本发明一个实施例的针对一群组像素存储在存储器位置中的覆盖遮罩。图6展示根据本发明一个实施例的覆盖所述群组像素的后续多边形。 图7展示根据本发明一个实施例的由多边形覆盖的像素的样本,其中有一个像素完 全未被覆盖。图8展示根据本发明一个实施例的存储在存储器位置的一个象限中的多边形的所得覆盖遮罩和颜色。图9展示根据本发明一个实施例的覆盖所述群组像素的后续多边形。图IO展示根据本发明一个实施例的由多边形覆盖的像素的样本,其中有一个像素完全未被覆盖。图ll展示根据本发明一个实施例的存储在存储器位置的右下象限中的多边形的所得覆盖遮罩和颜色。图12展示根据本发明一个实施例的覆盖像素群组的后续多边形。图13展示根据本发明一个实施例的存储器位置,其中第一颜色在存储器位置的左上象限中。图14展示根据本发明替代实施例的由经延迟的帧缓冲区合并过程操作的像素群组。 图15展示在根据本发明的一个方案下存储颜色信息的存储器位置。 图16展示根据本发明替代实施例的第二方案下的标签值。 图17展示在本发明替代实施例下存储颜色信息的存储器位置的第二说明。 图18展示根据本发明一个实施例的两个样本及其由其相应的覆盖遮罩指示的各自 的颜色。图19展示根据本发明一个实施例的四个额外样本及其由其相应覆盖遮罩指示的各 自的颜色。图20展示根据本发明一个实施例合成的作为颜色信息的像素群组的连续状态。 图21展示根据本发明一个实施例的说明系统存储器、本机图形存储器和高速缓冲存 储器及寄存器的数据存取等待时间之间的相对差的图。
具体实施方式
现在将详细参考本发明的优选实施例,所述实施例的实例在附图中说明。尽管将结 合优选实施例描述本发明,但应了解不希望其使本发明限于这些实施例。相反,希望本 发明涵盖包括在由随附权利要求书界定的本发明的精神和范围内的替代方案、修改和等 效物。此外,在以下本发明实施例的详细描述中,陈述许多特定细节以便提供对本发明 的彻底理解。然而,所属领域的一般技术人员将认识到,可在没有这些特定细节的情况 下实践本发明。在其它情况下,没有详细描述众所周知的方法、程序、组件和电路,以 便不会不必要地混淆本发明实施例的各方面。符号和术语关于对计算机存储器内数据位的操作的程序、步骤、逻辑块、处理和其它符号表示法而提出随后的详细描述的某些部分。这些描述和表示法是数据处理技术领域的技术人 员用来将其工作的实质内容最有效地传达给所属领域的其它技术人员的方式。在此处(且通常)设想程序、计算机执行的步骤、逻辑块、过程等为导致期望结果的自相容的步骤 或指令序列。所述步骤是需要对物理量进行实体操控的步骤。通常(但不必要),这些量 采用电或磁信号的形式,所述信号能够在计算机系统中存储、传送、组合、比较和以另 外方式操控。主要出于通用的原因,事实有时证明,将这些信号称为位、值、元件、符 号、字符、术语、数字等是方便的。然而应意识到,所有这些术语和类似术语将与适当的物理量相关联,且仅为应用于 这些量的方便标记。除非根据以下讨论显而易见以另外方式具体规定,否则应了解在本 发明全文中,使用例如"处理"或"存取"或"压縮"或"存储"或"渲染"等术语的 讨论均指计算机系统(例如,图1的计算机系统100)或类似电子计算装置的动作和过 程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控和转变为 类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物 理量的其它数据。计算机系统平台图1展示根据本发明一个实施例的计算机系统100。计算机系统100描绘基本计算机系统的组件,所述计算机系统提供用于某种基于硬件和基于软件的功能性的执行平台。一般来说,计算机系统100包含至少一个CPU 101、系统存储器115和至少一个图形处 理单元(GPU) 110。 CPU 101可经由桥接组件105耦合到系统存储器115,或者可经由 CPU 101内部的存储器控制器(未图示)直接耦合到系统存储器115。桥接组件105 (例 如,北桥)可支持连接各种I/O装置(例如, 一个或一个以上硬磁盘驱动器、以太网适 配器、CDROM、 DVD等)的扩展总线(例如,扩展总线106)。 GPU110耦合到显示器 112。可视需要将一个或一个以上额外的GPU耦合到系统100,以进一步增加其计算能力。 GPU 110经由桥接组件105耦合到CPU 101和系统存储器115。系统100可建构为(例 如)桌上型计算机系统或服务器计算机系统,其具有耦合到专用图形渲染GPU IIO的有 力的通用CPU 101。在此实施例中,可包括添加外围总线、专门的本机图形存储器、10 装置和类似物的组件。类似地,系统100可建构为手持装置(例如,手机等)或置顶视 频游戏控制台装置,例如可从华盛顿Microsoft Corporation of Redmond购得的Xbox⑧和 可从日本东京Sony Computer Entertainment Corporation购得的PlayStation3⑧。应了解,GPU 110可建构为离散组件、设计为经由连接器(例如,AGP插槽、 PCI-Express插槽等)耦合到计算机系统100的离散图形卡、离散集成电路小片(例如, 直接安装在母板上),或建构为包括在计算机系统芯片组组件的集成电路小片内(例如, 集成在桥接芯片105内)的集成GPU。另外,对于GPU 110,可视需要包括本机图形存 储器116,以提供高带宽图形数据存储。
具体实施例方式本发明的实施例实施一种用于经延迟的帧缓冲区合并的方法。在一个实施例中,GPU 利用标签值和帧缓冲区拼接片(frame buffer tile)的子部分来存储覆盖遮罩(coverage mask)。覆盖遮罩对应于拼接片的覆盖程度(例如,被覆盖的样本的数目)。包含帧缓冲 区拼接片的像素可通过将多边形的颜色和所述多边形的覆盖遮罩存储到存储所述拼接片 的存储器位置中而以压縮状态存储。此外,通过将用于新多边形的后续覆盖遮罩和用于 所述新多边形的颜色存储在所述存储器位置中,可将额外的多边形渲染到拼接片中。这使得能在不必对帧缓冲区进行存取和写入的情况下将新多边形渲染到拼接片中。 举例来说,可在拼接片充满之前使用经延迟的帧缓冲区合并过程将多边形渲染到拼接片 中,在拼接片充满时可将拼接片合并到帧缓冲区中。以此方式,本发明的经延迟的帧缓 冲区合并过程可使来自到达的多边形的更新累积到GPU 110的低等待时间存储器(例如, 寄存器、高速缓冲存储器)的有限大小内的拼接片中,而非必须对帧缓冲区(例如,存 储在本机图形存储器116或系统存储器115中)进行读取和写入且因此引起高等待时间 性能恶化。下文在图2中更详细地描述经延迟的帧缓冲区合并过程。图2展示根据本发明一个实施例的过程200的步骤的流程图。如图2描绘,过程200 描绘根据本发明一个实施例的由计算机系统(例如,计算机系统100)的GPU (例如, GPU 110)实施的经延迟的帧缓冲区合并过程中包含的操作步骤。在图1的示范性计算机系统100和图3-13的情境下且参考其而描述图2的过程200 实施例的步骤。过程200开始于步骤201,其中GPU IIO存取与存储在一存储器位置的一群组像素 相关的多边形。在渲染过程期间,GPU 110接收界定包含3-D场景的对象的形状、位置 和属性的图元(通常为三角形多边形)。GPU的硬件处理图元并实施在显示器112上产生 逼真的3D图像所需的计算。此过程的至少一个部分涉及将多边形光栅化和抗混叠到帧缓 冲区的像素中,借此GPU IIO确定帧缓冲区的每一像素受包含场景的每一图形图元影响 的程度。在一个实施例中,GPU IIO处理作为群组的像素,所述群组常被称为拼接片。 这些群组或拼接片通常每个拼接片包含四个像素(例如,但也可实施具有8、 12、 16或 更多像素的拼接片)。在一个实施例中,GPU IIO经配置以处理两个相邻拼接片(例如, 包含八个像素)。在步骤202中,过程200确定群组中哪些像素被多边形覆盖。图3中说明这个关于 哪些像素被多边形覆盖的确定,图3展示正针对包含八个像素的群组经受光栅化的多边 形301的图。图3展示各具有四个像素的并排的两个拼接片。将每一像素进一步划分为 四个子像素,其中每一子像素具有一个采样点,其在图3中描绘为"x",从而获得(例 如)4x抗混叠中使用的16个采样点。图4展示所得的样本,借此,由多边形覆盖的采 样点变暗,而未由多边形覆盖的采样点不变暗。如图4所示,将像素标记为A、 B、 C、 D、 E、 F、 G和H。请注意,像素H完全未被覆盖。在步骤203中,产生对应于由多边形301覆盖的样本的覆盖遮罩。在一个实施例中, 覆盖遮罩可实施为位遮罩,其中群组的每个样本各具有一位。因此,16个位可表示群组 的16个样本,其中根据所述样本是否被覆盖而设定每一位。因此,在多边形301部分覆 盖群组的像素且因此部分覆盖所述16个样本的情况下,可通过将多边形301的所得的覆 盖遮罩和颜色存储到存储拼接片的存储器位置中来将此信息(即,覆盖程度)更新到群 组中。重要的是,应注意此更新可在GPU110内部的存储器内发生。此存储器在针对多边 形光栅化和渲染像素群组时存储像素群组。因此,可将多边形光栅化和渲染到像素群组 中,而不必从帧缓冲区读取像素群组、更新像素群组和接着将经更新的像素群组写回到 帧缓冲区(例如,读取-修改-写入)。在步骤204中,通过将多边形的覆盖遮罩和相应颜色存储到群组的存储器位置中来 更新像素群组。这在图5中展示。应注意,覆盖遮罩存储在由于像素H完全未被覆盖而 导致为空的存储器中。如图5说明,将存储像素群组的存储器位置描绘为具有四个象限 的矩形500。空间的四分之一 (例如,左上象限)存储八个像素的经压縮的背景颜色或 先前经过压縮的颜色,其中(例如)单个前一多边形完全覆盖所有八个像素,且因此可 将样本4比1压缩并存储为每个像素一种颜色。右上象限存储覆盖遮罩501和用于像素 A到G的一种颜色。如上所述,覆盖遮罩指示哪些样本由多边形覆盖。以此方式,本发明的经延迟的帧缓冲区合并过程可将来自到达的多边形的若干更新 累积到像素群组中,同时延迟将更新合并到帧缓冲区中的必要性。仍参看图2的过程200,在步骤205中,确定存储器位置500是否充满。在一个实 施例中,通过监视保存在GPU的内部存储器内的若干标签位来进行此确定,其中所述标 签位指示存储器位置500的哪些部分是充满/空闲的。如果存储器位置未充满,那么过程 200可进行到步骤206并继续处理与像素群组有关的后续多边形,且对于每一后续多边 形,执行步骤202到204。举例来说,图6展示覆盖像素群组的后续多边形601,图7展 示由多边形601覆盖的像素的样本,其中像素A完全未被覆盖,且图8展示存储在存储 器位置500的左下象限中的多边形601的所得覆盖遮罩801和颜色。图9接着展示覆盖 像素群组的后续多边形901,图10展示由多边形901覆盖的像素的样本,其中像素C、 D、G和H完全未被覆盖,且图11展示存储在存储器位置500的右下象限中的多边形901 的所得覆盖遮罩1001和颜色。以此方式,本发明的经延迟的帧缓冲区合并过程可将来自到达的多边形的若干更新 累积到像素群组中,借此延迟合并操作的必要性,直到用于像素群组的存储器充满为止。 这减少了合并操作的总次数,所述合并操作中的每一者需要对帧缓冲区进行耗费时间的 读取、修改和写入,为了渲染给定场景必须进行所述读取、修改和写入。如上所述,可 用后续多边形来更新像素群组而不用迫使合并进入用于每一多边形的帧缓冲区。在步骤207中,当如图ll所示,存储器位置500充满时,当后续多边形到达时,存 储在存储器位置500中的信息需要解压縮并与新多边形合成。接着可将此信息合并到帧 缓冲区中。 一旦合并到帧缓冲区中,信息就可保留为未经压縮的形式。在一个实施例中,在将信息合并到帧缓冲区中之后,GPU IIO可重新压縮像素群组 的颜色信息,并以压縮形式将像素群组存储在低等待时间存储器中。可使用上述覆盖遮 罩和颜色来压縮此颜色信息。此过程在图12中说明,其中后续多边形1201覆盖像素群 组。在存储在存储器位置500中的信息解压縮并与多边形1201合成之后,将信息重新压
缩并存储在存储器位置500内,如图13所示。图13展示存储器位置500,其中第一颜 色在左上象限中(例如,背景颜色),覆盖遮罩1301和对应于覆盖遮罩1301的第二颜色 在右上象限中,且覆盖遮罩1302和对应于覆盖遮罩1302的第三颜色在左下象限中。因 此,在重新压縮之后,存储器位置500的右下象限打开以接收另一多边形。应注意,如果接收到完全覆盖群组的所有像素的后续多边形,那么每一像素中的所 有样本将具有相同的颜色,且因此可经4比1压縮并作为单个颜色存储在(例如)左上 象限中。应注意,尽管已在4x多采样的情境中描述本发明的实施例,但本发明在实践更 高等级的多采样(例如,8x多采样等)的情形中和除抗混叠之外的应用中更加有用。另外,应注意在一个实施例中,GPU IIO使用标签值来跟踪用于像素群组的存储器 位置500的状态。此标签值使GPU 110能够跟踪已被更新到存储器位置500中的多边形 的数目。举例来说,在一个实施例中,可将标签值实施为3位值,其中(例如)标签值 0指示每个像素一种颜色的4比1压縮,标签值1指示存储器位置500的两个象限被占 据的4比1压縮,如图5所示,标签值3指示存储器位置500的三个象限被占据的4比 1压縮,如图8所示,且标签值4指示存储器位置500的全部四个象限被占据的4比1 压縮,如图ll所示。图14到16说明根据本发明替代实施例的经延迟的帧缓冲区合并过程。在替代实施 例中,将标签实施为指向存储器位置500内的自由指针。在此实施例中,存储器位置500 可支持多达六个更新,而不必执行与帧缓冲区的合并。在此实施例中,可实施标签值使 其具有以下意义0=未经压縮;1=完全压縮,样本8处的自由指针;2=多个片断,样本12处自由指针;3=样本16处的自由指针;4=样本20处的自由指针;5=样本24处的自由指针;6=样本28处的自由指针;7=存储器位置500充满,但仍然未决。图14展示根据所指示样本位置而具有颜色的像素群组。图15展示存储器位置500, 其中在上文图2的讨论中描述的方案下存储颜色信息。图16展示指示存储器状态(被占 据/未被占据)的标签值。标签值指示下一空闲位置在存储器中的哪个位置。其允许GPU 硬件知道在哪个位置存储下一数据块。在更新需要四个以上条目的情况下,标签增加2。 因此,图16展示根据替代实施例的标签值,其中标签值1展示为存储于存储器位置500 的样本位置8处的"1",标签值2展示为存储于样本位置16处的"2",且类似地,直到 标签值6展示为样本位置28处的"6"。图17展示存储器位置500,其中在本发明替代 实施例的方案下存储颜色信息。因此,如图17所示,像素群组可具有背景颜色和多达六 种新的更新的颜色,其中所得的覆盖遮罩1701-1702分别存储在样本位置12和8,且与 覆盖遮罩1701-1702相关联的颜色与其相邻而存储。图18到20视觉上说明覆盖遮罩从后续到达的多边形中捕获更新的方式。举例来说, 图18展示两个样本及其由覆盖遮罩1701指示的各自颜色,且图19展示两个样本及其由 覆盖遮罩1702指示的各自颜色。图20展示像素群组的三个连续状态,其说明在存储器 位置500内建立像素群组的最终状态的方式,其中状态2002展示初始两个样本,状态 2003展示随后两个样本,状态2004展示与背景颜色合成的颜色,且最终状态2005描绘 存储在存储器位置500内的所得信息。因此,根据替代实施例,需要16字节写入,其不一定比32字节写入更有效,但仍 节省一次从帧缓冲区的读取。通过较深的像素或较大的像素占据面积,替代实施例方法 仍可用3位标签来发挥作用。在上述实例中,像素群组包含八像素占据面积。在像素占 据面积包含16个像素群组的情况下,过程将接着以八样本增量或32字节颗粒来分配存 储。或者,在正写入8字节像素的情况下,如本文使用的2x4像素群组充分起作用以产 生32字节写入。图21展示根据本发明一个实施例的图2100,其说明系统存储器115、本机图形存储 器116和高速缓冲存储器2101和寄存器2102的数据存取等待时间之间的相对差。如上 所述,本发明的经延迟的帧缓冲区合并过程可将来自到达的多边形的更新累积到低等待 时间存储器(例如,寄存器2102、高速缓冲存储器2101)内的像素群组中,借此减少对 帧缓冲区的读取和写入的次数,且借此减少由高存储器存取等待时间导致的性能恶化。 此属性在帧缓冲区(例如,图形数据2120)存储在本机图形存储器116中时会改进性能, 且当帧缓冲区(例如,图形数据2110)存储在系统存储器115中时会在高得多的程度上 改进性能。以此方式,经延迟的帧缓冲区合并过程因此改善了由本机图形存储器116和 系统存储器115的较高数据存取等待时间导致的瓶颈。简单概括来说,本发明揭示以下内容概念l.一种用于帧缓冲区合并的方法,其包含
存取与存储在存储器位置的像素群组相关的多边形,其中所述像素中的每一者具有 现有的颜色;确定所述像素中哪些像素被所述多边形覆盖,其中每一像素包含多个样本; 产生对应于被所述多边形覆盖的样本的覆盖遮罩;通过将所述多边形的所述覆盖遮罩和颜色存储在所述存储器位置中来更新所述像素 群组;和随后将所述像素群组合并到帧缓冲区中。 概念2.根据概念1所述的方法,其进一步包含 存取与所述像素群组相关的多个后续多边形;和对于所述后续多边形中的每一者,通过将每一后续多边形的个别覆盖遮罩和个别颜 色存储在所述存储器位置中来更新所述像素群组。 概念3.根据概念2所述的方法,其进一步包含 使用标签值来跟踪存储所述像素群组的存储器位置的状态;和 根据所述后续多边形来更新所述标签值。 概念4.根据概念2所述的方法,其进一步包含 确定存储所述像素群组的存储器位置何时充满;和 当存储器位置充满时将像素群组合并到帧缓冲区中。 概念5.根据概念4所述的方法,其进一步包含在合并之后,通过根据像素的颜色将至少一个覆盖遮罩和至少一种颜色存储到存储 器位置中而将像素群组压縮到存储器位置中。概念6.根据概念4所述的方法,其中所述将像素群组合并到帧缓冲区中经配置以减 少对所述帧缓冲区的存取的次数。概念7.根据概念1所述的方法,其中所述将像素群组更新到存储器位置中导致4比 1压縮。概念8.—种存储计算机可读代码的计算机可读媒体,所述计算机可读代码当由具有 耦合到存储器的处理器的计算机系统执行时导致所述计算机系统实施用于经延迟的帧缓 冲区合并的计算机可读媒体,其包含存取与存储在存储器位置的像素群组相关的多边形,其中所述像素中的每一者具有 现有的颜色;确定所述像素中哪些像素被所述多边形覆盖,其中每一像素包含多个样本;产生对应于被所述多边形覆盖的样本的覆盖遮罩;通过将所述多边形的所述覆盖遮罩和颜色存储在所述存储器位置中来更新所述像素 群组;存取与所述像素群组相关的多个后续多边形;对于所述后续多边形中的每一者,通过将每一后续多边形的个别覆盖遮罩和个别颜 色存储在所述存储器位置中来更新所述像素群组;和 随后将所述像素群组合并到帧缓冲区中。 概念9.根据概念8所述的计算机可读媒体,其进一步包含 使用标签值来跟踪存储所述像素群组的存储器位置的状态;和 根据所述后续多边形来更新所述标签值。 概念IO.根据概念8所述的计算机可读媒体,其进一步包含 确定存储所述像素群组的存储器位置何时充满;和 当存储器位置充满时将像素群组合并到帧缓冲区中。 概念ll.根据概念IO所述的计算机可读媒体,其进一步包含在合并之后,通过根据像素的颜色将至少一个覆盖遮罩和至少一种颜色存储到存储 器位置中而将像素群组压縮到存储器位置中。概念12.根据概念IO所述的计算机可读媒体,其中所述将像素群组合并到帧缓冲区 中经配置以减少对所述帧缓冲区的存取的次数。概念13.根据概念8所述的计算机可读媒体,其中所述将像素群组更新到存储器位置 中导致4比1压缩。概念14.一种计算机系统,其包含处理器;系统存储器,其耦合到所述处理器;和图形处理单元,其耦合到所述处理器,其中所述图形处理器经配置以执行计算机可 读代码,所述计算机可读代码导致所述图形处理器实施一种用于经延迟的帧缓冲区合并 的方法,所述方法包含存取与存储在存储器位置的像素群组相关的多边形,其中所述像素中的每一者具有 现有的颜色;确定所述像素中哪些像素被所述多边形覆盖,其中每一像素包含多个样本; 产生对应于被所述多边形覆盖的样本的覆盖遮罩;
通过将所述多边形的所述覆盖遮罩和颜色存储在所述存储器位置中来更新所述像素 群组;存取与所述像素群组相关的多个后续多边形;对于所述后续多边形中的每一者,通过将每一后续多边形的个别覆盖遮罩和个别颜 色存储在所述存储器位置中来更新所述像素群组;和 随后将所述像素群组合并到帧缓冲区中。 概念15.根据概念14所述的计算机系统,其进一步包含 使用标签值来跟踪存储所述像素群组的存储器位置的状态;和 根据所述后续多边形来更新所述标签值。 概念16.根据概念14所述的计算机系统,其进一步包含-确定存储所述像素群组的存储器位置何时充满;和 当存储器位置充满时将像素群组合并到帧缓冲区中。 概念17.根据概念16所述的计算机系统,其进一步包含在合并之后,通过根据像素的颜色将至少一个覆盖遮罩和至少一种颜色存储到存储 器位置中而将像素群组压縮到存储器位置中。概念18.根据概念14所述的计算机系统,其进一步包含 使用标签值作为自由指针,以跟踪存储像素群组的存储器位置的状态;和 根据所述后续多边形来更新所述标签值。概念19.根据概念14所述的计算机系统,其中所述帧缓冲区存储在系统存储器中。概念20.根据概念14所述的计算机系统,其中所述帧缓冲区存储在耦合到所述图形 处理单元的本机图形存储器中。广义上,本发明至少揭示一种用于经延迟的帧缓冲区合并的方法。所述方法可包括 存取与存储在存储器位置的像素群组相关的多边形,其中所述像素中的每一者具有现有 的颜色。可确定所述像素中哪些像素被所述多边形覆盖,其中每一像素包含多个样本。 可产生对应于被所述多边形覆盖的样本的覆盖遮罩。可通过将所述多边形的所述覆盖遮 罩和颜色存储在所述存储器位置中来更新所述像素群组。在随后的时间,可将所述像素 群组合并到帧缓冲区中。已出于说明和描述的目的呈现了对本发明特定实施例的以上描述。不希望其为彻底 的或将本发明限于所揭示的精确形式,且根据以上教示,许多修改和变化是可能的。选 择和描述实施例,以便最好地解释本发明的原理及其实际应用,借此使所属领域的其他 技术人员能够最好地利用本发明和适于预期特定用途的具有各种修改的各种实施例。希 望本发明的范围由附加于本发明的权利要求书及其等效物来界定。
权利要求
1.一种计算机系统,其包含处理器;系统存储器,其耦合到所述处理器;和图形处理单元,其耦合到所述处理器,其中所述图形处理器经配置以执行计算机可读代码,所述代码导致所述图形处理器实施用于经延迟的帧缓冲区合并的方法,所述方法包含存取与存储在存储器位置处的一群组像素相关的多边形,其中所述像素中的每一者具有现有的颜色;确定所述多边形覆盖所述像素中的哪些像素,其中每一像素包含多个样本;产生对应于由所述多边形覆盖的样本的覆盖遮罩;通过将所述多边形的所述覆盖遮罩和颜色存储在所述存储器位置中来更新所述群组像素;存取与所述群组像素相关的多个后续多边形;对于所述后续多边形中的每一者,通过将每一后续多边形的个别覆盖遮罩和个别颜色存储在所述存储器位置中来更新所述群组像素;和随后将所述群组像素合并到帧缓冲区中。
2. 根据权利要求l所述的计算机系统,其进一步包含使用标签值来跟踪存储所述群组像素的存储器位置的状态;和 根据所述后续多边形来更新所述标签值。
3. 根据权利要求l所述的计算机系统,其进一步包含确定存储所述群组像素的存储器位置何时充满;和 当存储器位置充满时,将所述群组像素合并到所述帧缓冲区中。
4. 根据权利要求3所述的计算机系统,其进一步包含在所述合并之后,通过根据所述像素的颜色将至少一个覆盖遮罩和至少一个颜色 存储到所述存储器位置中将所述群组像素压縮到所述存储器位置中。
5. 根据权利要求l所述的计算机系统,其进一步包含使用标签值作为自由指针来跟踪存储所述群组像素的存储器位置的状态;和 根据所述后续多边形来更新所述标签值。
6. 根据权利要求l所述的计算机系统,其中所述帧缓冲区存储在所述系统存储器中。
7. 根据权利要求l所述的计算机系统,其中所述帧缓冲区存储在耦合到所述图形处理 单元的本机图形存储器中。
全文摘要
一种用于经延迟的帧缓冲区合并的方法。所述方法可包括存取与存储在存储器位置处的一群组像素相关的多边形,其中所述像素中的每一者具有现有的颜色。可确定所述多边形覆盖所述像素中的哪些像素,其中每一像素包括多个样本。可产生对应于由所述多边形覆盖的样本的覆盖遮罩。可通过将所述多边形的覆盖遮罩和颜色存储在所述存储器位置中来更新所述群组像素。在之后的某一时间,可将所述群组像素合并到帧缓冲区中。
文档编号G09G5/00GK101114382SQ200710103748
公开日2008年1月30日 申请日期2007年5月22日 优先权日2006年5月22日
发明者乔纳·M·阿尔本, 亨利·P·莫尔顿, 约翰·M·丹斯金 申请人:辉达公司