在帧缓冲器中形成开窗显示的制作方法

文档序号:6339066阅读:347来源:国知局
专利名称:在帧缓冲器中形成开窗显示的制作方法
技术领域
本发明涉及数据处理系统领域。更特别地,本发明涉及数据处理系统内的帧缓冲 存储器中的开窗显示的形成。
背景技术
公知的是某些数据处理系统使用开窗显示。开窗显示被诸如运行由微软公司制 造的Windows XP操作系统和诸如Linux的操作系统的X Windows系统组件的那些系统利 用。在此类系统内,由应用程序或负责保持显示的背景、从而在帧缓冲存储器内形成像素值 的程序来生成绘图命令,所述像素值在被驱动时将在产生的期望开窗显示中显示结果。此 类开窗显示通常包括在背景上的多个可能重叠的窗口。可以改变窗口的显示顺序,并且可 以在用户输入的控制下在尺寸和位置方面修改窗口。当进行此类修改时,窗口管理程序通 常向应用程序或背景绘图程序发出开窗控制命令,使得这些随后又向图形系统发出绘图命 令,以便向帧缓冲存储器中进行要求的新像素值的写入以进行开窗显示。附图的图1和2举例说明此类系统。图1举例说明具有在其上面形成第一窗口 4 和第二窗口 6的背景图像2的开窗显示。第二窗口 6在显示顺序方面高于第一窗口 4,因此 当第二窗口 6覆盖第一窗口 4的一部分时,则第一窗口 4的该部分被隐藏。诸如用计算机 鼠标进行的用户输入可以将第二窗口 6移动至如所示的开窗显示内的不同位置,并且这导 致先前被第二窗口 6覆盖的那部分第一窗口 4变得暴露,而先前被显示的第一窗口 4的其 它不同部分现在被第二窗口 6隐藏。图2示意性地举例说明对用户输入进行响应已生成开窗控制命令的窗口管理器 8,所述开窗控制命令分别被传递至负责第二窗口 6的第一应用程序12、负责第一窗口 4的 第二应用程序14和负责绘制背景图像2的背景绘图程序16。所述开窗控制命令可以例如 指定窗口管理器8命令第一应用程序12、第二应用程序14或背景绘图程序16使用其相关 图形内容进行绘图的屏幕的区域。然后,第一应用程序12、第二应用程序14和背景绘图程 序16生成被传递至图形系统的绘图命令。这些绘图命令导致由图形系统在帧存储器内的 相关部分处生成必要的像素值。因此,如果第二窗口 6被移动,使得第一窗口 4现在是完全 可见的,则第一窗口 4的右上方角将要求由第二应用程序14进行绘制。由窗口管理器8生 成的开窗控制命令发布开窗控制命令,该开窗控制命令指示第二应用程序14现在生成用 于第一窗口 4的右上方角的像素数据。第二应用程序14对此开窗控制命令进行响应以向 图形系统发布绘图命令以生成用于其窗口 4的现在暴露的右上方角的像素值。相对于图1和2举例说明和讨论的系统和机制是基于这样的假设,即当向图形系 统发布绘图命令时,其基本上被立即遵照执行并写入存储用于被显示的当前图像的像素值 的帧缓冲存储器。图形系统被假设为可以在没有延迟的情况下访问帧缓冲存储器,并且在 绘图命令被图形系统接收到时响应于该绘图命令来读和写像素值。显示通常采用的此类布 置利用单缓冲帧缓冲存储器和立即模式的图形渲染(rendering)。正在变得普遍的另一种形式的图形系统利用基于图块(tile)的图形渲染。此类系统非常适合于低成本且低功率的实施方式,因为其一般以存储器被访问的方式更加高效。 特别地,基于图块的系统通常使用延迟渲染并在双缓冲模式下操作。在此类系统中,接收绘 图命令并对其进行分析以识别总帧内的哪些图块包含将被那些绘图命令改变的像素值。为 此,帧被划分成多个图块。因此,绘图命令被“分仓(binned)”到绘图命令的图块列表中,每 个图块列表包含用于将形成的图像数据的新的帧的所有绘图命令,其改变相关图块内的像 素值。当已经生成用于新的帧的所有绘图命令并将其分仓到多个图块列表中时,然后单独 地处理图块列表以生成用于被存储在图块存储器内的那些图块的像素值。当图块的处理完 成时,图块存储器的内容被写出到帧缓冲存储器。当已经处理了所有图块且相关图块的内容被存储器写出到帧缓冲器时,然后新的 帧数据完成,并且可以通过在双缓冲布置中交换活动帧缓冲器来显示。此类基于双缓冲图 块的渲染系统不适合于支持开窗显示。更特别地,在开窗显示中,当用户输入要求修改在基于图块的系统内显示的像素 值时,通常将要求首先从像素值的当前帧读取每个图块的内容,修改像素值的每个图块,并 随后将像素值的每个图块写回到帧缓冲器。每个图块的所有像素值的此读和写要求不利地 高数目的存储器访问,这降低速度并增加能量消耗。

发明内容
从一方面看,本发明提供一种形成开窗显示的方法,所述方法包括步骤 处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的
一个或多个新像素值;
将所述一个或多个新像素值存储在图块存储器内;
形成脏(dirty)像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多 个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值 的干净像素;以及
根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新 像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储 器内的干净像素相对应的像素值被保持不变。本技术认识到在帧缓冲存储器中的开窗显示中,如果当处理向帧缓冲存储器内的 图块进行写入的绘图命令时,系统还生成指示图块内的哪些像素已被改变并存储新像素值 的脏像素数据,则可以使用此脏像素数据来控制新像素值对帧缓冲存储器的写入,而不必 首先从帧缓冲存储器读出像素值的现有图块。脏像素数据指示用与被保持不变的图块内的 干净像素相对应的帧缓冲存储器内的现有像素数据向帧缓冲存储器内的要求像素位置进 行写入,因为未对这些干净像素位置进行写入。这样,更快且更高效地实现开窗显示的支 持。系统仍使用图块存储器,新的像素值在被写入帧缓冲存储器之前被写入该图块存储器 中,并且脏像素数据的动作用于指示从图块存储器进行的写入,使得只有新像素值被写入 帧缓冲存储器,因此,以适当的方式保持真缓冲存储器内的不变像素值。 应认识到此类系统内的图块可以具有多种不同的尺寸。在一种极端情况下,图块 可以与帧缓冲器一样大小,并且图块存储器能够存储用于帧缓冲存储器的一整套数据。在 另一极端情况下,图块的尺寸可以是单个像素。然而,通常,图块是一起对应于帧缓冲存储器中的开窗显示的多个图块中的一个。图块尺寸的典型值可以是16X16个像素,虽然将认 识到可以选择不同的图块尺寸,并且本技术适用于所有这些图块尺寸。 可以对多个图块中的每一个单独地执行处理、存储、形成和写入的步骤以形成帧 缓冲存储器中的开窗显示的全帧。该处理的基于图块的性质通过使用并行硬件来执行处 理、存储、形成和写入的步骤而非常适合于加速。可以存储所生成的绘图命令而不立即在保持一个或多个延迟绘图命令的命令仓 库内遵照执行。然后,可以关于所述多个图块中的每一个读取此命令仓库内的延迟绘图命 令,从而提取向当前正在被处理的图块进行写入的一个或多个延迟绘图命令。所述一个或多个绘图命令的存储可以包括通过识别哪些绘图命令向所述多个图 块中的哪些进行写入并为所述多个图块中的每一个形成单独的分仓仓库进行的绘图命令 的分仓,向所述图块进行写入的延迟命令被存储到所述单独的分仓仓库中。通过在绘图命 令正在被延迟时以这种方式有效地将其分类,形成用于每个图块的分仓仓库,然后,当遇到 绘制图块的触发事件时,可以从用于该图块的相应分仓仓库直接读取用于每个图块的延迟 绘图命令并将其渲染(可能用高度并行的硬件)。应认识到脏数据可以采取多种不同的形式,并且在一般意义上可以是用于识别图 块内的哪些像素已被改变和图块内的哪些像素未被改变的任何数据结构。然而,存储并操 控脏数据的硬件有效方式是使用位字段,该位字段的每个位与图块内的像素相对应并具有 位值,所述位值指示像素之一是脏像素和像素是干净像素。在这种意义上,以类似的方式使 用脏和干净,因为这些术语在高速缓冲存储器的领域内用来指示已被改变(脏)的值和未被 改变(干净)的值。脏像素数据可以方便地形成用来控制哪些像素值被从图块存储器拷贝到帧缓冲 器的写掩码。此类写掩码非常适合于控制用于生成要求写入的专用硬件,所述要求写入将 新的像素值从存储器拷贝到帧缓冲存储器。本技术可以方便地在其中窗口管理器生成被发布到一个或多个应用程序(具有相 应窗口)和用于绘制显示的任何背景区域的背景绘制程序的开窗控制命令的系统中使用。 然后,该应用程序和背景绘制程序对开窗控制命令进行响应以生成如上文所述地被逐个图 块地处理的绘图命令。可以由基于图块的图形处理单元来执行处理、存储、形成和写入的步骤。此类专用 软件非常适合于利用本技术。然而,应认识到可以由在适当软件控制下操作的通用处理器 来执行本技术。此外,可以将专用图形处理硬件和在软件控制下操作的通用处理器的组合 与任务被执行的划分一起使用,由此,此类实施例的一部分按要求根据相关系统的优先级 而变,例如功率/效率对比灵活性。虽然本技术在使用合成方案的系统中有用,但其非常适合于其中开窗显示是非合 成开窗显示的系统。非合成开窗显示通常要求硬件具有用于随着用户移动窗口并改变开窗 显示而处理必要的绘图的机制。从另一方面看,本发明提供了一种用于形成开窗显示的装置,所述装置包括
处理电路,其对向帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以形成将 被写入所述图块的一个或多个新像素值;
图块存储器,其被配置为存储所述一个或多个新像素值;脏像素数据形成电路,其被配置为形成脏像素数据,该脏像素数据指示所述图块存储 器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像 素是不存储所述一个或多个新像素值的干净像素;以及
写生成电路,其对所述脏像素数据进行响应以将存储在所述图块存储器的所述脏像素 内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储 器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。 从另一方面看,本发明提供了一种用于形成开窗显示的装置,所述装置包括
处理装置,其对向帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以便形成 将被写入所述图块的一个或多个新像素值;
图块存储器装置,其用于存储所述一个或多个新像素值;
脏像素数据形成装置,其用于形成脏像素数据,该脏像素数据指示所述图块存储器内 的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是 不存储所述一个或多个新像素值的干净像素;以及
写生成装置,其对所述脏像素数据进行响应以便将存储在所述图块存储器的所述脏像 素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存 储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。从另一方面看,本发明提供了一种计算机程序存储介质,其存储用于控制用于通 过执行包括以下步骤的方法来处理数据以形成开窗显示的装置的计算机程序
处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的 一个或多个新像素值;
将所述一个或多个新像素值存储在图块存储器内;
形成脏像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素 值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像 素;以及
根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新 像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储 器内的干净像素相对应的像素值被保持不变。通过应结合附图来阅读的说明性实施例的以下详细说明,将清楚本发明的以上及 其它目的、特征和优点。


图1示意性地举例说明开窗显示;
图2示意性地举例说明用于生成开窗控制命令的窗口管理器程序与用于向图形系统 生成绘图命令的背景绘图程序之间的关系;
图3举例说明如何可以将开窗显示内的帧分成用于用脏像素数据的相关形成来渲染 的图块;
图4示意性地举例说明用于使用基于图块的渲染来执行开窗显示的生成的图形处理 单元;
图5示意性地举例说明图形处理单元的光栅化部分;图6示意性地举例说明使用新像素值和脏像素数据来生成到帧存储器的写入;
图7是示意性地举例说明控制到基于图块的窗口显示系统内的帧存储器的写入时的 脏像素数据的形成和使用的流程图;以及
图8示意性地举例说明在开窗显示系统内的帧缓冲存储器与应用程序之间扩展的不 同功能层;以及
图9示意性地举例说明本技术到合成开窗显示系统的应用。
具体实施例方式图3示意性地举例说明包括由应用程序绘制的窗口 20和形成帧的其余部分的背 景区域的开窗显示的帧18。帧被分成八个图块22。应认识到在实践中,可以将帧分成较大数目的图块。此外, 还可以在帧包括单个图块或每个图块仅包括一个像素时使用本技术。图3的下部分举例说明如何处理一个图块。此图块被示为具有16X16像素的大 小,虽然这仅仅是可能的图块尺寸的一个示例。由稍后将描述的分仓的过程来识别生成用 于该图块的新像素值的绘图命令。当已识别了这些绘图命令时,关于当前选择的图块对其 进行处理并将所生成的新像素值写入图形处理单元内的图块存储器。因此,图块由此经受 处理其绘图命令的绘制操作和将相关的新像素值存储到图块存储器中的存储操作。同时, 由于每个新像素值被写入图块存储器中,所以脏像素数据内的相应位被设置为指示相关的 像素位置包含新的像素值。用指示未被改变的所有干净像素的位值对脏像素数据进行初始 化。因此,在已处理了用于相关图块的所有绘图命令之后,脏像素数据将包含被设置为指示 已被写入新像素值的所有位置处的脏像素的位值。如图3所示,与帧内的窗口 20的左下方 角相对应的新像素值被写入图块的右上方角中的像素位置,并且脏像素数据内的相应位置 被写入以指示那些像素位置是脏的。在图3中以二维的形式示出脏像素数据,并且将其示为256脏位字段。应认识到 在二维形式内的像素与256位字段之间存在一对一映射,并且脏像素数据的这些表示是等 效的。图4示意性地举例说明生成绘图命令的应用程序24、用于使用基于图块的渲染来 处理那些绘图命令的图形处理单元26、存储关于存储器内的不同图块的分仓绘图命令的图 块列表28和表示开窗显示的新像素值被写入其中的帧缓冲存储器30(在不同的架构中,帧 缓冲器(30)也可以在GPU中,或在系统存储器中)之间的关系。应认识到在图4中举例说 明的图形处理器单元26周围的虚线描绘图形处理单元26内的元件。实际上,在其它实施 例中,可以由其它硬件组件或在软件中提供这些元件中的某些或全部。例如,可以使用经适 当编程的通用计算机来执行图形处理单元26的所有任务,并且此类实施例将具有所执行 的处理的灵活性和可见性方面的某些优点。然而,在图4中举例说明的图形处理单元26的 内容非常适合于快速且低功率的基于图块的图形渲染。图4的图形处理单元26包含用于对接收到的绘图命令执行诸如平移、缩放、旋转 等变换操作的变换单元32。分仓单元34接收经变换的绘图命令并对其进行分仓,在分仓 中,识别哪些绘图命令向多个图块22中的哪些中进行写入,例如是将绘制点、线还是三角 形,然后该识别确定其是否至少部分地与给定图块22交叉。如果由该绘图命令生成的新像素的至少一部分在给定图块内,则绘图命令被“分仓”到该图块中并存储在相应的关联分仓 仓库36内。每个分仓仓库36对应于图块22并包含绘图命令,在绘图命令在被光栅化时将 促使新的像素值被写入该图块内。应认识到此分仓可能不是精确的,并且可以采取谨慎的 方法,其中,如果不能绝对地确定哪些新像素值将被设置,但存在这些新像素值中的某些将 在图块内的任何可能,则可以将绘图命令分仓到该图块。当绘图命令实际上被光栅化(处理 /渲染)时,然后将进行新像素值及其位置的绝对确定。如果这些新像素值中没有一个碰巧 在相关图块内,则某些处理努力将已被浪费,但是所产生的最终结果将是正确的。分仓仓库36共同地形成存 储将由光栅化单元38来处理的绘图命令的命令仓库。 如果需要,可以将分仓仓库36存储在通用存储器中。可以触发光栅化单元38在其从变换单元32接收到帧结束(EOF)信号时开始处理 来自分仓仓库36的绘图命令,所述帧结束信号指示已接收到生成开窗显示的新帧的所有 绘图命令并将其放置在适当的分仓仓库36中。实际上,图形处理单元26将从多个不同的 应用程序和背景绘制程序接收绘图命令。窗口管理器8通常将生成帧结束命令并将其直接 传递至图形处理单元36。如图4所示,并行地提供多个光栅化单元38。光栅化单元38适合于并行操作,因 为其每个具有包括当前正在被处理的分仓仓库36的独立输入源且每个生成与用于其正在 处理的图块22的像素值相对应的独立输出数据。因此,光栅化操作合适地缩放至并行操 作。每个光栅化单元38包含图块存储器40,新像素值随着处理该图块的分仓仓库36内的 绘图命令而被写入其中。同时,光栅化单元38形成指示图块存储器40内的哪些像素包含 新像素值(即包含需要在帧缓冲存储器30内更新的像素值)的脏像素数据。当已经处理了 分仓仓库36内的绘图命令时,然后,光栅化单元38根据脏像素数据形成写命令序列以仅将 其位置处的新像素值写入帧缓冲存储器30中。脏像素数据指示那些像素是干净像素(即未 被改变)的图块存储器40内的像素未被写入帧缓冲存储器30,因此,在那些位置处的已被 存储在帧缓冲存储器内的像素保持不变。因此,脏像素数据充当用于生成从图块存储器40 到帧缓冲存储器30的写事务的写掩码,使得这些写被局限于已经由从用于相关图块22的 分仓仓库36处理的绘图命令更新的像素值。图5更详细地示意性地举例说明光栅化单元38。光栅化引擎42从分仓仓库36接 收分仓绘图命令。光栅化引擎42还接收用于形成新像素值的纹理及其它数据。应认识到 此纹理及其它数据可以采取多种不同形式。其可以由专用于特定应用或使用的着色器程序 和/或着色器硬件为单独图块自定义地生成的。结合绘图命令用来生成新像素值的这种形 式的纹理数据及其它数据对于本领域的技术人员来说将是熟知的。光栅化引擎42生成其新像素值并将其存储到图块存储器40。可以将图块存储器 40视为被光栅化单元38用于存储已经生成的新像素值的一种本地高速暂存存储器。每当 新像素值被光栅化引擎42写入图块存储器40时,设置脏像素数据内的相应位。此脏像素 数据被写入脏位字段44内。当光栅化引擎42已处理了用于相关图块的分仓仓库36内的所有绘图命令时,其 向写事务发生器46发布图块结束(eot)信号。写事务发生器46对存储在脏像素数据字段 44内的脏像素数据进行响应并将其用作写事务掩码以生成到帧缓冲存储器30的写序列, 其仅从图块存储器40读取新像素值并将其写入帧缓冲存储器30内的相应位置。指示相关数据是干净的(未改变)的脏像素数据内的未被写出到帧缓冲器30。 图6示意性地举例说明新像素值到帧缓冲存储器30中的写入。如所示,图块存储 器40内的新像素值被写事务发生器46在存储在脏数据字段44中的脏像素数据内的脏像 素的控制下读取,并被写入帧缓冲存储器30的相应部分。帧缓冲存储器30已包含来自开 窗显示的前一帧的现有像素值。未被已被针对图块进行处理以生成开窗显示的当前帧的绘 图命令改变的那些现有像素值在帧缓冲存储器30内保持不变,并且只有新像素值被写入 如所示的适当位置。图7是示意性地举例说明依照本技术的处理的流程图。在步骤48处,选择要绘制 的第一图块。步骤50从用于被处理的当前图块的分仓仓库36读取第一绘图命令。步骤52 处理所读取的绘图命令并生成被存储在光栅化单元38的图块存储器40内的新像素值。然 后,步骤54通过将与由步骤52处的处理写入的所有新像素值的位置相对应的位值设置为 指示包含脏像素数据的那些位置的值来形成用于在步骤52处处理的绘图命令的脏像素数 据。步骤56确定用于当前图块的分仓仓库36内的最后一个绘图命令是否已被处理。 如果对于该图块而言仍有要处理的其它绘图命令,则在步骤58处选择其中的下一个,并且 处理返回到步骤52。如果用于当前被处理的图块的所有绘图命令已在步骤52处被渲染/ 光栅化/处理,则处理前进至步骤58。步骤58读取脏像素数据并形成存储在存储器40内 的新像素值到帧缓冲存储器30的写入。然后,步骤60确定开窗显示的新帧内的最后一个 图块是否已被处理。如果存在要处理的其它图块,则在步骤62处选择这些中的下一个,并 且处理返回到步骤50。如果所有图块已被处理,则图7的操作终止。图8示意性地举例说明在形成开窗显示时涉及的各种硬件和软件元件。按照本领 域的技术人员所熟知的分级顺序来举例说明这些元件。在此分级结构的一端处,所述元件 是软件。在此分级结构的另一端处,所述元件是硬件。硬件元件和软件元件之间的精确划 分对于不同的实施方式可以是不同的。例如,可以在硬件中提供或在软件中提供图8所示 的加速器元件。可能的是通用处理器执行硬件可以执行先前用局限于帧缓冲存储器的硬件 元件描述的所有处理,开窗显示的帧被写入所述帧缓冲存储器中。在其它实施例中,可以更 多地信赖硬件加速器和硬件元件,因为其通常执行更快且更加能量高效的图形处理。图9示意性地举例说明合成开窗显示系统中的本技术的使用。在此系统中,第一 应用程序62发布如上文所述在使用脏像素数据的控制被写入第一帧缓冲存储器68中之前 经历基于图块的处理的绘图命令。第二应用程序64同样地将其像素值写入第二帧缓冲存 储器70且背景绘图程序66将其像素值写入第三帧缓冲存储器72。上文结合在每个图块被 处理时针对每个图块生成的脏像素数据的使用所讨论的基于图块的处理技术帮助减少对 帧缓冲存储器68、70和72的访问操作的数目。这加快操作速度并减少功率消耗。应用程 序62、64和66中的每一个可以使用本技术来在产生随后被合成的其各帧缓冲器68、70、72 时占有优势。单独的应用程序62、64、66受益于脏数据在更高效地生成其各帧时的使用。第一、第二和第三帧缓冲存储器68、70和72是系统的通用存储器内的动态分配区 域。可以是硬件或软件的合成机制74用于根据定义形成开窗显示的窗口的当前尺寸、位 置、显示排序等开窗数据将帧存储器68、70和72内的像素数据组合。合成机制74生成用 于经由显示驱动器78来驱动显示器80的像素数据值并将其存储在显示帧缓冲存储器76内。 虽然在本文中已参照附图详细地描述了本发明的说明性实施例,但应理解的是本 发明不限于那些精确的实施例,并且在不脱离随附权利要求所定义的本发明的范围和精神 的情况下 ,本领域的技术人员可以对其进行各种变更和修改。
权利要求
1.一种形成开窗显示的方法,所述方法包括步骤处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的 一个或多个新像素值;将所述一个或多个新像素值存储在图块存储器内;形成脏像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素 值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像 素;以及根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新 像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储 器内的干净像素相对应的像素值被保持不变。
2.如权利要求1所述的方法,其中,所述图块是一起对应于所述帧缓冲存储器中的所 述开窗显示的多个图块中的一个。
3.如权利要求2所述的方法,其中,对所述多个图块中的每一个单独地执行所述处理、 存储、形成和写入步骤以在所述帧缓冲存储器中形成所述开窗显示的全帧。
4.如权利要求3所述的方法,还包括步骤生成一个或多个绘图命令;以及存储所述一个或多个绘图命令以形成一个或多个延迟绘图命令的命令仓库;以及针对所述多个图块中的每一个,从所述命令仓库读取向当前被处理的图块进行写入的 一个或多个延迟绘图命令并处理向当前被渲染的所述图块进行写入的所述一个或多个延 迟绘图命令。
5.如权利要求4所述的方法,其中,存储所述一个或多个绘图命令的所述步骤包括通 过识别所述一个或多个绘图命令中的哪一个向所述多个图块中的哪一个进行写入并形成 包括用于所述多个图块中的每一个的分仓仓库的命令仓库来将所述一个或多个绘图命令 分仓,每个所述分仓仓库存储向所述多个图块中的相应图块进行写入的一个或多个延迟命 令。
6.如权利要求1所述的方法,其中,所述脏数据包括位字段,该位字段的每个位与所述 图块内的像素相对应并具有指示(i )所述像素是所述脏像素之一;以及(i i )所述像素是所 述干净像素之一中的一个的位值。
7.如权利要求1所述的方法,其中,所述脏数据形成用来控制哪些像素值被从所述图 块存储器拷贝到所述帧缓冲存储器的写掩码。
8.如权利要求1所述的方法,还包括步骤用窗口管理器生成开窗控制命令;向与所述开窗显示内的一个或多个窗口中的一些相对应的一个或多个应用程序和被 配置为绘制所述显示的任何背景区域的背景绘制程序发布所述开窗控制命令;响应于所述开窗控制命令,用所述更多应用程序中的一个和所述背景绘制程序形成所 述更多绘图命令中的一个。
9.如权利要求1所述的方法,其中,由基于图块的图形处理单元来执行所述处理、存 储、形成和写入的步骤。
10.如权利要求1所述的方法,其中,所述开窗显示是非合成开窗显示。
11.一种用于在帧缓冲存储器中形成开窗显示的装置,所述装置包括处理电路,其对向所述帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以形 成将被写入所述图块的一个或多个新像素值;图块存储器,其被配置为存储所述一个或多个新像素值;脏像素数据形成电路,其被配置为形成脏像素数据,该脏像素数据指示所述图块存储 器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像 素是不存储所述一个或多个新像素值的干净像素;以及写生成电路,其对所述脏像素数据进行响应以将存储在所述图块存储器的所述脏像素 内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储 器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
12.一种用于形成开窗显示的装置,所述装置包括处理装置,其对向帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以便形成 将被写入所述图块的一个或多个新像素值;图块存储器装置,其用于存储所述一个或多个新像素值;脏像素数据形成装置,其用于形成脏像素数据,该脏像素数据指示所述图块存储器内 的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是 不存储所述一个或多个新像素值的干净像素;以及写生成装置,其对所述脏像素数据进行响应以便将存储在所述图块存储器的所述脏像 素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存 储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
13.一种计算机程序存储介质,其存储用于控制用于通过执行包括以下步骤的方法来 处理数据以形成开窗显示的装置的计算机程序处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的 一个或多个新像素值;将所述一个或多个新像素值存储在图块存储器内;形成脏像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素 值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像 素;以及根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新 像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储 器内的干净像素相对应的像素值被保持不变。
全文摘要
本发明涉及在帧缓冲器中形成开窗显示。一种使用延迟绘图命令的开窗显示通过处理向帧缓冲器(30)的图块(22)进行写入的绘图命令以形成被存储在图块存储器(40)内的一个或多个新像素值而进行操作。还形成脏像素数据,其指示图块存储器内的哪些像素是存储新像素值的脏像素和图块存储器中的哪些像素是不存储新像素值的干净像素。根据脏像素数据,存储在图块存储器内的新像素值被写入帧缓冲存储器。存储在帧缓冲器存储器内的与图块存储器内的干净像素相对应的像素保持不变,因为其未被写入。
文档编号G06F9/44GK102103499SQ201010593960
公开日2011年6月22日 申请日期2010年12月17日 优先权日2009年12月17日
发明者R. 什雷纳 D., 索尔加德 E., V. 德弗罗 I., J. 奥尔森 T. 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1