CN102103499A - 在帧缓冲器中形成开窗显示 - Google Patents
在帧缓冲器中形成开窗显示 Download PDFInfo
- Publication number
- CN102103499A CN102103499A CN2010105939605A CN201010593960A CN102103499A CN 102103499 A CN102103499 A CN 102103499A CN 2010105939605 A CN2010105939605 A CN 2010105939605A CN 201010593960 A CN201010593960 A CN 201010593960A CN 102103499 A CN102103499 A CN 102103499A
- Authority
- CN
- China
- Prior art keywords
- pixel
- dirty
- segment
- frame buffer
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000003860 storage Methods 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 31
- 230000015572 biosynthetic process Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 238000009877 rendering Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009897 systematic effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明涉及在帧缓冲器中形成开窗显示。一种使用延迟绘图命令的开窗显示通过处理向帧缓冲器(30)的图块(22)进行写入的绘图命令以形成被存储在图块存储器(40)内的一个或多个新像素值而进行操作。还形成脏像素数据,其指示图块存储器内的哪些像素是存储新像素值的脏像素和图块存储器中的哪些像素是不存储新像素值的干净像素。根据脏像素数据,存储在图块存储器内的新像素值被写入帧缓冲存储器。存储在帧缓冲器存储器内的与图块存储器内的干净像素相对应的像素保持不变,因为其未被写入。
Description
技术领域
本发明涉及数据处理系统领域。更特别地,本发明涉及数据处理系统内的帧缓冲存储器中的开窗显示的形成。
背景技术
公知的是某些数据处理系统使用开窗显示。开窗显示被诸如运行由微软公司制造的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)像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
本技术认识到在帧缓冲存储器中的开窗显示中,如果当处理向帧缓冲存储器内的图块进行写入的绘图命令时,系统还生成指示图块内的哪些像素已被改变并存储新像素值的脏像素数据,则可以使用此脏像素数据来控制新像素值对帧缓冲存储器的写入,而不必首先从帧缓冲存储器读出像素值的现有图块。脏像素数据指示用与被保持不变的图块内的干净像素相对应的帧缓冲存储器内的现有像素数据向帧缓冲存储器内的要求像素位置进行写入,因为未对这些干净像素位置进行写入。这样,更快且更高效地实现开窗显示的支持。系统仍使用图块存储器,新的像素值在被写入帧缓冲存储器之前被写入该图块存储器中,并且脏像素数据的动作用于指示从图块存储器进行的写入,使得只有新像素值被写入帧缓冲存储器,因此,以适当的方式保持真缓冲存储器内的不变像素值。
应认识到此类系统内的图块可以具有多种不同的尺寸。在一种极端情况下,图块可以与帧缓冲器一样大小,并且图块存储器能够存储用于帧缓冲存储器的一整套数据。在另一极端情况下,图块的尺寸可以是单个像素。然而,通常,图块是一起对应于帧缓冲存储器中的开窗显示的多个图块中的一个。图块尺寸的典型值可以是16×16个像素,虽然将认识到可以选择不同的图块尺寸,并且本技术适用于所有这些图块尺寸。
可以对多个图块中的每一个单独地执行处理、存储、形成和写入的步骤以形成帧缓冲存储器中的开窗显示的全帧。该处理的基于图块的性质通过使用并行硬件来执行处理、存储、形成和写入的步骤而非常适合于加速。
可以存储所生成的绘图命令而不立即在保持一个或多个延迟绘图命令的命令仓库内遵照执行。然后,可以关于所述多个图块中的每一个读取此命令仓库内的延迟绘图命令,从而提取向当前正在被处理的图块进行写入的一个或多个延迟绘图命令。
所述一个或多个绘图命令的存储可以包括通过识别哪些绘图命令向所述多个图块中的哪些进行写入并为所述多个图块中的每一个形成单独的分仓仓库进行的绘图命令的分仓,向所述图块进行写入的延迟命令被存储到所述单独的分仓仓库中。通过在绘图命令正在被延迟时以这种方式有效地将其分类,形成用于每个图块的分仓仓库,然后,当遇到绘制图块的触发事件时,可以从用于该图块的相应分仓仓库直接读取用于每个图块的延迟绘图命令并将其渲染(可能用高度并行的硬件)。
应认识到脏数据可以采取多种不同的形式,并且在一般意义上可以是用于识别图块内的哪些像素已被改变和图块内的哪些像素未被改变的任何数据结构。然而,存储并操控脏数据的硬件有效方式是使用位字段,该位字段的每个位与图块内的像素相对应并具有位值,所述位值指示像素之一是脏像素和像素是干净像素。在这种意义上,以类似的方式使用脏和干净,因为这些术语在高速缓冲存储器的领域内用来指示已被改变(脏)的值和未被改变(干净)的值。
脏像素数据可以方便地形成用来控制哪些像素值被从图块存储器拷贝到帧缓冲器的写掩码。此类写掩码非常适合于控制用于生成要求写入的专用硬件,所述要求写入将新的像素值从存储器拷贝到帧缓冲存储器。
本技术可以方便地在其中窗口管理器生成被发布到一个或多个应用程序(具有相应窗口)和用于绘制显示的任何背景区域的背景绘制程序的开窗控制命令的系统中使用。然后,该应用程序和背景绘制程序对开窗控制命令进行响应以生成如上文所述地被逐个图块地处理的绘图命令。
可以由基于图块的图形处理单元来执行处理、存储、形成和写入的步骤。此类专用软件非常适合于利用本技术。然而,应认识到可以由在适当软件控制下操作的通用处理器来执行本技术。此外,可以将专用图形处理硬件和在软件控制下操作的通用处理器的组合与任务被执行的划分一起使用,由此,此类实施例的一部分按要求根据相关系统的优先级而变,例如功率/效率对比灵活性。
虽然本技术在使用合成方案的系统中有用,但其非常适合于其中开窗显示是非合成开窗显示的系统。非合成开窗显示通常要求硬件具有用于随着用户移动窗口并改变开窗显示而处理必要的绘图的机制。
从另一方面看,本发明提供了一种用于形成开窗显示的装置,所述装置包括:
处理电路,其对向帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以形成将被写入所述图块的一个或多个新像素值;
图块存储器,其被配置为存储所述一个或多个新像素值;
脏像素数据形成电路,其被配置为形成脏像素数据,该脏像素数据指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
写生成电路,其对所述脏像素数据进行响应以将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
从另一方面看,本发明提供了一种用于形成开窗显示的装置,所述装置包括:
处理装置,其对向帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以便形成将被写入所述图块的一个或多个新像素值;
图块存储器装置,其用于存储所述一个或多个新像素值;
脏像素数据形成装置,其用于形成脏像素数据,该脏像素数据指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
写生成装置,其对所述脏像素数据进行响应以便将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
从另一方面看,本发明提供了一种计算机程序存储介质,其存储用于控制用于通过执行包括以下步骤的方法来处理数据以形成开窗显示的装置的计算机程序:
处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的一个或多个新像素值;
将所述一个或多个新像素值存储在图块存储器内;
形成脏像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
通过应结合附图来阅读的说明性实施例的以下详细说明,将清楚本发明的以上及其它目的、特征和优点。
附图说明
图1示意性地举例说明开窗显示;
图2示意性地举例说明用于生成开窗控制命令的窗口管理器程序与用于向图形系统生成绘图命令的背景绘图程序之间的关系;
图3举例说明如何可以将开窗显示内的帧分成用于用脏像素数据的相关形成来渲染的图块;
图4示意性地举例说明用于使用基于图块的渲染来执行开窗显示的生成的图形处理单元;
图5示意性地举例说明图形处理单元的光栅化部分;
图6示意性地举例说明使用新像素值和脏像素数据来生成到帧存储器的写入;
图7是示意性地举例说明控制到基于图块的窗口显示系统内的帧存储器的写入时的脏像素数据的形成和使用的流程图;以及
图8示意性地举例说明在开窗显示系统内的帧缓冲存储器与应用程序之间扩展的不同功能层;以及
图9示意性地举例说明本技术到合成开窗显示系统的应用。
具体实施方式
图3示意性地举例说明包括由应用程序绘制的窗口20和形成帧的其余部分的背景区域的开窗显示的帧18。
帧被分成八个图块22。应认识到在实践中,可以将帧分成较大数目的图块。此外,还可以在帧包括单个图块或每个图块仅包括一个像素时使用本技术。
图3的下部分举例说明如何处理一个图块。此图块被示为具有16×16像素的大小,虽然这仅仅是可能的图块尺寸的一个示例。由稍后将描述的分仓的过程来识别生成用于该图块的新像素值的绘图命令。当已识别了这些绘图命令时,关于当前选择的图块对其进行处理并将所生成的新像素值写入图形处理单元内的图块存储器。因此,图块由此经受处理其绘图命令的绘制操作和将相关的新像素值存储到图块存储器中的存储操作。同时,由于每个新像素值被写入图块存储器中,所以脏像素数据内的相应位被设置为指示相关的像素位置包含新的像素值。用指示未被改变的所有干净像素的位值对脏像素数据进行初始化。因此,在已处理了用于相关图块的所有绘图命令之后,脏像素数据将包含被设置为指示已被写入新像素值的所有位置处的脏像素的位值。如图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内。
虽然在本文中已参照附图详细地描述了本发明的说明性实施例,但应理解的是本发明不限于那些精确的实施例,并且在不脱离随附权利要求所定义的本发明的范围和精神的情况下,本领域的技术人员可以对其进行各种变更和修改。
Claims (13)
1.一种形成开窗显示的方法,所述方法包括步骤:
处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的一个或多个新像素值;
将所述一个或多个新像素值存储在图块存储器内;
形成脏像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
2.如权利要求1所述的方法,其中,所述图块是一起对应于所述帧缓冲存储器中的所述开窗显示的多个图块中的一个。
3.如权利要求2所述的方法,其中,对所述多个图块中的每一个单独地执行所述处理、存储、形成和写入步骤以在所述帧缓冲存储器中形成所述开窗显示的全帧。
4.如权利要求3所述的方法,还包括步骤:
生成一个或多个绘图命令;以及
存储所述一个或多个绘图命令以形成一个或多个延迟绘图命令的命令仓库;以及
针对所述多个图块中的每一个,从所述命令仓库读取向当前被处理的图块进行写入的一个或多个延迟绘图命令并处理向当前被渲染的所述图块进行写入的所述一个或多个延迟绘图命令。
5.如权利要求4所述的方法,其中,存储所述一个或多个绘图命令的所述步骤包括通过识别所述一个或多个绘图命令中的哪一个向所述多个图块中的哪一个进行写入并形成包括用于所述多个图块中的每一个的分仓仓库的命令仓库来将所述一个或多个绘图命令分仓,每个所述分仓仓库存储向所述多个图块中的相应图块进行写入的一个或多个延迟命令。
6.如权利要求1所述的方法,其中,所述脏数据包括位字段,该位字段的每个位与所述图块内的像素相对应并具有指示(i)所述像素是所述脏像素之一;以及(ii)所述像素是所述干净像素之一中的一个的位值。
7.如权利要求1所述的方法,其中,所述脏数据形成用来控制哪些像素值被从所述图块存储器拷贝到所述帧缓冲存储器的写掩码。
8.如权利要求1所述的方法,还包括步骤:
用窗口管理器生成开窗控制命令;
向与所述开窗显示内的一个或多个窗口中的一些相对应的一个或多个应用程序和被配置为绘制所述显示的任何背景区域的背景绘制程序发布所述开窗控制命令;
响应于所述开窗控制命令,用所述更多应用程序中的一个和所述背景绘制程序形成所述更多绘图命令中的一个。
9.如权利要求1所述的方法,其中,由基于图块的图形处理单元来执行所述处理、存储、形成和写入的步骤。
10.如权利要求1所述的方法,其中,所述开窗显示是非合成开窗显示。
11.一种用于在帧缓冲存储器中形成开窗显示的装置,所述装置包括:
处理电路,其对向所述帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以形成将被写入所述图块的一个或多个新像素值;
图块存储器,其被配置为存储所述一个或多个新像素值;
脏像素数据形成电路,其被配置为形成脏像素数据,该脏像素数据指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
写生成电路,其对所述脏像素数据进行响应以将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
12.一种用于形成开窗显示的装置,所述装置包括:
处理装置,其对向帧缓冲存储器的图块写入的一个或多个绘图命令进行响应以便形成将被写入所述图块的一个或多个新像素值;
图块存储器装置,其用于存储所述一个或多个新像素值;
脏像素数据形成装置,其用于形成脏像素数据,该脏像素数据指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
写生成装置,其对所述脏像素数据进行响应以便将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
13.一种计算机程序存储介质,其存储用于控制用于通过执行包括以下步骤的方法来处理数据以形成开窗显示的装置的计算机程序:
处理向帧缓冲存储器的图块写入的一个或多个绘图命令以形成将被写入所述图块的一个或多个新像素值;
将所述一个或多个新像素值存储在图块存储器内;
形成脏像素数据,其指示所述图块存储器内的哪些像素是存储所述一个或多个新像素值的脏像素和所述图块存储器中的哪些像素是不存储所述一个或多个新像素值的干净像素;以及
根据所述脏像素数据,将存储在所述图块存储器的所述脏像素内的所述一个或多个新像素值写入所述帧缓冲存储器的相应位置,存储在所述帧缓冲存储器内的与所述图块存储器内的干净像素相对应的像素值被保持不变。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/654385 | 2009-12-17 | ||
US12/654,385 US8803898B2 (en) | 2009-12-17 | 2009-12-17 | Forming a windowing display in a frame buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102103499A true CN102103499A (zh) | 2011-06-22 |
CN102103499B CN102103499B (zh) | 2015-12-02 |
Family
ID=43334165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010593960.5A Expired - Fee Related CN102103499B (zh) | 2009-12-17 | 2010-12-17 | 在帧缓冲器中形成开窗显示 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8803898B2 (zh) |
JP (1) | JP2011129109A (zh) |
CN (1) | CN102103499B (zh) |
GB (1) | GB2476338B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049883A (zh) * | 2013-01-29 | 2013-04-17 | 陕西汽车集团有限责任公司 | 一种快速绘图的方法和装置 |
CN104134183A (zh) * | 2013-05-02 | 2014-11-05 | Arm有限公司 | 图形处理系统 |
CN106406786A (zh) * | 2015-07-29 | 2017-02-15 | Ls 产电株式会社 | 用于在能量管理系统中显示的设备和方法 |
CN109446110A (zh) * | 2018-10-16 | 2019-03-08 | 西安邮电大学 | 可实现数据地址连续的U型布局tile缓存方法 |
CN110223369A (zh) * | 2019-06-06 | 2019-09-10 | 西安博图希电子科技有限公司 | Tbr架构的帧缓存写回方法、装置及计算机存储介质 |
CN112954241A (zh) * | 2021-02-20 | 2021-06-11 | 南京威派视半导体技术有限公司 | 图像传感器的图像数据读取系统及读取与组织的方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058685B2 (en) * | 2010-03-11 | 2015-06-16 | Broadcom Corporation | Method and system for controlling a 3D processor using a control list in memory |
US20110291964A1 (en) * | 2010-06-01 | 2011-12-01 | Kno, Inc. | Apparatus and Method for Gesture Control of a Dual Panel Electronic Device |
US9430036B1 (en) * | 2010-12-10 | 2016-08-30 | Wyse Technology L.L.C. | Methods and systems for facilitating accessing and controlling a remote desktop of a remote machine in real time by a windows web browser utilizing HTTP |
US9395885B1 (en) | 2010-12-10 | 2016-07-19 | Wyse Technology L.L.C. | Methods and systems for a remote desktop session utilizing HTTP header |
US9244912B1 (en) | 2010-12-10 | 2016-01-26 | Wyse Technology L.L.C. | Methods and systems for facilitating a remote desktop redrawing session utilizing HTML |
US8949726B2 (en) | 2010-12-10 | 2015-02-03 | Wyse Technology L.L.C. | Methods and systems for conducting a remote desktop session via HTML that supports a 2D canvas and dynamic drawing |
US9535560B1 (en) | 2010-12-10 | 2017-01-03 | Wyse Technology L.L.C. | Methods and systems for facilitating a remote desktop session for a web browser and a remote desktop server |
US9245047B2 (en) | 2010-12-10 | 2016-01-26 | Wyse Technology L.L.C. | Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface |
US8884963B2 (en) * | 2011-05-04 | 2014-11-11 | Qualcomm Incorporated | Low resolution buffer based pixel culling |
US9600350B2 (en) * | 2011-06-16 | 2017-03-21 | Vmware, Inc. | Delivery of a user interface using hypertext transfer protocol |
US9549045B2 (en) | 2011-08-29 | 2017-01-17 | Vmware, Inc. | Sharing remote sessions of a user interface and/or graphics of a computer |
US9251555B2 (en) | 2012-06-08 | 2016-02-02 | 2236008 Ontario, Inc. | Tiled viewport composition |
US9754560B2 (en) * | 2012-08-20 | 2017-09-05 | Open Invention Network, Llc | Pooling and tiling data images from memory to draw windows on a display device |
KR102065564B1 (ko) | 2012-09-05 | 2020-03-02 | 에이티아이 테크놀로지스 유엘씨 | 선택적 디스플레이 리프레시 방법 및 장치 |
US10521939B2 (en) * | 2013-05-16 | 2019-12-31 | Analog Devices Global Unlimited Company | System, method and recording medium for processing macro blocks for overlay graphics |
US9640148B2 (en) * | 2013-06-03 | 2017-05-02 | Arm Limited | Method of and apparatus for controlling frame buffer operations |
GB2525223B (en) | 2014-04-16 | 2020-07-15 | Advanced Risc Mach Ltd | Graphics processing systems |
GB201410314D0 (en) * | 2014-06-10 | 2014-07-23 | Advanced Risc Mach Ltd | Display controller |
KR102275712B1 (ko) | 2014-10-31 | 2021-07-09 | 삼성전자주식회사 | 렌더링 방법, 렌더링 장치 및 전자 장치 |
KR102354992B1 (ko) * | 2015-03-02 | 2022-01-24 | 삼성전자주식회사 | 양안 시차 영상에 대한 타일 기반 렌더링 방법 및 장치 |
JP6598546B2 (ja) * | 2015-07-17 | 2019-10-30 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
KR101727823B1 (ko) | 2015-09-21 | 2017-04-17 | 엘지전자 주식회사 | 영상 처리 장치 및 그의 동작 방법 |
GB2548853B (en) * | 2016-03-30 | 2020-09-23 | Advanced Risc Mach Ltd | Data processing |
US10691392B2 (en) | 2017-04-17 | 2020-06-23 | Intel Corporation | Regional adjustment of render rate |
CN108153505B (zh) * | 2017-12-26 | 2019-01-18 | 掌阅科技股份有限公司 | 手写输入内容的显示方法、电子设备及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020171657A1 (en) * | 2001-05-18 | 2002-11-21 | Lavelle Michael G. | External dirty tag bits for 3D-RAM SRAM |
US20030107578A1 (en) * | 2001-12-07 | 2003-06-12 | Intel Corporation | Sparse refresh of display |
US20070038939A1 (en) * | 2005-07-11 | 2007-02-15 | Challen Richard F | Display servers and systems and methods of graphical display |
US20070132771A1 (en) * | 2005-12-14 | 2007-06-14 | Winbond Israel Ltd. | Efficient video frame capturing |
US20090262122A1 (en) * | 2008-04-17 | 2009-10-22 | Microsoft Corporation | Displaying user interface elements having transparent effects |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04131895A (ja) | 1990-01-08 | 1992-05-06 | Intergraph Corp | ダーティ・ビットを用いてラスター表示用に高速ピクセル・データを供給するデジタル・カラー・ビデオ・システム |
JP3104050B2 (ja) | 1993-06-30 | 2000-10-30 | 三星電子株式会社 | ラスタ・グラフィックス・システム |
JP4699036B2 (ja) | 2005-01-31 | 2011-06-08 | 三菱電機株式会社 | グラフィクスハードウェア |
US7847755B1 (en) * | 2005-05-23 | 2010-12-07 | Glance Networks | Method and apparatus for the identification and selective encoding of changed host display information |
JP2007219626A (ja) | 2006-02-14 | 2007-08-30 | Casio Comput Co Ltd | コンピュータシステムのサーバ装置、サーバ制御プログラム、およびそのクライアント装置 |
US8289319B2 (en) * | 2007-10-08 | 2012-10-16 | Ati Technologies Ulc | Apparatus and method for processing pixel depth information |
US20110134120A1 (en) * | 2009-12-07 | 2011-06-09 | Smart Technologies Ulc | Method and computing device for capturing screen images and for identifying screen image changes using a gpu |
-
2009
- 2009-12-17 US US12/654,385 patent/US8803898B2/en active Active
-
2010
- 2010-10-21 GB GB1017784.8A patent/GB2476338B/en not_active Expired - Fee Related
- 2010-11-17 JP JP2010256682A patent/JP2011129109A/ja active Pending
- 2010-12-17 CN CN201010593960.5A patent/CN102103499B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020171657A1 (en) * | 2001-05-18 | 2002-11-21 | Lavelle Michael G. | External dirty tag bits for 3D-RAM SRAM |
US6778179B2 (en) * | 2001-05-18 | 2004-08-17 | Sun Microsystems, Inc. | External dirty tag bits for 3D-RAM SRAM |
US20030107578A1 (en) * | 2001-12-07 | 2003-06-12 | Intel Corporation | Sparse refresh of display |
US20070038939A1 (en) * | 2005-07-11 | 2007-02-15 | Challen Richard F | Display servers and systems and methods of graphical display |
US20070132771A1 (en) * | 2005-12-14 | 2007-06-14 | Winbond Israel Ltd. | Efficient video frame capturing |
US20090262122A1 (en) * | 2008-04-17 | 2009-10-22 | Microsoft Corporation | Displaying user interface elements having transparent effects |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049883A (zh) * | 2013-01-29 | 2013-04-17 | 陕西汽车集团有限责任公司 | 一种快速绘图的方法和装置 |
CN104134183A (zh) * | 2013-05-02 | 2014-11-05 | Arm有限公司 | 图形处理系统 |
CN104134183B (zh) * | 2013-05-02 | 2019-06-04 | Arm有限公司 | 基于区块的图形处理管道及其操作方法、存储介质 |
CN106406786A (zh) * | 2015-07-29 | 2017-02-15 | Ls 产电株式会社 | 用于在能量管理系统中显示的设备和方法 |
CN106406786B (zh) * | 2015-07-29 | 2019-04-23 | Ls 产电株式会社 | 用于在能量管理系统中显示的设备和方法 |
CN109446110A (zh) * | 2018-10-16 | 2019-03-08 | 西安邮电大学 | 可实现数据地址连续的U型布局tile缓存方法 |
CN110223369A (zh) * | 2019-06-06 | 2019-09-10 | 西安博图希电子科技有限公司 | Tbr架构的帧缓存写回方法、装置及计算机存储介质 |
CN112954241A (zh) * | 2021-02-20 | 2021-06-11 | 南京威派视半导体技术有限公司 | 图像传感器的图像数据读取系统及读取与组织的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2011129109A (ja) | 2011-06-30 |
US20110148892A1 (en) | 2011-06-23 |
GB2476338B (en) | 2014-10-15 |
GB201017784D0 (en) | 2010-12-01 |
US8803898B2 (en) | 2014-08-12 |
CN102103499B (zh) | 2015-12-02 |
GB2476338A (en) | 2011-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102103499A (zh) | 在帧缓冲器中形成开窗显示 | |
US9978115B2 (en) | Sprite graphics rendering system | |
US10733691B2 (en) | Fragment shaders perform vertex shader computations | |
EP3111318B1 (en) | Cross-platform rendering engine | |
JP5624733B2 (ja) | グラフィックス処理システム | |
US7876328B2 (en) | Managing multiple contexts in a decentralized graphics processing unit | |
JP6108670B2 (ja) | グラフィックス処理 | |
KR102554419B1 (ko) | 프리페칭된 그래픽스 데이터를 이용하여 타일 기반 렌더링을 수행하는 방법 및 장치 | |
US10803547B2 (en) | Graphics processing systems using a subset of pipeline stages | |
CN110036375A (zh) | 无序高速缓存返回 | |
KR102128028B1 (ko) | 비순차적 픽셀 셰이더 익스포트 | |
CN110223215B (zh) | 一种图形渲染管线的控制方法、装置及计算机存储介质 | |
CN115934590A (zh) | 电路和方法 | |
US20230205698A1 (en) | Cache blocking for dispatches | |
US20230195626A1 (en) | Variable dispatch walk for successive cache accesses | |
US20230195639A1 (en) | Stochastic optimization of surface cacheability in parallel processing units | |
US20240169639A1 (en) | Graphics processors | |
US20240169663A1 (en) | Graphics Processors | |
US20240169646A1 (en) | Graphics processors | |
US20240169618A1 (en) | Graphics processors | |
US20240169619A1 (en) | Graphics processors | |
US20240169649A1 (en) | Graphics processors | |
Weaver et al. | Improving visualization interactivity in Java | |
KR100382107B1 (ko) | 고성능 3 차원 그래픽 가속기를 위한 일관성 버퍼의 방법및 장치 | |
KR102680271B1 (ko) | 인터리빙을 수행하는 방법 및 장치. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151202 |