买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:想象技术有限公司
摘要:本公开涉及但不限于多视图图元块。描述了用于存储图元数据的数据结构以及用于生成数据结构的方法和装置。数据结构包括多个图元的图元数据和多个顶点的顶点数据,其中,每个图元是参照多个顶点中的一个或更多个顶点来定义的。顶点数据包括关于一个以上的视图例如左视图和右视图的数据,以及第一组顶点参数的顶点参数值是关于每个视图分别存储的,而第二组非重叠顶点参数的顶点参数值仅被存储一次并且是在渲染任一视图或两个视图时被使用。
主权项:1.一种图元块组装模块,用于在图形处理系统中将图元数据组装成图元块,所述图元块组装模块包括:输入端,所述输入端被配置为接收场景的一个或更多个图元的图元数据以用于渲染所述场景的多个视图,其中,所述图元数据包括多个参数,并且所述多个视图至少包括第一视图和第二视图;以及处理逻辑,所述处理逻辑被布置为存储控制数据,所述控制数据标识哪些顶点参数在第一多个顶点参数中以及哪些顶点参数在第二多个顶点参数中,并且所述处理逻辑被布置为使用所述控制数据生成图元块,并且将所述一个或更多个图元的图元数据和多个顶点的顶点数据存储在所述图元块中,其中对于所述多个顶点中每个顶点,所述顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;以及对于第二多个顶点参数中的每个顶点参数,关于所述第一视图和所述第二视图两者的单个顶点参数值;其中,所述控制数据在离线过程中通过以下方式确定:对于每个顶点参数,检查被配置为生成关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值的代码;对于顶点参数,响应于确定所述代码能够生成至少一个顶点的关于所述第一视图的与同一顶点的关于所述第二视图的顶点参数不匹配的顶点参数值,将该顶点参数分配给所述第一多个顶点参数;以及对于顶点参数,响应于确定所述代码不能够生成任何顶点的关于所述第一视图的与同一顶点关于所述第二视图的顶点参数不匹配的顶点参数值,将该顶点参数分配给所述第二多个顶点参数。
全文数据:多视图图元块背景图形处理系统用于处理图形数据。例如,在计算系统上运行的应用可能需要渲染三维3D场景的图像用于显示给用户。应用可以将图形数据发送到图形处理系统以进行渲染,其中图形数据描述要渲染的图元primitive。如在本领域中已知的,图元通常是凸多边形,诸如三角形或凸四边形,其中图元通常具有其在由其顶点的位置定义的图形处理系统的渲染空间中的位置,并且可以具有其由其他属性诸如颜色或纹理属性定义的外观。场景中的对象可以由一个或更多个图元表示。随着图形处理系统的进步,它们渲染复杂图像的能力得到提高,并且因此应用利用这一点,并为图形处理系统提供更复杂的图像来渲染。这意味着图像中的图元数量有增加的趋势,因此图形处理系统有效地处理图元的能力变得更为重要。提高图形处理系统的效率的一种已知方式是以基于瓦片tile的方式渲染图像。以这种方式,将图元在其中渲染的渲染空间分成多个瓦片,其然后可以彼此独立地被渲染。为了渲染图元,渲染单元使用存储器来存储用于不同样本位置的中间结果例如,深度值和图元标识符等。如果渲染单元一次在一个瓦片上操作,则该存储器的大部分或全部可以位于“片上”,即在图形处理单元GPU上,如果整个渲染空间被立即渲染则这可能是不太可能的。因此,在基于瓦片的图形系统中,与非基于瓦片的图形系统相比,在GPU和片外存储器即,其可以被称为“系统存储器”之间的读取和写入操作的数量通常被减少。由于在GPU和系统存储器之间的读取和写入操作通常非常慢并且与在GPU内部执行的操作相比使用大量的功率,因此基于瓦片的图形系统常常比非基于瓦片的图形系统更有效从功率和速度方面来说。基于瓦片的图形系统包括平铺单元tilingunit以平铺图元。也就是说,平铺单元为图元确定该图元位于渲染空间的哪个瓦片中。然后,当渲染单元渲染瓦片时,可以给出指示哪些图元应该用于渲染瓦片的信息。在一些基于瓦片的图形系统中,平铺单元生成被称为图元块的数据块,这些数据块包含图元数据,并且这些图元数据被写入存储器并由渲染单元读取。图元块中的图元数据可以包括多个顶点的数据和多个图元的数据。如上所述,图元由其顶点的位置进行定义,并且因此图元的数据例如,在图元块中可以参考在同一图元块内多个顶点的顶点数据。随着图形数据的复杂性和显示速度的增加,计算机图形系统中每秒用于渲染图像的顶点数据的量增加,以及用于存储在3D渲染中使用的图元块其包含顶点数据的存储空间可以很容易地达到数百MB。下面所述的实施方式仅作为示例被提供且不是对解决生成并存储图元块的已知方法的任何或所有缺点的实现方式的限制。概述提供本概述来以简化形式引入选择的概念,这些选择的概念在以下详细描述中将进一步被描述。本概述不旨在标识出要求保护的主题的关键特征或必要特征,亦不旨在用于限定要求保护的主题的范围。描述了用于存储图元数据的数据结构以及用于生成该数据结构的方法和装置。数据结构包括关于多个图元的图元数据和关于多个顶点的顶点数据,其中每个图元参照多个顶点中的一个或更多个顶多来进行定义。顶点数据包括关于例如左视图和右视图的一个以上的视图的数据,以及第一组顶点参数的顶点参数值对于每个视图被分别进行存储,并且第二组非重叠顶点参数的顶点参数值仅被存储一次并且在渲染任一视图或两个视图时被使用。第一方面提供了一种图元块组装模块,用于在图形处理系统中将图元数据组装成图元块,该图元块组装模块被配置为:接收场景的一个或更多个图元的图元数据以用于渲染场景的多个视图,其中,图元数据包括多个参数;以及将一个或更多个图元的图元数据存储在图元块中,其中:对于参数的第一子集的每个参数,相应参数值被存储用于多个视图;以及,对于参数的第二子集的每个参数,公共参数值被存储以供多个视图共享。第二方面提供了一种图元块组装模块,用于在图形处理系统中将图元组装成图元块,该图元块组装模块包括:输入端,其被配置为接收至少关于第一视图和第二视图的图元数据;处理逻辑,其被布置为生成图元块,图元块包括:多个顶点的顶点数据;以及,多个图元的图元数据,其中,图元的图元数据包括对多个顶点中的一个或更多个顶点的引用;其中,对于多个顶点中的每个顶点,顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于第一视图的顶点参数值和关于第二视图的顶点参数值;以及,对于第二多个顶点参数中的每个顶点参数,关于第一视图和第二视图两者的单个顶点参数值。被布置为生成图元块的处理逻辑可包括被配置为执行以下操作的逻辑:在图元块中存储多个图元的图元数据,以及,对于多个顶点中的每个顶点:对于第一多个顶点参数中的每个顶点参数,将关于第一视图的顶点参数值和关于第二视图的顶点参数值存储在图元块中;以及,对于第二多个顶点参数中的每个顶点参数,将关于第一视图和第二视图两者的单个顶点参数值在图元块中。被布置为生成图元块的处理逻辑可以包括被配置为通过以下方式确定哪些顶点参数在第一多个顶点参数中以及哪些顶点参数在第二多个顶点参数中的逻辑:对于每个顶点和每个顶点参数,比较关于第一视图的顶点参数值和关于第二视图的顶点参数值;对于顶点参数,响应于确定至少一个顶点的关于第一视图的顶点参数值与同一顶点的关于第二视图的顶点参数不匹配,将该顶点参数分配给第一多个顶点参数;以及,对于顶点参数并且对于每个顶点,响应于确定关于第一视图的顶点参数值和关于第二视图的顶点参数匹配,将该顶点参数分配给第二多个顶点参数。被布置为生成图元块的处理逻辑可以包括被配置为通过以下方式确定哪些顶点参数在第一多个顶点参数中以及哪些顶点参数在第二多个顶点参数中的逻辑:对于每个顶点参数,检查被配置为生成关于第一视图的顶点参数值和关于第二视图的顶点参数值的代码;对于顶点参数,响应于确定该代码能够生成至少一个顶点的关于第一视图的与同一顶点的关于第二视图的顶点参数不匹配的顶点参数值,则将该顶点参数分配给第一多个顶点参数;以及,对于顶点参数,响应于确定该代码不能够生成任何一个顶点的关于第一视图的与同一顶点的关于第二视图的顶点参数不匹配的顶点参数值,则将该顶点参数分配给第二多个顶点参数。被布置为生成图元块的处理逻辑还可以包括被布置为存储控制数据的逻辑,所述控制数据标识哪些顶点参数在所述第一多个顶点参数中和或哪些顶点参数在所述第二多个顶点参数中。图元块可以包括用于立体渲染的数据,并且第一视图是左视图,且第二视图是右视图。第一多个顶点参数可以包括定义顶点的位置的参数。第一多个顶点参数还可以包括定义反射的参数。第二多个顶点参数可以包括属性数据。图元块可以包括:第一部分,其仅包括关于第一视图的第一多个顶点参数的顶点参数值;第二部分,其仅包括关于第二视图的第一多个顶点参数的顶点参数值;以及,第三部分,其仅包括第二多个顶点参数的顶点参数值。第一部分和第二部分可以交错。处理逻辑可以在硬件中被实现。第三方面提供了一种在图形处理系统中将图元数据组装成图元块的方法,该方法包括:接收场景的一个或更多个图元的图元数据以用于渲染场景的多个视图,其中图元数据包括多个参数;以及将一个或更多个图元的图元数据存储在图元块中,其中:对于参数的第一子集的每个参数,存储关于多个视图的相应参数值;以及对于参数的第二子集的每个参数,存储公共参数值以供多个视图共享。第四方面提供了一种在图形处理系统中将图元组装成图元块的方法,该方法包括:至少接收关于第一视图和第二视图的图元数据;在图元块组装模块中生成图元块,该图元块包括:多个顶点的顶点数据;以及多个图元的图元数据,其中,图元的图元数据包括对多个顶点中的一个或更多个顶点的引用;其中,对于多个顶点中每个顶点,顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于第一视图的顶点参数值和关于第二视图的顶点参数值;以及,对于第二多个顶点参数中的每个顶点参数,关于第一视图和关于第二视图两者的单个顶点参数值。生成图元块可以包括:在图元块中存储多个图元的图元数据;以及对于多个顶点中的每个顶点,在图元块中存储:对于第一多个顶点参数中的每个顶点参数,关于第一视图的顶点参数值和关于第二视图的顶点参数值;以及对于第二多个顶点参数中的每个顶点参数,关于第一视图和第二视图两者的单个顶点参数值。该方法还可以包括:对于每个顶点和每个顶点参数,比较关于第一视图的顶点参数值和关于第二视图的顶点参数值;对于顶点参数,响应于确定至少一个顶点的关于第一视图的顶点参数值与同一顶点的关于第二视图的顶点参数不匹配,将该顶点参数分配给第一多个顶点参数;以及对于顶点参数并且对于每个顶点,响应于确定关于第一视图的顶点参数值和关于第二视图的顶点参数匹配,将该顶点参数分配给第二多个顶点参数。该方法还可以包括:对于每个顶点参数,检查被配置为生成关于第一视图的顶点参数值和关于第二视图的顶点参数值的代码;对于顶点参数,响应于确定该代码能够生成至少一个顶点的关于第一视图的与同一顶点的关于第二视图的顶点参数不匹配的顶点参数值,则将该顶点参数分配给第一多个顶点参数;以及,对于顶点参数,响应于确定该代码不能够生成任何一个顶点的关于第一视图的与同一顶点的关于第二视图的顶点参数不匹配顶点参数值,则将该顶点参数分配给第二多个顶点参数。该方法还可包括:将控制数据存储在图元块中,所述控制数据标识哪些顶点参数在第一多个顶点参数中和或哪些顶点参数在第二多个顶点参数中。图元块可以包括用于立体渲染的数据,并且第一视图是左视图,而第二视图是右视图。第一多个顶点参数可以包括定义顶点位置的参数。第一多个顶点参数还可以包括定义反射的参数。第二多个顶点参数可以包括属性数据。图元块可以包括:第一部分,其仅包括关于第一视图的第一多个顶点参数的顶点参数值;第二部分,其仅包括关于第二视图的第一多个顶点参数的顶点参数值;以及,第三部分,其仅包括第二多个顶点参数的顶点参数值。第一部分和第二部分可以交错。第五方面提供了一种被存储在存储器元件中的数据结构,用于存储关于场景的多个视图的图元数据,其中,图元数据包括多个参数,该数据结构包括:对于参数的第一子集的每个参数,关于多个视图的相应参数值;以及对于参数的第二子集的每个参数,用于供多个视图共享的公共参数值。第六方面提供了一种被存储在存储器元件中的数据结构,用于存储至少关于第一视图和第二视图的图元数据,该数据结构包括:多个顶点的顶点数据;以及多个图元的图元数据,其中,图元的图元数据包括对多个顶点中的一个或多个顶点的引用;其中,对于多个顶点中每个顶点,顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于第一视图的顶点参数值和关于第二视图的顶点参数值;以及,对于第二多个顶点参数中的每个顶点参数,关于第一视图和第二视图两者的单个顶点参数值。数据结构可以包括用于立体渲染的数据,并且其中,第一视图是左视图,而第二视图是右视图。第一多个顶点参数可以包括定义顶点位置的参数。第一多个顶点参数还可以包括定义反射的参数。第二多个顶点参数可以包括属性数据。数据结构还可以包括:第一部分,其仅包括关于第一视图的第一多个顶点参数的顶点参数值;第二部分,其仅包括关于第二视图的第一多个顶点参数的顶点参数值;以及第三部分,其仅包括第二多个顶点参数的顶点参数值。第一部分和第二部分可以交错。进一步的方面提供了一种被配置为执行本文描述的方法的图形处理系统和一种包括本文所描述的图元块组装模块的图形处理系统,其中,图形处理系统可以在集成电路上的硬件中进行实现。更进一步的方面提供计算机可读代码和其上编码有所述计算机可读代码的计算机可读存储介质,所述计算机可读代码被配置成使得当代码运行时执行本文所述的方法。进一步的方面提供了一种使用集成电路制造系统来制造如本文所述的图形处理系统的制造方法和一种集成电路定义数据集,当在集成电路制造系统中进行处理时,该集成电路定义数据集配置集成电路制造系统以制造如本文所述的图形处理系统。其他方面提供了:一种计算机可读存储介质,其上存储有集成电路的计算机可读描述,当在集成电路制造系统中处理时,该计算机可读描述使得集成电路制造系统制造如本文所述的图形处理系统;一种被配置为制造如本文所述的图形处理系统的集成电路制造系统;以及,一种集成电路制造系统,其包括:非瞬态计算机可读存储介质,其上存储有描述图形处理系统的集成电路的计算机可读描述;布局处理系统,其被配置为处理集成电路描述,以便生成体现图形处理系统的集成电路的电路布局描述;以及集成电路生成系统,其被配置为根据电路布局描述制造图形处理器系统,其中该图形处理系统包括本文所述的图元块组装模块的图形处理系统。可以在集成电路上的硬件中体现本文描述的图形处理系统。可提供在集成电路制造系统处制造图形处理系统的方法。可提供集成电路定义数据集,其在集成电路制造系统中进行处理时,将该系统配置为制造图形处理系统。可提供非暂时性计算机可读存储介质,在该非暂时性计算机可读存储介质上存储有集成电路的计算机可读描述,该集成电路的计算机可读描述在进行处理时,使布局处理系统生成在集成电路制造系统中使用的电路布局描述,以便制造图形处理系统。可提供集成电路制造系统,其包括:非暂时性计算机可读储存介质,其上储存有描述图形处理系统的计算机可读集成电路描述;布局处理系统,其被配置为对集成电路描述进行处理,以便生成体现图形处理系统的集成电路的电路布局描述;以及集成电路生成系统,其被配置为根据电路布局描述来制造图形处理系统。可以提供用于执行本文中所描述的任何方法的计算机程序代码。可提供其上储存有计算机可读指令的非暂时性计算机可读储存介质,该计算机可读指令在计算机系统处被执行时使计算机系统执行本文中所描述的任何方法。如对技术人员将明显的是,以上特征可酌情进行组合,并且可与本文中所描述的示例的任意方面组合。附图说明现在将参照附图对示例进行详细描述,在附图中:图1示出了可用于渲染3D场景的立体图像的基于瓦片的图形处理系统的一些元件;图2是显示示例图元块的结构的示意图;图3是生成图2中所示图元块的两个示例方法的流程图;图4是显示另一示例图元块的结构的示意图;图5是显示又一示例图元块的结构的示意图;图6示出了图形处理系统在其中被实现的计算机系统;以及图7示出了用于生成体现图形处理系统的集成电路的集成电路制造系统。附图图示了不同的示例。技术人员将认识到,图中所示出的元件边界例如,框、框的组、或其他形状表示边界的一个示例。在一些示例中可以是,一个元件可以被设计为多个元件,或者多个元件可被设计为一个元件。在适当情况下,共同的参考数字在整个附图中用于指示类似的特征。详细描述以下的描述是通过示例的方式来呈现的,以使本领域技术人员能够做出和使用本发明。本发明不限于本文中所描述的实施例,并且对所公开的实施例的各种修改对于本领域技术人员将是明显的。现在将仅通过示例来对实施例进行描述。如上所述,在计算机图形系统中每秒用于渲染图像的顶点数据的量可能非常大,并且这可能会影响系统的性能,例如,其受到存储器带宽例如,在生成图元块的处理单元和存储图元块的存储器之间的带宽的限制。当渲染场景的多个视图时,例如用于立体渲染,数据的量进一步增加。如上所述,基于瓦片的图形处理系统中的平铺单元生成图元块,并且还为图元确定图元位于渲染空间的哪个瓦片中。将瓦片和图元彼此相关联的数据可以以显示列表可选地,其可以被称为控制列表或流的形式从平铺单元输出。在典型的立体渲染系统中,平铺单元输出两倍数量的图元块例如,一组左图元块和一组右图元块,其中每个左图元块对应于右基元块中的一个,形成用于从左视点和右视点观看的场景的特定实例的一对图元块和两倍数量的显示列表例如,一组左显示列表和一组右显示列表,其中每个左显示列表对应于右显示列表中的一个,形成用于从左视点和右视点观看的场景的特定实例的一对显示列表。本文描述了生成用于多视图渲染的图元块的一种更有效的方法,该方法减少了由平铺单元写入存储器的数据的总量,并因此减少了用于存储器写入的存储器带宽。本文还描述了一种新的数据结构,其形式为用于多视图渲染的新图元块格式,其通过减少存储用于多视图渲染的所有图元块所需的总存储空间来提高数据存储的效率。特别地,图元块格式包括关于每个视图例如,立体渲染中的右视图和左视图的数据,从而不生成用于独立的视图的专用的独立的图元块。尽管这些方法和数据结构在下面是就立体渲染的方面进行描述的立体渲染包括两个视图,左视图和右视图,但是无论实际多少视图被渲染,只要存在关于不止一个视图例如,立方体地图的顶点数据,这些方法和数据结构都可以被使用。例如,立方体地图表示场景的六个视图,其中,当从立方体的中心向外看立方体的每个面时,每个视图通常包括可见的场景几何图形。在渲染立方体地图的情况下,建议的数据结构将包含六组独特的每视图数据例如每视图位置数据和一组公共数据。图1示出了可用于渲染3D场景的立体图像的基于瓦片的图形处理系统100的一些元件。3D场景的立体图像可以通过渲染场景的“左视图”和“右视图”来创建,场景的“左视图”和“右视图”分别对应于观看者的左眼和右眼将看到的场景的视图。通过使渲染的左视图对观看者的左眼可见并使渲染的右视图对观看者的右眼可见,这对于生成3D图像并向观看者显示3D图像是非常有用的。这可以通过多种不同的方式来实现,例如,使用观看者佩戴的眼镜,该眼镜允许观看者的左眼和右眼可看到不同的图像。仅举一些示例,这可以用偏光镜片、彩色透镜或能模拟快速快门速度的透镜来实现。在另一示例中,观看者可以佩戴头戴式显示器,使得不同的图像对观看者的相应的眼睛是可见的。这在虚拟现实系统或增强现实系统中可以是很有用的。图形处理系统100包括图形处理单元GPU102和存储器的两个部分104A和104B。注意,存储器的两个部分104A和104B可以是或可以不是同一物理存储器的部件,并且存储器104A和104B都可以位于“芯片外”,即不与GPU102在相同的芯片上。存储器104A和104B与GPU102之间的通信可以通过在系统100中的通信总线发生。GPU102包括预处理模块106、平铺单元108和渲染单元110。平铺单元108包括处理逻辑112和数据储存器114,并且渲染单元110包括隐藏面消除HSR模块116和纹理化阴影化模块118。图形处理系统100被布置为使得在预处理模块106处接收描述由应用提供的图元序列的图形数据。预处理模块106执行诸如几何图形处理的功能,包括剪切和剔除以去除不落入可见视图内的图元。预处理模块106还可以将图元投影到屏幕空间中。预处理模块106将图元输出到平铺单元108。平铺单元108从预处理模块106接收图元并确定在图形处理系统100的渲染空间的每个瓦片内存在哪些图元。图元可以在渲染空间的一个或更多个瓦片中。平铺单元108通过创建用于瓦片的显示列表来将图元分配给渲染空间的瓦片,其中用于瓦片的显示列表包括在瓦片中存在的图元的指示即图元ID。平铺单元108的处理逻辑112执行平铺单元108的操作,并且数据储存器114存储平铺过程的中间结果的数据,如平铺计算的结果和部分填充的显示列表。处理逻辑112可以用专门设计用于执行平铺单元108的操作的专用硬件来实现。可选地,可以通过在处理器上执行软件来实现处理逻辑112的至少一些功能,其中软件被写成使得当其被执行时,其使处理器执行平铺单元108的操作。在各种示例中,一旦用于渲染器的所有图元都被平铺,显示列表就是完整的,并且它们和图元块被传递到片外存储器104A以便存储在其中。在其他示例中,平铺单元108可能不使用内部储存器诸如,储存器114来存储显示列表,并且替代地,当平铺被执行时,图元标识符可以被直接写入到存储器104A中的显示列表。此外,在一些另外的示例中,内部储存器114可以被实现在平铺单元108中,但是内部储存器114可能没有大到足以一次就存储下用于所有瓦片的所有显示列表。因此,可以使用内部储存器114来收集平铺结果,平铺结果然后可以在平铺被执行时成块chunks地或“成批地batches”被写入存储器104A。这在图元被写入存储器104A中的不同控制流时可以避免低效的存储器访问模式。渲染单元110从存储器104A获取用于瓦片的显示列表和与该瓦片相关的图元即,通过从图元块读取数据,并且HSR模块116执行隐藏面消除,从而去除隐藏在场景中的图元的片段。其余的片段被传递到纹理化阴影化模块118,纹理化阴影化模块118对片段执行纹理化和或阴影化,以确定可以传递到存储器104B以存储在帧缓冲器中的被渲染的图像的像素颜色值。渲染单元110处理每一个瓦片中的图元,并且当整个图像已被渲染并被存储在存储器104B中时,图像可以从图形处理系统100输出并且例如被显示在显示器上。图1还更详细地示出了预处理模块106和在平铺单元108内的处理逻辑112的示例结构。如图1中所示,预处理模块106可以包括获取顶点数据的数据获取模块122、顶点处理模块124、几何图形着色器126和视口转换模块128,视口转换模块128结合透视分割将顶点转换成屏幕空间坐标。如图1中所示,在平铺单元108内的处理逻辑112可以包括生成图元块的图元块组装模块130和生成显示列表的平铺引擎132。在图1所示的示例中,基于瓦片的图形处理系统100是延迟渲染系统,意味着渲染单元110在对图元片段执行纹理化和或阴影化之前在图元片段上执行隐藏面消除以便渲染该场景。然而,在其他示例中,图形处理系统可能不是延迟渲染系统,使得在对图元片段执行隐藏面消除之前对图元片段执行纹理化和或阴影化。本文描述的生成用于多视图渲染例如立体渲染的图元块的方法在图形处理系统100的平铺单元108内被实现,且这减少了关于存储器的写入存储器104A的存储器带宽。该方法和图元块格式可以参考图2和图3来描述,图2和图3涉及立体渲染即,每个场景实例两个视图,但是该方法可以容易地扩展到其他多视图渲染方法,例如,其中每个场景实例的两个以上视图被渲染。图2示出了在平铺单元108内例如,在图元块组装模块130内生成的图元块200的结构。图元块200包括控制数据202、图元数据204和顶点数据206-210;然而,与已知的图元块不同,不是将不同视图例如,左视图和右视图的顶点数据存储在独立的图元块中,而是将两个视图的顶点数据存储在同一图元块中,并且顶点数据的一些部分仅在渲染两个视图之一时被使用即,左视图数据206仅在渲染左视图时被使用,而右视图数据208仅在渲染右视图时被使用,并且顶点数据的其他部分即,公共数据210在渲染两个视图中的一个视图或两个视图时被使用即,即使在只有一个视图被渲染的地方,本文描述的图元块200也可被使用。这减少了被写入存储器的数据的量。这两个视图可以在预处理模块106中例如,在几何图形着色阶段126内,或者在顶点处理阶段124内,或者在可以将顶点转换成不同视图的不同视点的不同屏幕空间坐标的视口转换模块128内被生成。图元数据204定义多个图元。参考多个顶点中的一个或更多个顶点来定义每个图元,并且在图元块200内的顶点数据206-210涉及多个顶点。例如,图元数据可以通过索引一组顶点例如,三角形图元的三个顶点来定义图元,该一组顶点的顶点数据206-210被存储在图元块中。因此,图元数据204可以包括定义相应图元的一个或更多个索引的相应集合,其中索引是对被存储在图元块200中的顶点数据206-210的引用。顶点206、208的左视图数据和右视图数据包括多个顶点中的每一个顶点的位置数据,从而使得图元块200包括关于每个顶点的两组位置数据——在左视图数据206中的一组位置数据和在右视图数据208中的另一组位置数据,例如,这两组位置数据由于不同视图的不同视点,对应于视图渲染空间中顶点的不同位置。虽然左视图数据206和右视图数据208在图2中被显示为在图元块200内独立的连续块,但是在其他示例中,左视图数据206和右视图数据208可以交错,例如使得图元块200包括顶点1的左视图数据,随后是同一顶点即顶点1的右视图数据,然后是下一顶点顶点2的左视图数据,随后是同一顶点即顶点2的右视图数据,等等。如果左视图和右视图同时被渲染,以这种方式交织不同视图的数据可以减少从存储器读取的数据的量例如,由渲染单元110从存储器104A读取,因为第二视图的数据保留在缓存中并且可以在无需被重新读取的情况下进行使用。顶点的位置数据针对左视图和右视图分别存储可以包括X、Y、Z和W参数,其中X和Y参数包括X和Y坐标以指示屏幕位置,Z参数指示顶点的深度,并且W参数是用于纹理化和阴影化的倒数同质的WRHW值。由值X,Y,Z,W给出的同质点定义了顶点关于特定视图的在投影空间中的位置。在各种示例中,顶点的左视图数据和右视图数据206、208可以包括每个顶点的附加参数即,除了上述位置数据之外的,例如,与屏幕空间反射有关的数据例如,因为左视图和右视图可以具有不同的反射向量、视图向量和或生成数据的应用程序正在使用的技术所需的任何数量的其他参数。顶点的公共数据210包括对于多个顶点中每个顶点的左视图和右视图都相同的那些参数,并且那些参数仅存储在图元块200中一次。公共数据可以,例如,包括属性数据,如可用在可编程着色器语言中例如,通过像素着色器以计算像素颜色的一个或更多个参数。例如,顶点属性数据可以在像素着色器中可以用作纹理坐标集U、V和S、T、颜色、法线等。U、V、S和T是用于将纹理映射到图元上的纹理坐标。针对X、Y、Z、RHW和纹理坐标U、V、S和T的顶点参数数据的值可以是IEEE浮点格式。IEEE浮点值有32位4字节,指数为8位,尾数为23位,符号为1位。在各种示例中,为每个视图分别提供的顶点参数数据可以包括关于每个顶点和关于每个视图的16字节数据,而被存储在公共数据部分210中并用于两个视图的顶点参数数据可以明显地更大,例如每个顶点64字节或更多例如,在一些示例中,总的顶点数据大小,包括驻留在每个视图和公共数据部分中的部分,可以多达512字节。通过使用如图2中所示并如上所描述的图元块结构,避免了大容量公共数据部分210的重复,并且由此与具有关于不同视图的独立图元块相比,存储器的使用和存储器的带宽被减少。在各种示例中,关于左视图和右视图分别存储在图元块的左视图数据部分206和右视图数据部分208中的顶点参数和关于两个视图在公共数据部分210中仅存储一次的顶点参数之间的划分,对于所有图元块可以是相同的,并且可以是预定的。然而,在其他示例中,图元块200中的控制数据202可以包括标识哪些参数被分别提供和或哪些参数关于两个视图仅被提供一次的数据。图3示出了两个流程图300A、300B,这两个流程图300A、300B示出了由图元块组装模块130实现的生成图元块200如图2中所示的两种不同示例方法。如上所述,这些方法由在GPU102内的平铺单元108进行实现。在第一流程图300A中,针对左视图和右视图分别存储的顶点参数顶点参数的第一子集和针对两个视图仅存储一次的顶点参数顶点参数的第二子集之间的划分是预定的,并且对于所有图元块是相同的。该方法包括接收关于左视图和右视图的图元数据块302并存储控制数据和图元数据块310。针对顶点参数的第一子集并且针对每个顶点,例如,分别针对每个视图将顶点参数值存储块312在图元块200的左视图数据部分206和右视图数据部分208中。相比而言,针对顶点参数的第二子集,例如,针对用于两个视图的每个顶点参数将单个值存储块314在图元块200的公共数据部分210中。顶点参数的第一子集和第二子集不重叠,并且关于每个顶点的存储在图元块200中的每个顶点参数属于第一子集或第二子集。相比而言,在第二流程图300B中,针对左视图和右视图分别存储的顶点参数和针对两个视图仅存储一次的顶点参数之间的划分对于所有图元块不一定相同,相反,作为该方法的一部分,要进行一次评估在块324中来确定是为针对每个顶点存储两个参数值一个用于左视图,且一个用于右视图,还是针对每个顶点存储单个参数用于两个视图。如图3中的第二流程图300B所示,接收针对左视图和右视图的图元数据块302,并且存储图元数据块320。然后选择顶点参数块322,并确定对于图元块中的每个顶点,针对左视图的顶点参数值和针对右视图的顶点参数值是否相同块324。对于不同的顶点,顶点参数值可能不同,且因此块324中的测试仅比较与同一顶点相关的顶点参数值。如果对于图元块中的每个顶点,顶点参数值的左值和右值相同块324中的“是”,则针对每个顶点将单个顶点参数值存储在图元块中块326,例如在图元块200的公共数据部分210中。然而,如果针对图元块中的所有顶点,顶点参数的左值和右值并不都匹配块324中的“否”,即,如果存在其中顶点参数的左值与顶点参数的右值不同的一个或更多个顶点,则对于每个顶点,在图元块中存储关于每个视图的独立的顶点参数值块328,例如,在图元块200的左视图数据部分206和右视图数据部分208中进行存储。对所有顶点参数重复该方法例如块330-332,并且当所有顶点参数都已被存储时块330中为“是”,存储控制数据,该控制数据标识哪些顶点参数已被存储在公共数据部分210以及哪些顶点参数已被存储在图元块的左视图数据部分206和右视图数据部分208中块334。虽然第二流程图300B示出了比较顶点参数值的比较步骤块324,但是在其他示例中,可以以其他方式进行比较。例如,该方法可替代地包括检查生成参数值的代码而不是检查参数本身,并确定在每个视图和公共数据部分之间的划分。虽然顶点参数的比较如图3中所示可以保证能够识别两个视图的所有相同参数,但是对生成顶点参数的代码的检查在不同代码路径实际上为两个视图产生相同结果的情况下,可能会遗漏相同的参数可以使实现方式不那么复杂,例如,这是因为它可以离线执行并且可以提供控制数据例如,由编译器提供,并且这避免了必须有实时比较参数的硬件。在上述示例中,对于为每个顶点存储两个值即,一个用于左视图,且一个用于右视图的那些顶点参数,这两个值被分别和独立地进行存储,即,左视图的值被存储在左视图数据部分206中,而右视图的值被存储在右视图数据部分208中,尽管如上所述,但是这些部分206、208可以不是独立的连续部分,并且在各种示例中,左值和右值并且由此左视图数据部分206和右视图数据部分208可以交错例如,如图5中所示并且如以下所述。然而,在其他示例中,关于两个视图的值可以不被独立地进行存储,而是其中一个值例如,关于右视图的值可以被存储为相对于另一个值的差例如,在右视图值和左视图值之间的差。这可以减小图元块的整体大小,例如,其中差值可以以比值本身更少的位数进行存储。例如,被存储的差值可以是字节通道整数差,以避免原本可能由于从另一个浮点数中减去一个浮点数而造成的精度损失。在其他示例中,针对第二值存储的值即,未被完全存储的值可以是可以与第一值即,完全存储的值结合使用以完全生成第二值的一些其他值。在各种示例中,一个值例如,左值和一个能够用来确定也使用第一值第二值的值例如,差值的存储可以与左视图和右视图数据的交错如上所述结合使用,因为这导致有效的存储器访问。例如,如果仅渲染第二视图例如,右视图,则需要被读取来确定第二视图的参数值例如,第一值和差值的两个值彼此靠近例如,逻辑上相邻进行存储。可以在GPU102的预处理单元106内生成在图3所示的两个示例性方法300A、300B中所使用的左视图和右视图的图元数据如在块302中所接收的。在各种示例中,关于不同视图的数据可以在几何图形着色器126或顶点处理模块124中生成,或在数据获取模块122之前的图元组装模块图1中未示出内生成。在一个示例中,图元组装模块可以在关于每个视图的图元上循环,并且每次用不同的一组变换通过管道重新发送它们。在另一示例中,几何图形着色器126或顶点处理模块124例如,使用修改的顶点着色处理代码可以接收关于图元的数据,读取顶点数据,并且然后将输入图元转换成两个输出图元,一个用于左视图空间,且一个用于右视图空间。这两个图元在几何图形着色器126顶点处理模块124的输出处交错。尽管上文参考图2和图3描述的方法可以被实现,而不管关于左视图和右视图的图元数据是在哪里生成的,但是如果关于对应的左图元和右图元的数据同时可用或者在时间上接近在一起,则该方法更有效和更准确地进行操作。如果左图元数据和右图元数据的交错导致对应的左图元和右图元彼此相邻,则就是这种情况。如果在几何图形着色器126或顶点处理单元124中执行左图元和右图元的生成,则满足该条件,从而提高生成图元块的效率。相反,如果由在数据获取模块122之前的图元组装模块执行左图元和右图元的生成,则可能不满足该条件,这可能导致生成图元块的复杂性的增加例如,因为该方法可能必须缓存图元数据一段时间,直到关于对应的左图元和右图元的数据可用。尽管上述示例涉及左视图和右视图用于立体渲染,但是当渲染两个以上的视图和或针对两个以上的视图生成顶点数据时不管实际渲染了多少视图,这些方法也是适用的。图4示出了关于N个视图的示例性图元块400,其中N1,但是其在其他方面与图2中所示和以上所描述的图元块200相同。如图4中所示,图元块400包括关于每个视图的独立的视图数据402、404,且尽管图元块400的这些部分被分别示出,但是在其他示例中,关于不同视图的视图数据可以交错,如图5中所示。在图5中,图元块500包括部分502,该部分502包括关于每个顶点的每个视图标记为1-N的交错的参数其中N1,例如关于顶点1的视图1的参数,随后是关于同一顶点的每个其他视图的参数即,直到并包括视图N,随后顺序地,是关于顶点2的每个视图的参数,顺序地是关于顶点3每个视图的顺序的参数,等等。该交错的数据仅包括关于顶点所有参数的适当子集,且其余顶点参数值仅每个顶点存储一次在公共数据部分210中,并被用于所有视图。在其他示例中,如果图元块格式不支持全部数量的视图,则可以对视图进行分组,改为图2和图4中所示的每视图数据则用对应于不同的、不重叠的视图子集的数据例如,在一个每视图数据块206中的关于视图1和视图2的数据和在另一个每视图数据块208中的关于视图3和视图4的数据,以及在公共数据块210中的关于所有四个视图的公共数据来代替。图4和图5中所示的图元块400、500可以使用如以上所描述的和图3中所示的方法生成。使用本文描述的方法和本文描述的图元块格式,通过平铺单元写入存储器的数据的总量减少,并且因此这降低了用于存储器写入的存储器带宽。也可以降低了在光栅化侧的读取带宽,这是因为当以交错的方式渲染不同视图时,公共数据可以驻留在缓存中。可被用于立体渲染或任何其他多视图渲染的本文描述的新的图元块格式也通过减少存储关于所有图元以及所有视图的所有图元块所需的总存储器空间而提高了数据存储的效率。图6示出了其中可以实现本文中所描述的图形处理系统的计算机系统。计算机系统包括GPU102如图1中所示并且如以上所描述的、CPU602、存储器606和诸如显示器616、扬声器66和相机619的其他设备614。计算机系统的部件可以经由通信总线620彼此通信。图1的GPU102,且特别是在平铺单元108内的处理逻辑112,被示为包括多个功能块。这仅仅是示意性的,且并不旨在限定在这些实体的不同逻辑元件之间的严格区分。可以以任何合适的方式提供每个功能块。应当理解的是,在本文描述为由GPU形成的中间值不需要在任何点处由GPU物理地生成,并且可以仅表示方便地描述由GPU在其输入端和输出端之间执行的处理的逻辑值。可以在集成电路上的硬件中体现本文描述的图形处理系统。本文描述的图形处理系统可以被配置为执行本文所述的方法中的任一个。通常,以上所描述的功能、方法、技术或部件中的任一个都能够以软件、固件、硬件例如,固定逻辑电路、或它们的任何组合来实现。本文可以使用术语“模块”、“功能”、“部件”、“元件”、“单元”、“块”和“逻辑”,以一般性地表示软件、固件、硬件、或它们的任何组合。在软件实现方式的情况下,模块、功能、部件、元件、单元、块或逻辑表示当在处理器上被执行时执行特定任务的程序代码。本文中所描述的算法和方法可由执行使得处理器执行算法方法的代码的一个或更多个处理器执行。计算机可读存储介质的示例包括随机存取存储器RAM、只读存储器ROM、光盘、闪存、硬盘存储器、以及可使用磁性、光学、和其他技术来储存可由机器访问的指令或其他数据的其他存储器设备。如本文中所使用的术语计算机程序代码和计算机可读指令是指用于处理器的任何类型的可执行代码,包括以机器语言、解释语言或脚本语言表达的代码。可执行代码包括二进制代码、机器代码、字节码、定义集成电路的代码诸如,硬件描述语言或网表、以及以诸如C、Java或OpenCL的编程语言代码表达的代码。可执行代码可以是例如任何类型的软件、固件、脚本、模块或库,当其在虚拟机或其他软件环境下被适当地执行、处理、解释、编译、执行时,使支持可执行代码的计算机系统的处理器执行由代码指定的任务。处理器、计算机、或计算机系统可以是具有处理能力使得其可以执行指令的任何类型的设备、机器或专用电路、或它们的集合或它们的部分。处理器可以是任何类型的通用处理器或专用处理器,诸如CPU、GPU、片上系统、状态机、媒体处理器、专用集成电路ASIC、可编程逻辑阵列、现场可编程门阵列FPGA、物理处理单元PPU、无线电处理单元RPU、数字信号处理器DSP、通用处理器例如通用GPU、微处理器、被设计为在CPU外部加速任务的任何处理单元等。计算机或计算机系统可包括一个或更多个处理器。本领域中的技术人员将认识到,这样的处理能力被结合到很多不同的设备内,且因此术语“计算机”包括机顶盒、媒体播放器、数字无线电装置、PC、服务器、移动电话、个人数字助理和很多其它设备。还旨在包含对如本文中所描述的硬件的配置进行限定的软件,诸如HDL硬件描述语言软件,如用于设计集成电路、或用于配置可编程芯片以执行期望功能。也就是说,可提供计算机可读存储介质,其具有在其上编码的以集成电路定义数据集的形式的计算机可读程序代码,其当在集成电路制造系统中被处理例如,运行时,配置系统以制造配置成执行本文所述的任何方法的图形处理系统,或制造包括本文所述的任何装置的图形处理系统。集成电路定义数据集可以例如是集成电路描述。因此,可以提供在集成电路制造系统处制造如本文所述的图形处理系统的方法。此外,可以提供一种集成电路定义数据集,其在集成电路制造系统中被处理时使制造图形处理系统的方法被执行。集成电路定义数据集可以是计算机代码的形式,例如,作为用于配置可编程芯片的网表、代码,作为限定任何等级的集成电路的硬件描述语言,包括作为寄存器传送级RTL代码,作为诸如Verilog或VHDL的高等级电路表示,以及作为诸如OASISRTM和GDSII的低等级电路表示。在逻辑上限定集成电路的较高等级的表示诸如RTL可在计算机系统处被处理,该计算机系统被配置成在软件环境的背景下生成集成电路的制造定义,包括电路元件和用于组合这些元件的规则的定义,以便生成由该表示如此定义的集成电路的制造定义。如软件在计算机系统处执行以便限定机器的通常情况,可以需要一个或更多个中间用户步骤例如,提供命令、变量等,以便被配置为生成集成电路的制造定义的计算机系统执行对集成电路进行定义的代码,从而生成该集成电路的制造定义。现在将参考图7描述在集成电路制造系统处处理集成电路定义数据集以便配置系统以制造图形处理系统的示例。图7示出被配置为制造如本文的任何示例中所描述的图形处理系统的集成电路IC制造系统702的示例。具体地,IC制造系统702包括布局处理系统704和集成电路生成系统706。IC制造系统702配置成接收IC定义数据集例如定义如在本文的任何示例中所述的图形处理系统,处理IC定义数据集,并根据IC定义数据集例如其体现如在本文的任何示例中所述的图形处理系统生成IC。IC定义数据集的处理配置IC制造系统702以制造体现如在本文的任何示例中所述的图形处理系统的集成电路。布局处理系统704被配置为接收IC定义数据集并对其进行处理以确定电路布局。根据IC定义数据集确定电路布局的方法在本领域中是已知的,且例如可涉及合成RTL代码以确定例如在逻辑部件例如,NAND、NOR、AND、OR、MUX和FLIP-FLOP部件方面待生成的电路的门级表示。可通过确定逻辑部件的位置信息,根据电路的门级表示来确定电路布局。这可自动地或借助用户干预来完成,以便优化电路布局。当布局处理系统704确定电路布局时,其可将电路布局定义输出到IC生成系统706。例如,电路布局定义可以是电路布局描述。IC生成系统706根据电路布局定义生成IC,如在本领域中已知的。例如,IC生成系统706可实现半导体器件制造过程以生成IC,这可以涉及光刻和化学处理步骤的多步骤序列,在该多步骤序列期间,电子电路通常在由半导体材料制成的晶圆上被创建。电路布局定义可以是可以在光刻过程中用于根据电路定义生成IC的掩模的形式。可选地,被提供到IC生成系统706的电路布局定义可以是计算机可读代码的形式,IC生成系统706可使用该计算机可读代码来形成适当的掩模以在生成IC时使用。由IC制造系统702执行的不同过程可以都在一个位置上例如由一方实现。可选地,IC制造系统702可以是分布式系统,使得过程中的一些可在不同的位置处被执行,并可由不同方执行。例如,步骤的一些是:i合成表示IC定义数据集的RTL代码,以便形成要生成的电路的门级表示;ii生成基于门级表示的电路布局;iii根据电路布局,形成掩膜;以及iv使用掩膜制造集成电路,可在不同位置和或由不同方实施。在其它示例中,在集成电路制造系统处对集成电路定义数据集的处理可配置系统以制造图形处理系统而无需处理IC定义数据集,以便确定电路布局。例如,集成电路定义数据集可以定义可重构处理器例如FPGA的配置,且数据集的处理可将IC制造系统配置为生成具有该定义的配置的可重构处理器如,通过将配置数据加载到FPGA。在一些实施例中,集成电路制造定义数据集在集成电路制造系统中被处理时,可使集成电路制造系统生成如本文中所描述的设备。例如,集成电路制造系统以如上参照图7所描述的方式通过集成电路制造定义数据集进行的配置可使如本文中所描述的设备得以被制造。在一些示例中,集成电路定义数据集可包括软件,该软件在数据集中定义的硬件上运行或与在数据集处定义的硬件组合运行。在图7中所示的示例中,IC生成系统还可由集成电路定义数据集配置,以在制造集成电路时,根据在集成电路定义数据集中定义的程序代码将固件加载到该集成电路上,或以其他方式向集成电路提供程序代码以用于与集成电路一起使用。本领域中的技术人员将认识到,用于存储程序指令的存储设备可被分布在网络中。例如,远程计算机可存储被描述为软件的过程的示例。本地或终端计算机可访问远程计算机并下载软件的一部分或全部以运行程序。可选地,本地计算机可按需下载软件的片段,或在本地终端处执行一些软件指令而在远程计算机或计算机网络处执行一些软件指令。本领域中的技术人员也将认识到,通过利用本领域中的技术人员已知的常规技术,软件指令的全部或一部分可由专用电路例如DSP、可编程逻辑阵列等实现。本文所述的方法可以由配置有软件的计算机执行,软件是以存储在有形存储介质上的机器可读形式,例如以包括用于配置计算机来执行所述方法的组成部分的计算机可读程序代码的计算机程序的形式,或以包括适合于当程序在计算机上运行时执行本文所述的任何方法的所有步骤的计算机程序代码方式的计算机程序的形式,且其中计算机程序可以体现在计算机可读存储介质上。有形或非暂时性存储介质的示例包括磁盘、拇指驱动器、存储卡等,且并不包括传播的信号。软件可适合于在并行处理器或串行处理器上执行,使得方法步骤可以按任何适当的顺序或同时被执行。本文所述的硬件部件可由在其上编码有计算机可读程序代码的非暂时性计算机可读存储介质生成。存储在实现所公开的方面时使用的机器可执行数据的存储器可以是非暂时性介质。非暂时性介质可以是易失性的或非易失性的。易失性非暂时性介质的示例包括基于半导体的存储器,例如SRAM或DRAM。可用于实现非易失性存储器的技术的示例包括光学和磁性存储器技术、闪存、相变存储器、电阻式RAM。对“逻辑”的特定引用指的是执行一种功能或多种功能的结构。逻辑的示例包括被布置成执行这些功能的电路。例如,这样的电路可包括晶体管和或在制造过程中可用的其它硬件元件。作为示例,这样的晶体管和或其它元件可用于形成实现和或包含存储器例如寄存器、触发器、或锁存器、逻辑运算器例如布尔运算、数学运算器例如加法器、乘法器、或移位器和互连的电路或结构。这样的元件可作为定制电路或标准单元库、宏、或以其它抽象级被提供。可在特定的布置中将这样的元件互连。逻辑可包括固定功能的电路,且电路可被编程以执行一种功能或多种功能;这样的编程可由固件或软件更新或控制机构提供。被识别为执行一种功能的逻辑也可包括实现组成性功能或子过程的逻辑。在示例中,硬件逻辑具有实现固定函数运算、或多个运算、状态机或过程的电路。如对技术人员将明显的是,本文给出的任何范围或设备值可以被扩展或改变而不失去所寻求的效果。将理解的是,上面描述的益处和优点可涉及一个实施例或可涉及若干实施例。实施例不限于解决任何或所有的所陈述的问题的那些实施例或具有任何或全部所陈述的益处和优点的那些实施例。对“一个aan”项目的任何引用指的是那些项目中的一个或更多个项目。术语“包括”在本文中用于意指包括所识别的方法块或元件,但这样的块或元件并不包括独有列表,且装置可包含额外的块或元件,并且方法可包含额外的操作或元件。此外,块、元件和操作本身并不是隐含地封闭的。本文描述的方法的步骤可以按照任何适当的顺序被执行或在适当时同时被执行。在附图中的框之间的箭头示出方法步骤的一个示例顺序,但并不意欲排除其它顺序或多个步骤的并行执行。此外,各个块可从任何方法中删除而不偏离本文描述的主题的精神和范围。上面描述的任何示例的方面可以与所描述的其它示例中的任一个的方面组合以形成另外的示例,而不失去所寻求的效果。在附图的元件被示为由箭头连接的情况下,将认识到,这些箭头示出仅是在元件之间的通信包括数据和控制消息的一个示例流。在元件之间的流可以在任一方向上或在两个方向上。申请人特此独立地公开了本文中所描述的每个单独特征以及两个或更多个这样的特征的任何组合,公开的程度是使得这样的特征或组合能够基于本说明书依据本领域技术人员的公知常识作为整体来实现,而无论这样的特征或特征的组合是否解决了本文中所公开的任何问题。鉴于上述描述,对于本领域技术人员明显的是,可在本发明的范围内进行各种修改。
权利要求:1.一种图元块组装模块,用于在图形处理系统中将图元数据组装成图元块,所述图元块组装模块被配置为:接收场景的一个或更多个图元的图元数据以用于渲染所述场景的多个视图,其中,所述图元数据包括多个参数;以及将所述一个或更多个图元的图元数据存储在图元块中,其中:对于所述参数的第一子集的每个参数,相应参数值被存储用于所述多个视图;以及对于所述参数的第二子集的每个参数,公共参数值被存储以供所述多个视图共享。2.根据权利要求1所述的图元块组装模块,其中,所述图元块组装模块包括:输入端,所述输入端被配置为接收所述图元数据,并且其中,所述多个视图至少包括第一视图和第二视图;处理逻辑,所述处理逻辑被布置为生成所述图元块,所述图元块包括:多个顶点的顶点数据;以及多个图元的图元数据,其中,图元的所述图元数据包括对所述多个顶点中的一个或更多个顶点的引用;其中,对于所述多个顶点中每个顶点,所述顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;以及对于第二多个顶点参数中的每个顶点参数,关于所述第一视图和所述第二视图两者的单个顶点参数值。3.根据权利要求2所述的图元块组装模块,其中,被布置为生成图元块的所述处理逻辑包括被配置为执行以下操作的逻辑:在图元块中存储所述多个图元的图元数据,以及,对于所述多个顶点中的每个顶点:对于所述第一多个顶点参数中的每个顶点参数,将关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值存储在所述图元块中;以及,对于所述第二多个顶点参数中的每个顶点参数,将关于所述第一视图和第二视图两者的所述单个顶点参数值存储在所述图元块中。4.根据权利要求2所述的图元块组装模块,其中,被布置为生成图元块的所述处理逻辑包括被配置为通过以下方式确定哪些顶点参数在所述第一多个顶点参数中以及哪些顶点参数在所述第二多个顶点参数中的逻辑:对于每个顶点和每个顶点参数,比较关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;对于顶点参数,响应于确定至少一个顶点的关于所述第一视图的顶点参数值与同一顶点的关于所述第二视图的顶点参数不匹配,将所述顶点参数分配给所述第一多个顶点参数;以及对于顶点参数并且对于每个顶点,响应于确定关于第一视图的顶点参数值和关于所述第二视图的顶点参数匹配,将所述顶点参数分配给所述第二多个顶点参数。5.根据权利要求2所述的图元块组装模块,其中,被布置为生成图元块的所述处理逻辑包括被配置为通过以下方式确定哪些顶点参数在所述第一多个顶点参数中以及哪些顶点参数在所述第二多个顶点参数中的逻辑:对于每个顶点参数,检查被配置为生成关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值的代码;对于顶点参数,响应于确定所述代码能够生成至少一个顶点的关于所述第一视图的与同一顶点的关于所述第二视图的所述顶点参数不匹配的顶点参数值,将所述顶点参数分配给所述第一多个顶点参数;以及对于顶点参数,响应于确定所述代码不能够生成任何顶点的关于所述第一视图的与同一顶点关于所述第二视图的顶点参数不匹配的顶点参数值,将所述顶点参数分配给所述第二多个顶点参数。6.根据权利要求4所述的图元块组装模块,其中,被布置为生成图元块的所述处理逻辑还包括被布置为存储控制数据的逻辑,所述控制数据标识哪些顶点参数在所述第一多个顶点参数中和或哪些顶点参数在所述第二多个顶点参数中。7.根据权利要求1所述的图元块组装模块,其中,所述图元块包括用于立体渲染的数据,所述多个视图包括第一视图和第二视图,并且所述第一视图是左视图,且所述第二视图是右视图。8.根据权利要求1所述的图元块组装模块,其中,所述图元块包括:第一部分,所述第一部分仅包括关于所述第一视图的所述第一多个顶点参数的顶点参数值;第二部分,所述第二部分仅包括关于所述第二视图的所述第一多个顶点参数的顶点参数值;以及第三部分,所述第三部分仅包括所述第二多个顶点参数的顶点参数值。9.一种在图形处理系统中将图元数据组装成图元块的方法,所述方法包括:接收场景的一个或更多个图元的图元数据,以用于渲染所述场景的多个视图,其中,所述图元数据包括多个参数;以及将所述一个或更多个图元的图元数据存储在图元块中,其中:对于所述参数的第一子集的每个参数,相应参数值被存储用于所述多个视图;以及对于所述参数的第二子集的每个参数,公共参数值被存储以供所述多个视图共享。10.根据权利要求9所述的方法,其中,所述多个视图至少包括第一视图和第二视图,并且其中,将所述一个或更多个图元的图元数据存储在图元块中包括:在图元块组装模块中生成图元块,所述图元块包括:多个顶点的顶点数据;以及多个图元的图元数据,其中,图元的所述图元数据包括对所述多个顶点中的一个或更多个顶点的引用;其中,对于所述多个顶点中每个顶点,所述顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;以及对于第二多个顶点参数中的每个顶点参数,关于所述第一视图和所述第二视图两者的单个顶点参数值。11.根据权利要求10所述的方法,其中,生成图元块包括:在图元块中存储所述多个图元的图元数据;以及对于所述多个顶点中的每个顶点,在所述图元块中存储:对于所述第一多个顶点参数中的每个顶点参数,关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;以及对于所述第二多个顶点参数中的每个顶点参数,关于所述第一视图和所述第二视图两者的单个顶点参数值。12.根据权利要求10所述的方法,还包括:对于每个顶点和每个顶点参数,比较关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;对于顶点参数,响应于确定至少一个顶点的关于所述第一视图的顶点参数值与同一顶点的关于所述第二视图的顶点参数不匹配,将所述顶点参数分配给所述第一多个顶点参数;以及对于顶点参数并且对于每个顶点,响应于确定关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数匹配,将所述顶点参数分配给所述第二多个顶点参数。13.根据权利要求10所述的方法,还包括:对于每个顶点参数,检查被配置为生成关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值的代码;对于顶点参数,响应于确定所述代码能够生成至少一个顶点的关于所述第一视图的与同一顶点的关于所述第二视图的顶点参数不匹配的顶点参数值,将所述顶点参数分配给所述第一多个顶点参数;以及对于顶点参数,响应于确定所述代码不能够生成关于任何一个顶点的关于所述第一视图的与同一顶点的关于所述第二视图的顶点参数不匹配的顶点参数值,将所述顶点参数分配给所述第二多个顶点参数。14.根据权利要求12所述的方法,还包括:将控制数据存储在所述图元块中,所述控制数据标识哪些顶点参数在所述第一多个顶点参数中和或哪些顶点参数在所述第二多个顶点参数中。15.一种存储在存储器元件中的数据结构,用于存储场景的多个视图的图元数据,其中,所述图元数据包括多个参数,所述数据结构包括:对于所述参数的第一子集的每个参数,关于所述多个视图的相应参数值;以及对于所述参数的第二子集的每个参数,用于供所述多个视图共享的公共参数值。16.根据权利要求15所述的数据结构,其中,所述多个视图至少包括第一视图和第二视图,所述数据结构还包括:多个顶点的顶点数据;以及多个图元的图元数据,其中,图元的所述图元数据包括对所述多个顶点中的一个或更多个顶点的引用;其中,对于所述多个顶点中每个顶点,所述顶点数据包括:对于第一多个顶点参数中的每个顶点参数,关于所述第一视图的顶点参数值和关于所述第二视图的顶点参数值;以及对于第二多个顶点参数中的每个顶点参数,关于所述第一视图和所述第二视图两者的单个顶点参数值。17.根据权利要求16所述的数据结构,包括用于立体渲染的数据,并且其中,所述第一视图是左视图,且所述第二视图是右视图。18.根据权利要求16所述的数据结构,其中,所述第一多个顶点参数包括定义顶点的位置的参数。19.根据权利要求16所述的数据结构,其中,所述第二多个顶点参数包括属性数据。20.一种集成电路定义数据集,所述集成电路定义数据集当在集成电路制造系统中被处理时,将所述集成电路制造系统配置为制造包括根据权利要求1-8中任一项所述的图元块组装模块的图形处理系统。
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。