显示屏分区再现的装置和方法

文档序号:6651408阅读:240来源:国知局
专利名称:显示屏分区再现的装置和方法
技术领域
本发明一般地涉及便于图形再现的装置和方法,更特别地,涉及便于显示屏分区再现的装置和方法。
背景技术
将一个显示屏分解为多个分区然后分别再现每个分区的图形处理再现系统是已知的。其中,图形系统既使用主处理器又使用图形处理器,因为软件驱动器或其它应用程序在主处理器上执行的,所以主处理器易于追踪它想要再现的屏幕部分。然而,如果主处理器需要重新安排它的命令列表并且只发出处理当前被再现的屏幕分区的那些命令,那么这可能需要必须由主处理器执行的额外的排序和命令的跳转。这可能导致主处理器性能的下降并需要主处理器额外的开销。
另一个解决方法是再现整个屏幕中将被再现的所有对象的所有顶点信息然后扔掉或丢弃对于给定的屏幕分区不需要的完全被再现的对象。然而,由于需要再现所有的对象并丢弃正在被再现的屏幕的特殊部分不需要的对象,所以该方法浪费了宝贵的图形处理器资源。


由于下面结合以下附图进行描述,本发明将更易于理解,其中相同的参考数字代表相同的元件。
图1是说明根据本发明的一个实施例,包括屏幕分区命令丢弃的图形处理器的一个例子的框图;图2是说明根据本发明的一个实施例,包括屏幕分区命令丢弃的图形处理器的一个例子的框图;以及图3是说明根据本发明的一个实施例,用于提供屏幕空间的分区的再现的方法的一个例子的流程图;以及图4是说明根据本发明的一个实施例,用于提供屏幕空间的分区的再现的方法的一个例子的流程图。
具体实施例方式
简要地,用于提供屏幕空间的分区的再现的方法和装置诸如从协处理器批量载入的命令缓冲器中接收与不同的屏幕分区相关的再现命令,并确定哪一个屏幕部分是当前正在由再现引擎再现的,或由规定的另一个方法确定哪一个屏幕部分是主处理器希望被再现的,并评估与接收到的再现命令相关的屏幕区掩码位。该屏幕区掩码位识别该命令涉及的屏幕分区。该方法包括如果确定该命令与当前正在被再现的屏幕分区不相关则不执行该命令。
在一个实施例中,命令处理器包括包含了接收的对象屏幕分区再现命令掩码数据和接收的屏幕分区显示掩码数据的存储器。该命令处理器还包括可操作地耦合到该存储器的屏幕分区命令丢弃逻辑。该屏幕分区命令丢弃逻辑丢弃其相关的对象屏幕描述命令掩码数据没有与由存储的屏幕分区显示掩码数据识别的屏幕部分相对应的被取出的命令。因此,主处理器被允许批量载入具有用于任何屏幕分区的再现命令的命令缓冲器,并且,例如如果该命令指示它们是被声明的再现命令,则该命令处理器确定哪一个被取出的命令应当被执行或丢弃。例如,被声明的再现可以由该命令数据包的标题指出。如果该被取出的命令不是用于已经被识别为落入该CPU当前想要再现的屏幕分区内的对象,则该命令就被丢弃或不被执行。这样,CPU可以继续批量载入该命令缓冲器,而不必对用于特殊屏幕分区的命令进行排序。本领域普通技术人员将会认识到其它优点。
图1说明了图形再现系统10的一个例子,该图形再现系统10包括图形处理器12、主处理器14、显示被识别为显示信息18的由图形处理器12输出的显示信息的显示设备16以及存储器20,该存储器20可以包括一软件驱动器或由主处理器14执行的其它应用程序并要求图形处理器12执行一些图形再现。显示器16被显示为被分割成由虚线22指示的显示分区。这样,与整个显示器被同时再现相反,主处理器14希望该显示器的分区再现。图形处理器12通过由26表示的一个或多个适当的总线与主处理器14通讯,并且该主处理器14和图形处理器12可以通过任何其他适当的总线或希望的接口访问存储器20。在这个例子中,主处理器14被显示为通过总线或接口28访问存储器。然而,应当认识到可以使用任何适当的连接。在这个例子中,图形处理器12从协处理器14接收再现命令,例如,通过访问存储在存储器20中、驻留在主处理器14中、驻留在图形处理器12中或其它任何合适位置的适当的命令缓冲器。该再现命令是与不同的屏幕分区诸如分区A、B、C或D相关联的。
图形处理器12包括适当的逻辑或者可以执行存储在存储器中的适当的软件程序,以确定哪一个屏幕部分是主处理器14当前希望由驻留在图形处理器12中的再现引擎所再现的。图形处理器12评估与接收到的再现命令相关的屏幕部分掩码位。例如,再现命令或一组再现命令、或数据包,可以包括一个或多个识别屏幕部分A、B或C的位,其中,正在被再现的对象将被显示在那个特殊的屏幕分区中。图形处理器12识别该命令涉及的屏幕分区,并且,如果确定该命令没有涉及当前正在被再现的屏幕分区,就不执行该命令。例如,如果确定被取出的命令与当前正在被再现的屏幕分区无关,则该图形处理器可以丢弃该被取出的命令。
在一个例子中,如果希望,主处理器可以在开始时将用于整个屏幕或其它部分的再现命令或数据包提供给图形处理器12或用于图形处理器12,并使图形处理器12确定被再现的对象应当显示在屏幕空间的哪个地方。例如,图形处理器可以确定被给定的对象影响的象素的x-y坐标并提供该受影响象素信息的x-y坐标范围给主处理器,该受影响象素信息的x-y坐标范围另外被称为屏幕范围。主处理器14接收被再现对象的屏幕范围,并为对象生成用于再现命令的对象屏幕分区再现命令掩码数据,指示在屏幕上的多个分区中对象应当被显示在哪个屏幕部分或哪些屏幕部分。例如,对于命令流中的数据包,一个诸如对象屏幕分区掩码数据包(SET-BIN-MASK)的数据包被提供给用于指示那个对象可以既出现在显示区B又出现在显示区D或只是出现在一个分区中的一个给定对象的一个或多个命令。此外,CPU也指出它希望信息再现哪个分区并且在希望某个屏幕分区再现时发送包含选择的屏幕分区显示掩码(SET-BIN-SELECT)的数据包。然后命令处理器将数据包中的这些屏幕区掩码位存储到寄存器中。这样,CPU生成指出该主处理器希望再现的是哪个屏幕分区的屏幕分区显示掩码数据。它也为对象再现命令生成对象屏幕分区再现命令掩码数据,指示在多个分区中的哪一个中对象应当被显示。
CPU存储识别多个再现命令的命令数据包流以及它们相关的对象屏幕分区再现命令掩码数据。该屏幕分区显示掩码数据包应当先于该命令数据包流的呈现被CPU设置,这样它们可以被呈现给适当的屏幕分区。在一个例子中,相关的对象屏幕分区再现命令掩码数据被提供给将被显示在屏幕上的多个不同的分区的对象,以致于命令缓冲器可以用于存储在屏幕上的多个不同分区中绘制的再现命令。
例如,在接收了包括屏幕分区显示掩码数据的相应数据包后,图形处理器12只执行与对象屏幕分区再现命令掩码数据相关的那些命令,该数据指示根据那个命令再现的对象将被显示在由存储的屏幕分区显示掩码数据识别的相同的屏幕分区中。
CPU不需要在命令缓冲器中或它的命令列表中重新排列它的命令。它仅指示它想在哪个屏幕分区中再现并提供指示对象将显示在屏幕分区中的信息。然后图形处理器确定哪些命令应当被执行,因为它们将生成显示在主处理器想要再现的显示器分区中的对象。
图2是说明用于提供屏幕空间分区的再现的更详细的装置200的框图。在这个例子中,再现命令可以是数据包的形式,该数据包可以包括具有指示该命令是否可以是声明的再现命令的标题。这个数据是指示数据202。在一个实施例中,由主处理器存储到命令缓冲器204中的绘图命令也可以包括显示分区掩码位206,诸如对象屏幕分区再现命令掩码数据也被称为206。主处理器也发出屏幕分区显示掩码数据包208以通知图形处理器12主处理器想要再现哪个屏幕分区。或者,CPU为允许预测再现的那些命令和与给定的对象相关的那些命令发出对象屏幕分区掩码数据包210以便再现所给的对象。这样,通过指示对象将再现在哪个分区来识别具有它们的相关命令的每个对象,并因此关联再现命令。
如图所示,图形处理器包括本领域公知的接收再现命令214以再现显示在显示器16上的对象的再现引擎212。在第一遍再现处理中,该再现引擎212也提供屏幕范围213,如前所述。
图形处理器也包括具有屏幕分区命令丢弃逻辑218的命令处理器216,并且可以包括寄存器220和命令预取器222。该寄存器220存储在对象屏幕分区掩码数据包210中通讯的对象屏幕分区掩码数据222。另一寄存器存储在屏幕分区显示掩码数据包208中通讯的屏幕分区显示掩码数据224。
图3是说明例如由图形处理器12或其它任何适当的电路或设备执行的例如用于提供屏幕空间分区的再现的方法的流程图。如图所示,该方法包括接收与不同屏幕分区相联系的再现命令,诸如与不同对象相联系的再现命令。这显示在块300中。如块302所示,该方法包括确定哪个屏幕部分当前正在由再现引擎再现。例如,这可以通过命令处理器216考虑屏幕分区显示掩码数据224以确定CPU想要在那个屏幕分区再现而实现。这样,这包括了评估屏幕部分掩码位206以及在这种情况下的屏幕分区显示掩码数据224。如果确定被取出的命令与当前正在被再现的屏幕部分无关则该方法包括不执行被取出的命令。例如,这通过比较与给定的对象和相应的一组命令相关的对象屏幕分区掩码数据222而被确定,并确定数据是否指示屏幕分区显示掩码数据224表示的在相同的分区中绘制的对象。如果掩码位的比较指出,与给定的正在被再现的对象相联系的命令与将被再现在屏幕分区显示掩码指示的同一屏幕分区的对象相联系,则执行该命令,否则该命令被丢弃。然后该处理继续用于所有的被取出的命令。可以认识到,上面或以下描述的操作可以用任何适当的顺序执行。
如图4所示,提供屏幕空间的分区的再现的方法,如块400所示,包括将接收的屏幕分区显示掩码数据存储在存储器中,诸如接收指示主处理器当前正在再现的屏幕分区的屏幕分区显示掩码数据包208并将该信息存储在屏幕分区显示掩码寄存器224中。如块402所示,该方法包括诸如由预取器222从命令缓冲器诸如命令缓冲器204中取一组存储的再现命令诸如一组数据包和相关的对象屏幕分区再现掩码数据。举例来说,一组数据包可以与给定的对象相联系并可以包括分区掩码位206,该掩码位206也可以作为单独的数据包即对象屏幕分区掩码数据包210的一部分被通讯。因此,图2显示了不同的实施例,在该例中,在每个命令的基础上该对象屏幕分区掩码位被包括或该对象屏幕分区掩码数据包210被发送且接下来后面的数据包与那个数据包相关联直到另一个这样的数据包被发送。然而,应当认识到,可以使用任何适当的指示技术。如步骤404所示,该方法包括将接收的对象屏幕分区再现命令掩码数据存储在存储器中。例如,这可以由命令处理器216来实现。当预取器222取出对象屏幕分区掩码数据包210时,该掩码数据接下来被存储在对象屏幕分区掩码222中。
如块406所示,该方法包括丢弃与对象屏幕分区再现命令掩码数据相关并且与存储的屏幕分区显示掩码数据不相应的那些被取出的命令。这样,命令处理器216只执行其相关的对象屏幕分区再现命令掩码数据与作为当前正在被再现的屏幕分区由存储的屏幕分区显示掩码数据识别的屏幕分区相应的那些命令。该方法继续用于所有相关的数据包。
正如在一个实施例中所描述的,用于数据包210的对象屏幕分区掩码位可以与其它数据包相联系,要么通过它们纯粹的顺序要么通过任何其它适当的连接。或者,如果需要,相同的掩码信息可以被放置在绘图数据包自身中。此外,该方法包括确定该命令是否是声明的再现命令,并且如果是,则对照该屏幕分区显示掩码224检查该特殊的命令。
这样,在其它优点中,主处理器不需要以任何特殊的顺序组织命令的数据包以实现再现命令的装入,这样当主处理器需要时特殊的屏幕分区被再现。其它优点将被本领域普通技术人员认识到。
下面以另一种途径描述提供屏幕空间分区的再现的方法和装置。
声明的数据包支持允许Type-3数据包从未成功进行bin比较测试的命令流中丢弃。所有的具有设置在它们标题中的位0的Type-3数据包将时照Bin寄存器进行测试(如果位0被清除则该数据包将继续而不用测试)。如果测试通过,该数据包将通过CP继续处理,否则如果测试失败它将被丢弃。
该测试由驱动器通过2个数据包设置。有代表定义bin类别定义的当前驱动器的BIN_MASK_HI和BIN_MASK_LO寄存器,并且这些寄存器通过SET_BIN_MASK数据包设置。也有代表后面命令流数据的bin类别的BIN_SELECT_HI和BIN_SELECT_LO寄存器,并且这些寄存器通过SET_BIN_SELECT数据包更新。一旦这些寄存器被设置,CP就可以为后面声明的Type-3数据包比较Bin寄存器。
SET_BIN_MASK使用SET_BIN_SELECT数据包设置该声明测试。
SET_BIN_MASK数据包设置两个连续的32位寄存器CP_BIN_MASK_LO和CP_BIN_MASK_HI。所组合的64位值指定由bin类别定义的当前驱动器。
CP的预取分析器对CP_BIN_MASK和CP_BIN_SELECT寄存器进行比较,以确定后面的声明数据包是否被处理。
比较测试由跟随着对该结果进行OR减化操作的逐位AND操作构成,以检测是否有一些位被设置。
如果有些位被设置,则该声明数据包被处理;否则该声明数据包被跳过。
格式序数字段名描述1[标题]数据包的标题2[BIN_MASK_LO]将BIN_MASK_LO[31:0]寄存器设置为提供的值。
3[BIN_MASK_HI]将BIN_MASK_HI[31:0]寄存器设置为提供的值。
SET_BIN_SELECT使用SET_BIN_MASK数据包设置该声明测试。
SET_BIN_SELECT数据包设置两个连续的32位寄存器CP_BIN_SELECT_LO和CP_BIN_SELECT_HI。所组合的64位值指定后面的命令流数据的bin类别。
CP的预取分析器对CP_BIN_MASK和CP_BIN_SELECT寄存器进行比较,以确定后面的声明数据包是否被处理。
比较测试由跟随着对该结果进行OR减化操作的逐位AND操作构成,以检测是否有一些位被设置。
如果有些位被设置,则该声明数据包被处理;否则该声明数据包被跳过。
格式序数字段名描述
1[标题]数据包的标题2[BIN_SELECT_LO]将BIN_SELECT_LO[31:0]寄存器设置为提供的值。
3[BIN_SELECT_HI]将BIN_SELECT_HI[31:0]寄存器设置为提供的值。
权利要求
1.一种在分别再现屏幕空间分区的系统中的方法,包括接收与不同屏幕分区相关联的再现命令;以及确定哪一个屏幕分区当前正在由再现引擎再现,并评估与用于识别该命令涉及的屏幕分区的、被接收的再现命令相关联的屏幕区掩码位,如果确定该命令与在正在被再现的当前屏幕区中显示的对象无关,则不执行该命令。
2.如权利要求1的方法,包括批量载入具有用于多个不同的屏幕分区的再现命令到一个命令缓冲器,其中至少多个该批量载入的命令指示它们被声明为再现命令,以及其中批量载入再现命令到该命令缓冲器中包括批量载入该命令缓冲器而不预排序用于特定屏幕分区的命令。
3.一种用于提供屏幕空间的分区的再现的方法,包括将接收的屏幕分区显示掩码数据存储在存储器中;从命令缓冲器中取一组存储的再现命令和相关的显示分区再现掩码数据;将接收的对象屏幕分区再现命令掩码数据存储在存储器中;以及丢弃其相关的对象屏幕分区再现命令掩码数据没有与被存储的屏幕分区显示掩码数据识别的屏幕分区相对应的那些被取出的命令。
4.如权利要求3的方法,其中该接收的屏幕分区再现命令掩码数据从第一处理器被接收,并且其中丢弃其相关的对象屏幕分区再现命令掩码数据的那些被取出的命令,由第二处理器执行。
5.一种命令处理器包括包含接收的对象屏幕分区再现命令掩码数据和接收的屏幕分区显示掩码数据的存储器;以及屏幕分区命令丢弃逻辑,与该存储器操作地耦合并操作以丢弃其相关的对象屏幕分区再现命令掩码数据与被存储的屏幕分区显示掩码数据识别的屏幕分区不相应的被取出的命令。
6.一种图形处理器包括再现引擎;命令处理器,与该再现引擎操作地耦合,该命令处理器包括包含接收的对象屏幕分区再现命令掩码数据和接收的屏幕分区显示掩码数据的存储器;以及屏幕分区命令丢弃逻辑,与该存储器操作地耦合并操作以丢弃其相关的对象屏幕分区再现命令掩码数据与被存储的屏幕分区显示掩码数据识别的屏幕分区不相应的被取出的命令;以及其中再现引擎基于没有被丢弃的取出命令再现对象。
7.一种用于提供屏幕空间的分区的再现的装置,包括第一处理器;操作地显示显示信息的显示设备;第二处理器,与该显示设备操作地耦合并与该第一处理器操作地耦合;其中的第一处理器操作的提供与不同的屏幕分区相关的再现命令,并将再现命令和相关的显示分区再现掩码数据存储在命令缓冲器中;以及其中的第二处理器操作的将接收的屏幕分区显示掩码数据存储在存储器中;从命令缓冲器中取一组存储的再现命令和相关的显示分区再现掩码数据;将接收的对象屏幕分区再现命令掩码数据存储在存储器中;以及丢弃其相关的对象屏幕分区再现命令掩码数据与被存储的屏幕分区显示掩码数据识别的屏幕分区不相应的那些被取出的命令。
全文摘要
本发明涉及显示屏分区再现的装置和方法,用于提供屏幕空间分区的再现,接收例如来自协处理器批量载入的命令缓冲器的与不同屏幕分区相关的再现命令,确定哪个屏幕区域目前正在被再现引擎再现,或换句话说,主处理器希望再现哪个屏幕区域,并评估与接收的再现命冷相关的屏幕区域掩码位。屏幕区域掩码位识别命令涉及的屏幕区域。该方法包括当确定命令不涉及当前被再现的屏幕区域时则不执行该命令。
文档编号G06T15/00GK1819011SQ200510131559
公开日2006年8月16日 申请日期2005年8月11日 优先权日2004年8月12日
发明者拉尔夫·C.·泰勒, 约翰·凯里 申请人:Ati科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1