CN105139330A - 向图元块分配图元 - Google Patents
向图元块分配图元 Download PDFInfo
- Publication number
- CN105139330A CN105139330A CN201510284863.0A CN201510284863A CN105139330A CN 105139330 A CN105139330 A CN 105139330A CN 201510284863 A CN201510284863 A CN 201510284863A CN 105139330 A CN105139330 A CN 105139330A
- Authority
- CN
- China
- Prior art keywords
- pel
- block
- pel block
- data repository
- received
- 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
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/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/06—Curved planar reformation of 3D line structures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明涉及向图元块分配图元。应用向图形处理系统发送图元,使得可以渲染3D场景的图像。图元被放入图元块中用于存储以及从参数存储器中取回。取代于将第一图元简单地放入图元块中直到图元块是满的以及然后将更多图元放入下一图元块中,多个图元块可以是“开放的”使得图元块分配模块可以向开放的图元块中的一个开放的图元块分配图元,从而根据图元的空间位置将图元分类到图元块中。通过根据图元的空间位置将图元分组到图元块中,可以提高光栅化模块的性能。例如,在基于区片的渲染系统中,这意味着更少的图元块需要被隐藏面消除模块取出以便于处理区片。
Description
技术领域
本公开涉及图形处理,更具体地,涉及向图元块分配图元。
背景技术
图形处理系统被用来处理图形数据。例如,在计算系统上运行的应用可能需要渲染三维(3D)场景的图像用于向用户显示。该应用可以向图形处理系统发送图形数据,通常以图元(Primitive)的序列的形式,该图形处理系统可以根据图元来渲染场景的图像。
图1示出了可以用来渲染3D场景的图像的图形处理系统100的一些元件。图形处理系统100包括图形处理单元(GPU)102和存储器的两个部分1041和1042。注意,存储器的两个部分1041和1042可以是或者可以不是相同物理存储器的部分,并且通常这两个存储器1041和1042位于“芯片外”,即与GPU102不在相同芯片上。如本领域所公知的,存储器(1041和1042)与GPU102之间的通信可以通过系统100中的常规通信总线发生。
在图1中所示的示例中,图形处理系统100是基于区片(tile)的延迟渲染系统,意味着系统100的渲染空间被划分为多个区片,并且在对图元片段执行纹理化和/或着色之前对图元片段执行隐藏面消除以便于渲染场景。然而,在其他示例中,图形处理系统可以不是基于区片的和/或延迟渲染系统。GPU102包括几何处理模块106、分片(tiling)模块108以及光栅化模块110,其中光栅化模块110包括隐藏面消除(HSR)模块112和纹理化/着色模块114。图形处理系统100被配置使得由应用提供的图元序列在几何处理模块106处被接收。几何处理模块106执行诸如裁剪和挑选的功能以移除没有落入可见视野的图元。几何处理模块106还可以将图元投射在屏幕空间中。几何处理模块106将接收到的图元放入图元块中。每个图元块具有头部,该头部包括描述图元块中的图元将如何被渲染的状态信息(诸如深度比较模式、混合状态、纹理状态、图元类型等)。存在将图元序列分离为图元块的许多原因。例如,以这种方式将图元序列分离为图元块是有用的,使得图元可以以小的、可管理的块被存储以及从存储器中取出。此外,在每个图元块中可以存在有限数量的顶点(例如,在每个图元块中多达64个顶点),因此图元块中的顶点的索引可以用固定数量的比特来表示,例如,当图元块存储多达64个顶点时,仅需要6个比特用于目录。因此,将图元序列分离为图元块将降低顶点索引数据存储在计算机图形处理硬件中的成本。此外,通常存在共享相同状态的许多图元,因此在相同的图元块中包括这些图元意味着它们能够共享图元块的头部中的相同状态信息,这可以降低图元所需的状态信息的总量。此外,将图元序列分离为图元块考虑到将图元快存储在存储器中之前压缩它们的更多机会。例如,如果图元块中的所有图元的第一字节是相同的,则可以通过仅存储一次第一字节的数据以及该字节将被用于图元块中的每个图元的指示来压缩图元。这仅仅是压缩图元块中的图元数据可以被压缩的许多方式中的一个示例。
如本领域技术人员将知道的,输入图元的序列顺序可能影响渲染场景的方式。例如,如果多个重叠的图元是透明的,则它们被处理的顺序通常将影响图元被渲染以形成经渲染的场景的方式。因此,为了保持输入图元的序列顺序,几何处理模块106将它们放入图元块中而不改变它们的序列顺序。图元初始被放入第一图元块中,并且当第一图元块是满的时,则它可以从几何处理模块106被输出,并且又一个输入图元可以被放入新的图元块中。以这种方式,在从几何处理模块106输出的图元块中保持了图元的序列顺序。如果图元块中的顶点的数量大于或等于顶点阈值(例如,给出两个示例,图元块中的顶点的最大数量可以为64或256)和/或如果图元块中的图元数量大于或等于图元阈值(例如,给出两个示例,图元块中图元的最大数量可以为128或512),则图元块可以被认为是“满的”。
从几何处理模块106输出的图元块被传送给分片模块108,分片模块108确定哪些图元存在于图形处理系统100的渲染空间的区片中的每个区片中。分片模块108确定每区片显示列表,该每区片显示列表指示哪些图元存在于渲染空间的区片中的每个区片中。显示列表和图元块从分片模块108被输出并且被存储在存储器1041中。光栅化块110从存储器1041中取出用于区片的显示列表和与区片相关的图元块,并且HSR模块112执行隐藏面消除,从而移除在场景中隐藏的图元的片段。剩余的片段被传送给纹理化/着色模块114,纹理化/着色模块114对片段执行纹理化和/或着色以确定可以传送给存储器1042用于存储在帧缓冲器中的经渲染的图像的像素值。光栅化块110处理区片中的每个区片,并且当整个图像已经被渲染并且被存储在存储器1042中时,图像可以从图形处理系统100被输出,并且例如,被显示在显示器上。
发明内容
提供了本发明内容来以在下面的具体实施方式中进一步描述的简化的形式引入概念的选集。本发明内容不旨在于标识所要求保护的主题的关键特征或主要特征,也不旨在于限制所要求保护的主题的范围。
提供了一种在图元块分配模块处向图元块分配图元的方法,该图元块分配模块包括数据存储库,该数据存储库用于存储可以向其分配图元的图元块的集合,该方法包括:接收图元的序列;以及针对接收到的图元中的每个图元,如果至少一个图元块被存储在数据存储库中,则:(i)比较接收到的图元的空间位置的指示和存储在数据存储库中的至少一个图元块的空间位置的指示,以及(ii)基于比较的结果来向图元块分配接收到的图元,使得接收到的图元根据其空间位置被分配给图元块。
还提供了一种图元块分配模块,该图元块分配模块用于向图元块分配图元,该图元块分配模块包括:数据存储库,该数据存储库被配置为存储可向其分配图元的图元块的集合;以及分配逻辑,该分配逻辑被配置为:(a)接收图元的序列,以及(b)针对接收到的图元中的每个图元,如果至少一个图元块被存储在数据存储库中,则:(i)比较接收到的图元的空间位置的指示和存储在数据存储库中的至少一个图元块的空间位置的指示,以及(ii)基于比较的结果来向图元块分配接收到的图元,从而将接收到的图元根据其空间位置分配给图元块。
还提供了计算机可读代码,该计算机可读代码适合于当在计算机上运行时执行本文所描述的任何方法的步骤。还提供了计算机可读代码,该计算机可读代码用于生成根据本文所描述的任何示例的包括图元块分类模块的图形处理单元。该计算机可读代码可以被编码在计算机可读存储介质上。
如对于本领域技术人员将是明显的,以上特征可以根据需要而被组合,并且可以与本文所描述的实施例的方面中的任何方面进行组合。
附图说明
现在将参照附图详细描述示例,在附图中:
图1是现有技术的图形处理系统的示意图;
图2是包括图元块分配模块的图形处理系统的示意图;
图3是图示在图元块分配模块处向图元块分配图元的方法的流程图;
图4是将被渲染的场景的表示;
图5是图元块的表示;以及
图6是计算机系统的示意图。
附图图示了各种示例。本领域技术人员将会理解,图中所示的元件边界(例如,框、框的组合或其他形状)表示边界的一个示例。在一些示例中,一个元件可以被设计为多个元件,或者多个元件可以被设计为一个元件。根据需要,贯穿附图使用共同的参考标号来表示类似的特征。
具体实施方式
在上面参照图1描述的系统中,图元以图形处理系统100接收到它们的顺序被放入图元块中,使得图元的序列顺序被保持。图元可以被广泛地分布在图形处理系统100的渲染空间上,但是这种分布不影响图元被放入图元块中的顺序。具体地,通常可以存在具有非重叠边界框的图元被包括在相同图元块中的情况。发明人已经意识到,根据图元的空间位置来将它们分类到图元块中可以是有利的,并且这有可能用于非重叠图元而不会由于图元的序列顺序上的改变而引起问题。即,保持相互重叠的图元的相对顺序是重要的,但是保持相互不重叠的图元的相对序列顺序不是那么重要,并且非重叠图元的相对排序的这种灵活性允许图元根据它们的空间位置而被分类到图元块中。如以下更详细描述的,通过根据图元的空间位置来将图元分组到图元块中,可以提高HSR模块和/或纹理化/着色模块的性能。例如,可以提高HSR模块的高速缓存一致性。作为另一示例,在基于区片的渲染系统中,HSR模块可以需要取出较少的图元块,从而减少了需要被HSR模块取出的图元数据的量。
现在将仅通过示例的方式来描述实施例。
图2示出了可以用来渲染3D场景的图像的图形处理系统200的一些元件。图形处理系统200包括GPU202和存储器的两个部分2041和2042。注意,存储器的两个部分2041和2042可以是或者可以不是相同物理存储器的部分,并且这两个存储器2041和2042都可以位于“芯片外”,即,与GPU202不在相同的芯片上。存储器(2041和2042)和GPU202之间的通信可以通过系统200中的通信总线发生。图形处理系统200是基于区片的延迟渲染系统,意味着系统200的渲染空间被划分为多个区片,并且在对图元片段执行纹理化和/或着色之前对图元片段执行隐藏面消除以便于渲染场景。然而,在其他示例中,图形处理系统可以不是基于区片的和/或延迟渲染系统。GPU202包括几何处理模块206、分片模块208以及光栅化模块210,其中光栅化模块210包括隐藏面消除(HSR)模块212和纹理化/着色模块214。GPU202还包括图元块分配模块216,图元块分配模块216被配置为根据图元的空间位置来向图元块分配图元。图元块分配模块216包括分配逻辑218和数据存储库220。数据存储库220被配置为存储可以向其分配图元的图元块的集合222。在图2中所示的示例中,数据存储库220可以存储多达三个图元块2221至2223。在其他示例中,数据存储库220可以具有用于存储多达其他数量的图元块的空间,例如多达两个或四个或者更多的图元块。本领域技术人员将会理解,图2所示的图形处理系统200可以是较大计算机系统(例如,智能手机、平板、膝上型计算机、PC、TV、机顶盒等)的一部分,如下面参照图6所描述的,图形处理系统200可以包括其他元件,诸如中央处理单元(CPU)、其他存储器以及例如通过通信总线能够相互通信的其他设备(诸如显示器、扬声器、麦克风、键盘等)。
参照图3中所示的流程图描述了图形处理系统200的操作的示例。在GPU202的几何处理模块206处接收图元。可以从在与GPU相同的计算机系统中运行的应用接收图元。图元在GPU202处被接收为序列并且接收到的图元在序列中的顺序可以影响图元将被渲染的方式,例如针对透明图元。
图4示出了将在图形处理系统200中渲染的场景400的简单示例。场景400包括两个类似的对象4021和4022,它们在场景400中彼此被空间地分离。图形处理系统200是基于区片的渲染系统,其具有被划分为多个区片的渲染空间。在图4中所示的简单示例中,渲染空间被划分为矩形区片的4×6的阵列。在其他示例中,渲染空间可以被划分为不同数量和/或布置的区片。在一个示例中,每个区片包括32×32个采样位置,并且根据正在被渲染的图形的大小和分辨率,在渲染空间中可以存在许多区片(例如,几百个区片)。在其他示例中,区片可以是非矩形的(例如,三角形的或六边形的),或者可以根据它们在渲染空间中的位置而大小不同。图4示出了对象4021的两个图元4041和4042,并且还示出了对象4022的两个类似图元4043和4044。在图4所示示例中,图元是三角形的,并且各自可以由在三个顶点处的顶点数据来限定,但是在其他示例中,可以使用其他类型的图元,其中图元可以是诸如四边形或六边形的其他形状、或者可以是线或点。应用可以向图形处理系统200以确定为适合的顺序将图元发送给图形处理系统200,使得图元4041、4042、4043和4044可以一个接一个地,即在序列中连续地被发送。作为一个示例,如果图元具有相似的状态,则图元可以是“相似的”并且因此被组合在一起。因此,可以理解,在GPU202处接收的图元序列可能不具有在渲染空间中空间地组合到一起的图元。
此外,几何处理模块206执行诸如剪裁和挑选的功能以移除没有落入可见视野的图元。几何处理模块206还可以将图元投射到屏幕空间中。图元从几何处理模块206被传送至图元块分配模块216,使得在步骤S302中,分配逻辑218接收图元序列。由几何处理模块206执行的操作可以增加图元的发生,它们在由图元块分配模块216接收到的图元序列中相互靠近,在渲染空间400中被显著地空间地分离。如果图元以如在图形处理系统100中的严格的序列顺序被放入图元块中,则可能四个图元4041至4044将全部被放入相同的图元块中。对象4021的其他图元可以放入不同的图元块。因此,当第二列的第二行中的区片由HSR模块112处理时,将需要从存储器1041中取出两个图元块。相反,通过基于图元的空间位置将它们组合在一起(如由图元块分配模块216完成的),当第二列的第二行中的区片由HSR模块112处理时,可能是需要从存储器2041中取出较少的图元块(例如,仅一个图元块)的情况。这减少了需要从存储器2041中取出的数据量。注意,尽管HSR模块212仅需要从区片中可见的图元块中取出图元,但是需要图元块中的所有头部数据,即使存在区片中可见的仅一个图元。因此,对于区片中的相同数量的可见图元,被处理的图元块的数量上的减少意味着更少的头部数据被取出并且在HSR模块212中可以实现更高的性能。将数据写入存储器2041或2042或者从存储器2041或2042中读取数据是在由系统200进行的图元的处理中是相对慢的过程,尤其当存储器在“芯片外”时,即与GPU202不在相同芯片上。即,GPU202与存储器2041和2042之间的数据传输(例如,通过通信总线)通常较慢。在测试中,与不空间上将图元分类到图元块中的等效系统(例如,系统100)相比,系统200将GPU202和存储器2041之间传送的图元数据的量降低大约10%(等效于降低总数据量的大约4%)。降低的精确数据取决于被渲染的情景的属性。诸如这种在GPU202和存储器2041之间传送的数据量上的降低可以显著提高图形处理系统200的速度和效率。
在图元块分配模块216处接收到的图元由分配逻辑218来处理,例如,一次一个,从而向图元块分配图元。初始地,在数据存储库202中可能不存在任何开放的图元块,并且当接收到第一图元时,新的图元块2221被创建并且被存储在数据存储库220中,并且该图元被分配给新的图元块2221。在接收到一些其他图元之后,数据存储库220可以具有可以向其分配图元的多个开放的图元块(例如,在图2中所示的示例中多达三个图元块2221至2223)。如果图元快不是完全满的,则它是“开放的”,即,使得可以向它分配进一步的图元。当图元块被填满时(例如,使得不能向其分配进一步的图元),则它被冲刷(flushed),即从数据存储库220被输出并且被提供给分片模块208。对于每个开放的图元块,图元块分配模块216维护边界框,该边界框是约束向该图元块分配的所有图元的平面空间中的区域。边界框可能具有许多不同的形式。例如,边界框可以是矩形的或者任何其他适当的边界形状,例如多边形的或圆形的,并且边界框可以或者可以不与图像的轴对齐。在不同的示例中,边界框的分辨率可以是不同的,并且例如可以大概是整个区片的分辨率或者可以具有与区片分辨率不同的(例如,更高的)分辨率。在任何给定时间存储在数据存储库220中的开放的图元块2221至2223具有非重叠边界框。即,开放的图元块2221至2223的集合在空间上相互分离。如本文所描述的,图元块分配模块216试图向图元块分配图元,使得图元块保持空间上彼此分离。
图元块是用于存储图元数据的数据构造,该数据构造可以被存储在参数存储器中,诸如存储器2041。图5示出了图元块500的示例。图元块500包括头部502,头部502包括用以描述图元块中的图元将如何被渲染的状态信息(诸如深度比较模式、混合状态、纹理状态、图元类型等)。图元块500还包括顶点数据504。顶点数据包括用于包括在图元块500中的图元的顶点中的每个顶点的数据。在图5中所示的示例中,存在n个顶点(V0至Vn-1),并且用于每个顶点的数据可以包括,例如,用以描述顶点的位置的场景空间(即3D模型空间)XYZ中的坐标集合、以及用以描述顶点的外观的属性的集合,诸如应用于顶点的纹理坐标(U,V)和/或底色。图元块500还包括图元索引数据506。图元索引数据包括用于被包括在图元块500中图元中的每个图元的索引的集合(例如,用于三角形图元的三个索引)以限定顶点中的哪些顶点组成图元中的每个图元。在图5中所示的示例中,存在m个图元(P0至Pm-1)。注意,图元块500中的图元可以共享顶点,例如,图元P1和P2(它们可以对应于图4中所示的图元4041和4042)共享两个顶点(V0和V2)。可以理解,增加在多个图元之间共享的图元块中的顶点数量将减少图元块的数据量。存在可以被包括在图元块中的顶点的最大数量(即,顶点阈值)和/或可以被包括在图元块中的图元的最大数量(即,图元阈值)。例如,顶点阈值可以为64、256或一些其他适当的量,并且图元阈值可以为128、512或一些其他适当的量。
在步骤S304中,针对当前图元,分配逻辑218比较当前图元的空间位置的指示和开放的图元块2221至2223的空间位置的对应指示。然后,在步骤S306中,分配逻辑218基于步骤S304中的比较结果向图元块(例如,开发当图元块222中的一个或者新图元块)分配当前图元。以这种方式,当前图元根据其空间位置被分配给图元块。在步骤S308中,分配逻辑218确定是否存在要向图元块分配的更多的图元,并且如果存在,则针对下一个图元重复步骤S304和S306。然而,如果不存在要分配的更多的图元,则方法从步骤S308前进到步骤S310,在步骤S310中存储在数据存储库220中的图元块被冲刷至分片模块208。当在图元块分配模块216处接收到进一步的图元时,方法可以在步骤S302处重新开始。
前面的段落以高水平解释了步骤S304和S306,并且如以下更详细描述的,可以在不同示例中以不同的方式来实施这些步骤。
作为示例,图元的空间位置的指示可以包括图元的顶点。即,图元可以包括三个顶点,并且顶点的位置提供了图元的空间位置的指示。类似地,图元块的空间位置的指示可以包括被包括在图元块中的图元的顶点。在这种情况下,通过确定图元是否与开放的图元块具有一个或多个共享的顶点,图元的空间位置可以与开放的图元块222的空间位置进行比较。
如果当前图元与单个的开放图元块222共享一个或多个顶点,则在步骤S306中,分配逻辑218向该图元块222分配图元。如果当前图元与多个开放的图元块222共享一个或多个顶点,则在步骤S306中,分配逻辑218试图合并这些图元块,使得图元可以被分配给作为结果的合并的图元块222。然而,例如如果作为结果的合并的图元块超过顶点的最大允许的数量或者可以被包括在图元块中的图元的最大允许的数量,则可能合并图元块是不可能的。在这种情况下,图元块中的一个图元块被冲刷出数据存储库220,并且当前图元被分配给与其共享一个或多个顶点的剩余图元块。如果当前图元不与开放的图元块222中的任何开放的图元块222共享顶点,则基于空间位置的一些其他指示(例如,如下所述,基于图元的边界框和图元块的边界框),当前图元可以被分配给开放的图元块222中的一个开放的图元快,或者可以开放新的图元块使得当前图元可以被分配给该新的图元块。
空间位置的另一指示是边界框,例如,当图元不与开放的图元块中的任何开放的图元块共享顶点时可以使用边界框。例如,图元可以具有边界框,图元完全位于该边界框内。类似地,图元块222中的每个图元块可以具有边界框,图元块内的图元中的所有图元均位于该边界框内。在不同示例中边界框的分辨率可以不同,并且例如可以是每区片分辨率或者每采样分辨率(即,采样栅格的分辨率)。在不同示例中边界框的形状可以不同,并且例如可以为矩形。通过确定图元的边界框是否与开放的图元块的边界框重叠或者是否在距开放的图元块的边界框的重叠的最小距离内,图元的空间位置可以与开放的图元块222的空间位置进行比较。例如,最小距离可以是0、1、2或更多个区片,并且如果当前图元的边界框在与图元块的边界框的最小距离内,则它被认为仿佛是与图元块具有重叠的边界框。
如果当前图元与开放的图元块222中的单个开放的图元块具有重叠的边界框,则在步骤S306中,分配逻辑218向该图元块222分配图元。如果当前图元与多个开放的图元块222具有重叠的边界框,则在步骤S306中,分配逻辑218试图合并那些图元块,使得图元可以被分配给作为结果的合并的图元块222。然而,例如如果作为结果的合并的图元块超过顶点的最大允许的数量或者可以被包括在图元块中的图元的最大允许的数量,则可能合并图元块是不可能的。在这种情况下,图元块中的一个图元块被冲刷出数据存储库220,并且当前图元被分配给与其具有重叠的边界框的剩余图元块。
更一般地,如果当前图元具有与开放的图元块中的单个开放的图元块的空间位置匹配的空间位置(例如,如由与图元块具有一个或多个共享的顶点或者重叠的边界框所指示的),则接收到的图元被分配给该图元块。此外,如果当前图元具有与多个开放的图元块的空间位置匹配的空间位置(例如,如由与多个图元块具有一个或多个共享的顶点或者重叠的边界框所指示的),则匹配的开放图元块根据需要被合并和/或被冲刷,直到在数据存储库220中仅存在一个匹配的开放图元块,其具有与当前图元的空间位置匹配的空间位置,并且然后向该图元块添加当前图元。当图元被分配给图元块时,如果该图元不位于该图元块的边界框内,则该图元块的边界框被更新以包括该图元。
如果当前图元的空间位置不与开放的图元块222中的任何开放的图元块的空间位置匹配(例如,如果图元的边界框不与开放的图元块的边界框重叠或者不位于距开放的图元块的边界框的重叠的最小距离内),则可以向开放的图元块的集合(如果可能的话)添加新的图元块,使得当前图元然后可以被分配给该新的图元块。然而,如果在数据存储库220中存储了最大数量(例如,在图2中所示的示例中为三)的开放的图元块,则在不从数据存储库220中冲刷图元块中的一个图元块的情况下,新的图元块不能被创建并且被存储在数据存储库220中。因此,如果数据存储库220不具有用以存储新的图元块的空间,则从数据存储库220中输出所存储的图元块中的一个图元块以提供用于新的图元块的空间。这可以导致图元块在它们完全满之前被冲刷出数据存储库220。这可能意味着与如果所有图元块在被冲刷之前被完全填充相比更多的图元块被使用,但是基于图元的空间位置将图元分组到图元块中(使得图元块具有小边界框)的好处通常超过增加图元块的数量的任何缺点。在极端情况下,当图元被散射到屏幕上导致每个图元块具有少数图元的许多非重叠的图元块时,具有少量图元的非重叠的图元块中的两个非重叠的图元块(例如,少于全部图元的一半的图元块)可以被合并到一起而不是冲刷图元块中的一个图元块。这在数据存储库220中提供了创建新的图元块的空间而不用冲刷太多未填充的图元块。
在备选示例中,当前图元可以被分配给开放的图元块222中的一个开放的图元块(例如,最接近的图元块),即使当前图元的空间位置不与开放的图元块222中的任何开放的图元块的空间位置相匹配。在一些情况下,将图元块块冲刷出数据存储库220并且开始新的图元块可能是优选的。
当开放的图元块中的一个开放的图元块将在其被完全填满前被冲刷时,例如以提供用于向数据存储库220添加图元块的空间,做出选择以确定开放的图元块中的一个开放的图元块是否将被冲刷。可以根据输出方案(或“冲刷方案”)来做出该选择。根据图元的序列顺序,开放的图元块中的哪个开放的图元块被冲刷出数据存储库220并不重要,因为开放的图元块相互不重叠。重要的是在渲染空间中在每个特定的采样位置处保持图元的顺序,但是保持相互之间不重叠的图元的顺序不是关键性的。即,应该保持覆盖特定采样位置的图元的相对排序,但是由于存储在数据存储库220中的开放的图元块是不重叠的,所以开放的图元块中的任何开放的图元块可以被冲刷而不破坏特定采样位置处的图元的排序。
当开放的图元块中的两个开放的图元块被合并时,来自图元块中的一个图元块的图元可以被附加至其他图元块中的图元,以形成作为结果的合并的图元块中的图元。不需要对合并的图元块内的图元根据它们的序列位置进行重新排序,因为开放的图元块(在合并之前)是不重叠的,因此简单的附加操作将不会导致渲染空间中的任何特定采样位置处的图元的序列顺序的偏差。
冲刷方案可以是用于选择从数据存储库220中冲刷开放的图元块220中的哪个开放的图元块的任何适当的方案。例如,冲刷方案可以为:
(i)循环赛方案;
(ii)输出最大者方案,其中具有最多图元的图元块被选择为将被输出;
(iii)输出最小者方案,其中具有最少图元的图元块被选择为将被输出;
(iv)输出最旧者方案,其中已经在数据存储库220中存在了最长的时间量的图元块被选择为将被输出;
(v)合并和输出最小者和最大者方案,其中具有最多图元的图元块和具有最少图元的图元块被合并,并且作为结果的合并的图元块然后被选择为将被输出;
(vi)合并阈值方案,其中具有少于图元的阈值数量的图元的任何图元块被合并,并且作为结果的合并的图元块然后被选择为将被输出;
(vii)合并最小者方案,其中具有最少图元的两个图元块被合并并且作为结果的合并的图元块被保持在数据存储库220中,其中在这种情况下,仅在合并不可能时,图元块222中的一个图元块被选择为将被输出;或者
(viii)上述冲刷方案中的任何冲刷方案的组合。
测试被执行以确定冲刷方案中的哪个冲刷方案在减少在GPU202和存储器2041之间传送的参数数据量方面提供最好的结果,并且发现合并最小者方案(方案vii)给出了最好的结果。
在一些示例中,如果渲染状态改变(例如,如果深度比较模式或者图元的类型改变)或者如果用于图像的图元的序列的末端相遇,则开放的图元块222被冲刷出数据存储库220。如果渲染状态快速改变(例如,在两个渲染状态之间交替),则这可以能是低效的,因此在一些示例中,可以检测快速改变的渲染状态,并且在这种情况下,当渲染状态改变时一些图元块可能不被冲刷以减少被冲刷的分离的图元块的数量。对能够存储在数据存储库220中的开放的图元块222的数量的限制影响了从数据存储库220冲刷出的图元块的平均填满度。例如,增加可以存储在数据存储库220中的开放的图元块222的数量将提供更多的机会用于向开放的图元块分配图元而不需要从数据存储库220冲刷出任何图元块,但是由于渲染状态的改变这还将增加在图元块被完全填满之前被冲刷的图元块的数量。增加图元块的平均填满度减少了使用的图元块的数量,从而减少了从GPU202向存储器2041传送的数据量,因为每个图元块都包括头部数据。对开放的图元块的数量的最佳限制取决于被渲染的图像。因此,图元块分配模块216可以基于接收到的图元的分析来动态地适应对能够存储在数据存储库220中的开放的图元块220的数量的限制。例如,该限制可以被初始地设置为三(如图2中所示),并且如果可以通过增加该限制来增加冲刷的图元块的平均填满度(例如,如果输入的图元在渲染空间上被广泛地空间地分布),则例如该限制可以被增加到四。类似地,如果可以通过减少限制来增加冲刷的图元块的平均填满度(例如,如果渲染状态频繁地改变),则例如该限制可以被减少到二。限制本身可以其不能超过的最大值,该最大值可以通过片上存储器的量来确定。增加对能够存储在数据存储库220中的开放的图元块的数量的限制的最大值意味着该数据存储库需要更大数量的片上存储器,该片上存储器是非常有限的资源,因此保持对能够存储在数据存储库220中的开放的图元块222的数量的限制的最大值较低(例如,小于五个)可以是有利的。
每个图元块具有索引图,该索引图将图元块中的顶点的索引映射到从应用发送的顶点的索引。当图元块被合并时,将需要更新合并的图元块的索引图以相应地反映合并的图元块中的顶点的新的索引。
从图元块分配模块216输出的图元块被传送给分片模块208,该分片模块208确定哪些图元存在于图形处理系统200的渲染空间的区片中的每个区片中。分片模块208确定每区片显示列表,该每区片显示列表指示哪些图元存在于渲染空间的区片中的每个区片中。显示列表和图元块从分片模块208被输出并且被存储在存储器2041中。光栅化块210从存储器2041中取出用于区片的显示列表和与该区片相关的图元块,并且HSR模块212执行隐藏面消除,从而移除在场景中隐藏的图元的片段。剩余的片段被传送给纹理化/着色模块214,该纹理化/着色模块214对片段执行纹理化和/或着色处理以确定可以被传送至存储器2042用于存储在帧缓冲器中的渲染的图像的像素值。光栅化块210处理区片中的每个区片,并且当整个图像已经被渲染并且被存储在存储器2042中时,图像可以从图形处理系统200被输出,并且例如,被显示在显示器上。
基于图元的空间位置来将图元分类到图元块中可以产生更大数量的图元块,因为一些图元块在它们被冲刷出数据存储库220之前没有被完全填满,因此由于图元块头部的增加的数量可以存在从GPU202写出到存储器2041的图元数据的数量上的微量增加。然而,由于将图元空间分类到图元块中,包括在图元块中的图元更可能共享顶点,使得用来表示图元的数据量由于共享的顶点数据仅需要在图元块中被存储一次而被减少。此外,从GPU202写出到存储器2041的图元数据量上的任何微量增加都被由光栅化模块210从存储器2041读取用于由HSR模块212使用的图元数据量上的减少大大超过。即,由于HSR模块212对区片进行操作,所以它读入包含与该区片相关的图元的图元块,并且由于将图元空间分类到图元块中,所以将需要由HSR模块212从存储器2041中读取较少的图元块用于执行针对区片的HSR。因此,当图元块分配模块216被包括作为基于区片的图形处理系统的一部分时,本文所描述的示例尤其有用。然而,将图元空间分组到图元块中也提高了针对由HSR模块216取出的图元的高速缓存命中率,并且这对于基于区片的和基于非区片的渲染系统来说都是有用的。
以下呈现了一些伪码作为可以被用来实施图形处理系统200的代码的示例:
分配逻辑218可以以硬件或软件或者它们的组合来被实施在GPU202上。例如,如果分类逻辑218以硬件来实施,则它可以被形成为晶体管和适合用于执行如本文所描述的分配逻辑的期望的功能的其他硬件部件的特定布置。相反,如果以软件来实施分配逻辑218,则它可以包括可以被存储在存储器中并且可以被提供给GPU202用于执行于其上的一组计算机指令。此外,尽管在本文所描述的示例中,图形处理系统使用GPU,但是在其他示例中,通用处理单元,例如CPU,可以被用来将本文中描述的功能实施为被实施在GPU202上。
可以在计算机系统中实施上述图形处理系统200。例如,图6示出了一种计算机系统,该计算机系统包括GPU202、CPU602和存储器604,其中存储器604可以包括与上述存储器2041和2042相对应的存储器块。计算机系统还包括其他设备606,诸如显示器608、扬声器610、麦克风612和键盘614。计算机系统的部件可以经由通信总线616相互通信。用于应用的计算机程序代码可以被存储在存储器604中,并且例如可以在CPU602上被执行。如果应用需要渲染3D场景的图像,则可以将图元发送给GPU202,并且GPU202可以如上所述来渲染场景。
通常,上述任何功能、方法、技术或部件(例如,图元块分类模块216及其部件)可以被实施在使用软件、固件、硬件(例如,固定逻辑电路)或这些实施方式的任何组合的模块中。本文使用术语“模块”、“功能”、“部件”、“块”、“单元”和“逻辑”以一般性地表示软件、固件、硬件或它们的任何组合。
在软件实施方式的情况下,模块、功能、部件、单元或逻辑表示当在处理器(例如,一个或多个CPU)上被执行时执行特定任务的程序代码。在一个示例中,可以由配置有以存储在计算机可读介质上的机器可读形式的软件的计算机来执行所描述的方法。计算机可读介质的一种这样的配置是信号承载介质,并且因此被配置为向计算设备传输指令(例如,作为载波),诸如经由网络。计算机可读介质还可以被配置为非瞬态计算机可读存储介质,并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器和可以使用磁、光和其他技术来存储可以被机器访问的指令或其他数据的其他存储器设备。
当在计算机上运行程序时以及在计算机程序可以被体现在计算机可读介质上的情况下,软件可以是以包括计算机程序代码的计算机程序的形式,该计算机程序代码用于配置计算机以执行所述方法的组成部分,或者以包括计算机程序代码装置的计算机程序的形式,该计算机程序代码装置适合于执行本文所述的方法中的任何方法的所有步骤。程序代码可以被存储在一个或多个计算机可读介质上。本文描述的技术的特征是平台无关的,意味着可以在具有各种处理器的各种计算平台上实施这些技术。
本领域技术人员还将意识到,可以通过专用电路、专用集成电路、可编程逻辑阵列、现场可编程门阵列等执行功能、技术或方法中的全部或一部分。例如,模块、功能、部件、单元或逻辑(例如,分配逻辑218)可以包括电路形式的硬件。这种电路可以包括晶体管和/或可在制造过程中可用的其他硬件元件。例如,这种晶体管和/或其他元件可以被用来形成实施和/或包含存储器(诸如寄存器、触发器或锁存器)、逻辑运算符(诸如Boolean运算)、数字运算符(诸如加法器、乘法器或移位器)和互连的电路或结构。这种元件可以被提供为定制电路或标准单元库、宏或者处于抽象的其他级别。这种元件可以在特定布置中被互连。模块、功能、单元或逻辑(例如,分配逻辑218)可以包括固定功能的电路以及可以被编程以执行功能的电路;这种编程可以从固件或软件更新或控制机制被提供。在一个示例中,硬件逻辑具有实施固定的功能操作、状态机或过程的电路。
还旨在包括用于设计集成电路的或者用于配置可编程芯片以执行的期望功能的“描述”或限定实施上述模块、功能、部件、单元或逻辑的硬件的配置的软件,诸如HDL(硬件描述语言)软件。即,可以提供计算机可读存储介质,该计算机可读存储介质具有编码于其上的计算机可读程序代码,该计算机可读程序代码用于生成图形处理单元,该图形处理单元包括被配置为执行本文描述的方法中的任何方法的图元块分配模块,或者用于生成包括本文描述的任何装置的图形处理系统。即,计算机系统可以被配置为从电路元件的定义和用于组合那些电路元件的数据定义规则生成数字电路的表示,其中非瞬态计算机可读存储介质上可以具有存储于其上的处理器可执行指令,当该处理器可执行指令在这种计算机系统上执行时使得计算机系统生成包括如本文所描述的图元块分配模块的图形处理单元。
本文中术语“处理器”和“计算机”被用来指代具有处理能力使得它可以执行指令的任何设备或其部分,或者能够执行功能或方法的全部或一部分的专用电路,或者是它们的组合。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是将会理解,所附权利要求中限定的主题不一定被限于上述特定特征或动作。更确切地说,上述特定特征和动作被公开为实施权利要求的示例形式。将会理解,上述好处和优势可以与一个示例相关或者可以与多个示例相关。
对于本领域技术人员将是明显的,可以扩展或改变本文给出的任何范围或值而不失去所寻求的效果。本文所描述的方法的步骤可以以任何适当的顺序来执行,或者根据需要同时执行。上述示例中的任何示例的方面可以与描述的其他示例中的任何示例的方面组合以形成进一步的示例而不失去所寻求的效果。
Claims (21)
1.一种在图元块分配模块处向图元块分配图元的方法,所述图元块分配模块包括数据存储库,所述数据存储库用于存储可以向其分配图元的图元块的集合,所述方法包括:
接收图元的序列;以及
针对接收到的所述图元中的每个图元,如果至少一个图元块被存储在所述数据存储库中,则:
(i)比较接收到的所述图元的空间位置的指示和存储在所述数据存储库中的所述至少一个图元块的空间位置的至少一个指示;以及
(ii)基于所述比较的结果来向图元块分配接收到的所述图元,使得接收到的所述图元根据接收到的所述图元的空间位置而被分配给图元块。
2.根据权利要求1所述的方法,其中,针对接收到的所述图元中的每个图元,如果至少两个图元块被存储在所述数据存储库中,则操作(i)包括比较接收到的所述图元的空间位置的指示和存储在所述数据存储库中的所述至少两个图元块的空间位置的相应的指示。
3.根据权利要求1或2所述的方法,其中如果所述比较的所述结果指示接收到的所述图元的所述空间位置与存储在所述数据存储库中的所述图元块中的单个图元块的所述空间位置匹配,则接收到的所述图元被分配给所述图元块中的所述单个图元块。
4.根据前述权利要求中任一项所述的方法,其中如果所述比较的所述结果指示接收到的所述图元的所述空间位置与存储在所述数据存储库中的所述图元块中的多个图元块的所述空间位置匹配,则所述方法包括如果可能则合并所述多个图元块以形成合并的图元块,其中接收到的所述图元被分配给所述合并的图元块。
5.根据前述权利要求中任一项所述的方法,其中如果所述比较的所述结果指示接收到的所述图元的所述空间位置不与存储在所述数据存储库中的所述图元块中的任何图元块的所述空间位置匹配,则所述方法包括创建将被包括在图元块的所述集合中的新的图元块,其中接收到的所述图元被分配给所述新的图元块。
6.根据权利要求5所述的方法,其中如果所述数据存储库不具有用以存储所述新的图元块的空间,则所述方法进一步包括从所述数据存储库输出所述图元块中的一个图元块以提供用于所述新的图元块的空间。
7.根据权利要求6所述的方法,进一步包括根据输出方案来选择将从所述数据存储库输出的图元块,其中所述输出方案包括以下方案中的一个或多个方案:
(i)循环赛方案;
(ii)输出最大者方案,其中具有最多图元的图元块被选择为将被输出;
(iii)输出最小者方案,其中具有最少图元的图元块被选择为将被输出;
(iv)输出最旧者方案,其中已经在所述数据存储库中存在了最长的时间量的图元块被选择为将被输出;
(v)合并和输出最小者和最大者方案,其中具有最多图元的所述图元块和具有最少图元的所述图元块被合并,并且作为结果的合并的图元块然后被选择为将被输出;
(vi)合并阈值方案,其中具有少于阈值数量的图元的任何图元块被合并,并且作为结果的合并的图元块然后被选择为将被输出;
(vii)合并最小者方案,其中具有最少图元的两个图元块被合并,并且作为结果的合并的图元块被保持在所述数据存储库中,其中如果合并不可能则来自所述数据存储库的所述图元块中的一个图元块被选择为将被输出。
8.根据前述权利要求中任一项所述的方法,其中所述图元块中的每个图元块包括头部,所述头部包括指示如何渲染所述图元块中的所述图元的状态信息。
9.一种图元块分配模块,所述图元块分配模块用于向图元块分配图元,所述图元块分配模块包括:
数据存储库,所述数据存储库被配置为存储可向其分配图元的图元块的集合;以及
分配逻辑,所述分配逻辑被配置为:
(a)接收图元的序列,以及
(b)针对接收到的所述图元中的每个图元,如果至少一个图元块被存储在所述数据存储库中,则:(i)比较接收到的所述图元的空间位置的指示和存储在所述数据存储库中的所述至少一个图元块的空间位置的至少一个指示,以及(ii)基于所述比较的结果来向图元块分配接收到的所述图元,从而根据接收到的所述图元的空间位置向图元块分配接收到的所述图元。
10.根据权利要求9所述的图元块分配模块,其中所述数据存储库具有对所述数据存储库能够存储的图元块的数量的限制,其中所述限制为2、3或4。
11.根据权利要求10所述的图元块分配模块,其中所述分配逻辑被配置为基于接收到的所述图元的分析来动态地适应所述限制。
12.根据权利要求9至11中任一项所述的图元块分配模块,其中接收到的所述图元的空间位置的所述指示包括接收到的所述图元的顶点,并且图元块的空间位置的指示包括在所述图元块中包括的图元的顶点,其中所述分配逻辑被配置为比较接收到的所述图元的所述顶点和存储在所述数据存储库中的所述图元块的所述顶点以确定接收到的所述图元是否与存储在所述数据存储库中的图元块具有一个或多个共享的顶点。
13.根据权利要求9至11中任一项所述的图元块分配模块,其中接收到的所述图元的空间位置的所述指示包括接收到的所述图元的边界框,并且图元块的空间位置的指示包括所述图元块的边界框,其中所述分配逻辑被配置为比较接收到的所述图元的所述边界框和存储在所述数据存储库中的所述图元块的所述边界框以确定接收到的所述图元的所述边界框是否与存储在所述数据存储库中的所述图元块的所述边界框重叠,或者是否在距存储在所述数据存储库中的所述图元块的所述边界框的重叠的最小距离内。
14.根据权利要求9至13中任一项所述的图元块分配模块,其中所述分配模块被进一步配置使得,响应于接收到的所述图元被分配给图元块以及如果接收到的所述图元不位于所述图元块的边界框内,则所述图元块的所述边界框被更新以包括接收到的所述图元。
15.根据权利要求9至14中任一项所述的图元块分配模块,进一步被配置为如果图元块是满的,则从所述数据存储库中输出所述图元块。
16.根据权利要求15所述的图元块分配模块,其中如果满足以下条件中至少一项则图元块是满的:(i)所述图元块中的顶点的数量大于或等于顶点阈值,以及(ii)所述图元块中的图元的数量大于或等于图元阈值。
17.根据权利要求9至16中任一项所述的图元块分配模块,其中所述图元块分配模块被包括作为基于区片的图形处理系统的一部分,所述基于区片的图形处理系统进一步包括分片模块,所述分片模块被配置为确定每区片显示列表,所述每区片显示列表指示哪些图元存在于多个区片中的每个区片内。
18.根据权利要求17所述的图元块分配模块,其中所述基于区片的图形系统进一步包括光栅化块,所述光栅化块被配置为使用所述每区片显示列表在每区片基础上实施隐藏面消除以及纹理化或着色。
19.根据从属于权利要求13或14的权利要求17或18所述的图元块分配模块,其中所述边界框具有每区片分辨率。
20.一种计算机可读存储介质,所述计算机可读存储介质具有编码于其上的计算机可读代码,所述计算机可读代码适合于当在计算机上被运行时执行根据权利要求1至8中任一项所述的方法的所述步骤。
21.一种计算机可读存储介质,所述计算机可读存储介质具有编码于其上的计算机可读代码,所述计算机可读代码用于生成图形处理单元,所述图形处理单元包括根据权利要求9至19中任一项所述的图元块分配模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1409530.1A GB2526598B (en) | 2014-05-29 | 2014-05-29 | Allocation of primitives to primitive blocks |
GB1409530.1 | 2014-05-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105139330A true CN105139330A (zh) | 2015-12-09 |
CN105139330B CN105139330B (zh) | 2022-03-29 |
Family
ID=51214397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510284863.0A Active CN105139330B (zh) | 2014-05-29 | 2015-05-28 | 向图元块分配图元的方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10957097B2 (zh) |
CN (1) | CN105139330B (zh) |
DE (1) | DE102015107869A1 (zh) |
GB (1) | GB2526598B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897143A (zh) * | 2015-12-21 | 2017-06-27 | 想象技术有限公司 | 对图形处理系统中的处理引擎的区片分配 |
CN107169916A (zh) * | 2016-03-07 | 2017-09-15 | 想象技术有限公司 | 用于simd处理的任务组合 |
CN107341283A (zh) * | 2016-04-29 | 2017-11-10 | 想象技术有限公司 | 用于图块的控制流的生成 |
CN109643460A (zh) * | 2016-08-29 | 2019-04-16 | 超威半导体公司 | 使用推迟图元批量合并和分类的混合渲染器 |
CN109979000A (zh) * | 2017-12-14 | 2019-07-05 | 想象技术有限公司 | 多视图图元块 |
CN111489282A (zh) * | 2019-01-29 | 2020-08-04 | 畅想科技有限公司 | 用于存储未变换图元块的存储器 |
CN112214809A (zh) * | 2020-10-16 | 2021-01-12 | 安徽工程大学 | 一种图元随机排列方法及装置 |
CN115546386A (zh) * | 2021-06-30 | 2022-12-30 | 想象技术有限公司 | 图形处理系统和渲染方法 |
US11880926B2 (en) | 2013-03-29 | 2024-01-23 | Advanced Micro Devices, Inc. | Hybrid render with deferred primitive batch binning |
US11954782B2 (en) | 2013-03-29 | 2024-04-09 | Advanced Micro Devices, Inc. | Hybrid render with preferred primitive batch binning and sorting |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
US9934548B2 (en) | 2016-03-09 | 2018-04-03 | Apple Inc. | Hierarchical techniques for storing graphics primitives |
KR102646906B1 (ko) | 2016-11-17 | 2024-03-12 | 삼성전자주식회사 | 타일 기반 렌더링 방법 및 장치 |
CN110097147B (zh) * | 2018-01-29 | 2020-07-14 | 北大方正集团有限公司 | 图元绘制属性的设置方法、系统、计算机设备及存储介质 |
CN111429556B (zh) | 2018-12-21 | 2023-03-24 | 畅想科技有限公司 | 图形处理系统中的基于基元块的光栅化 |
GB2580166B (en) * | 2018-12-21 | 2021-06-30 | Imagination Tech Ltd | Primitive block-based rasterization in graphics processing systems |
EP3671651B1 (en) | 2018-12-21 | 2024-03-27 | Imagination Technologies Limited | Primitive block generator for graphics processing systems |
GB2580168B (en) * | 2018-12-21 | 2022-11-30 | Imagination Tech Ltd | Primitive block generator for graphics processing systems |
GB2587224B (en) * | 2019-09-19 | 2021-09-15 | Imagination Tech Ltd | Methods and tiling engines for hierarchially tiling primitives in a graphics processing system |
CN113256479A (zh) | 2020-02-13 | 2021-08-13 | 畅想科技有限公司 | 用于在图形处理系统中平铺图元的方法和平铺引擎 |
US11055812B1 (en) | 2020-05-26 | 2021-07-06 | Apple Inc. | Opportunistic launch of idempotent geometry stage render operations |
EP3843045B1 (en) | 2020-05-28 | 2022-06-22 | Imagination Technologies Limited | Task merging |
US11954757B2 (en) * | 2021-12-28 | 2024-04-09 | Advanced Micro Devices, Inc. | Method and apparatus for implementing a rasterizer in GPU operations |
GB2626228A (en) * | 2022-11-17 | 2024-07-17 | Advanced Risc Mach Ltd | Graphics processing systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090174706A1 (en) * | 2007-11-30 | 2009-07-09 | Howson John W | Multi-core geometry processing in a tile based rendering system |
CN102265309A (zh) * | 2008-12-23 | 2011-11-30 | 想象技术有限公司 | 基于图块的3d计算机图形系统中的显示列表控制流分组 |
CN102292748A (zh) * | 2008-12-19 | 2011-12-21 | 想象技术有限公司 | 基于区块的3d计算机图形系统中的多级显示控制列表 |
CN103098094A (zh) * | 2010-09-10 | 2013-05-08 | 想象技术有限公司 | 用于基于图块的3d计算机图形系统的可随机访问的无损参数数据压缩 |
US20130265298A1 (en) * | 2011-10-07 | 2013-10-10 | Nexell Co., Ltd. | Graphic processing method and apparatus |
Family Cites Families (230)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3089792B2 (ja) * | 1992-03-04 | 2000-09-18 | ソニー株式会社 | 画像データの隠面判別方式 |
US5504821A (en) * | 1993-03-31 | 1996-04-02 | Matsushita Electric Industrial Co., Ltd. | Color converting apparatus for performing a three-dimensional color conversion of a colored picture in a color space with a small capacity of memory |
EP0722589B1 (en) * | 1993-10-06 | 1999-01-20 | Honeywell Inc. | Virtual graphics processor and method for embedded, real time display systems |
US5515453A (en) * | 1994-01-21 | 1996-05-07 | Beacon System, Inc. | Apparatus and method for image processing in symbolic space |
EP0672982B1 (en) * | 1994-03-18 | 2002-07-31 | Hewlett-Packard Company, A Delaware Corporation | Printer system with compressed font procedure that enables memory conservation |
US5461712A (en) * | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
US5572634A (en) * | 1994-10-26 | 1996-11-05 | Silicon Engines, Inc. | Method and apparatus for spatial simulation acceleration |
US5801708A (en) * | 1995-06-06 | 1998-09-01 | Hewlett-Packard Company | MIP map texture storage by dividing and allocating among multiple blocks |
US5864342A (en) * | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US5886701A (en) * | 1995-08-04 | 1999-03-23 | Microsoft Corporation | Graphics rendering device and method for operating same |
US5867166A (en) * | 1995-08-04 | 1999-02-02 | Microsoft Corporation | Method and system for generating images using Gsprites |
US5793371A (en) * | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
US5990904A (en) * | 1995-08-04 | 1999-11-23 | Microsoft Corporation | Method and system for merging pixel fragments in a graphics rendering system |
US5999189A (en) * | 1995-08-04 | 1999-12-07 | Microsoft Corporation | Image compression to reduce pixel and texture memory requirements in a real-time image generator |
JP2882465B2 (ja) * | 1995-12-25 | 1999-04-12 | 日本電気株式会社 | 画像生成方法およびその装置 |
US6169554B1 (en) * | 1997-06-30 | 2001-01-02 | Sun Microsystems, Inc. | Clip testing unit for a three-dimensional graphics accelerator |
US6856320B1 (en) * | 1997-11-25 | 2005-02-15 | Nvidia U.S. Investment Company | Demand-based memory system for graphics applications |
US6192393B1 (en) * | 1998-04-07 | 2001-02-20 | Mgi Software Corporation | Method and system for panorama viewing |
US6246415B1 (en) * | 1998-04-30 | 2001-06-12 | Silicon Graphics, Inc. | Method and apparatus for culling polygons |
US6879324B1 (en) * | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
US6426750B1 (en) * | 1998-07-14 | 2002-07-30 | Microsoft Corporation | Run-time geomorphs |
US7023437B1 (en) * | 1998-07-22 | 2006-04-04 | Nvidia Corporation | System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6229553B1 (en) * | 1998-08-20 | 2001-05-08 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6720964B1 (en) * | 1998-08-27 | 2004-04-13 | Ati International Srl | Method and apparatus for processing portions of primitives that are being rendered |
US6438612B1 (en) * | 1998-09-11 | 2002-08-20 | Ssh Communications Security, Ltd. | Method and arrangement for secure tunneling of data between virtual routers |
US6560688B1 (en) * | 1998-10-01 | 2003-05-06 | Advanced Micro Devices, Inc. | System and method for improving accelerated graphics port systems |
GB2343603B (en) * | 1998-11-06 | 2003-04-02 | Videologic Ltd | Shading 3-dimensional computer generated images |
US6344852B1 (en) * | 1999-03-17 | 2002-02-05 | Nvidia Corporation | Optimized system and method for binning of graphics data |
US6421053B1 (en) * | 1999-05-24 | 2002-07-16 | International Business Machines Corporation | Block rendering method for a graphics subsystem |
US6518973B1 (en) * | 1999-08-31 | 2003-02-11 | Microsoft Corporation | Method, system, and computer program product for efficient buffer level management of memory-buffered graphics data |
US6424345B1 (en) * | 1999-10-14 | 2002-07-23 | Ati International Srl | Binsorter triangle insertion optimization |
US6525726B1 (en) * | 1999-11-02 | 2003-02-25 | Intel Corporation | Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture |
US6894704B1 (en) * | 1999-11-22 | 2005-05-17 | Adobe Systems Incorporated | Processing complex regions of illustration artwork |
US6433789B1 (en) * | 2000-02-18 | 2002-08-13 | Neomagic Corp. | Steaming prefetching texture cache for level of detail maps in a 3D-graphics engine |
US6819321B1 (en) * | 2000-03-31 | 2004-11-16 | Intel Corporation | Method and apparatus for processing 2D operations in a tiled graphics architecture |
US20020060685A1 (en) * | 2000-04-28 | 2002-05-23 | Malcolm Handley | Method, system, and computer program product for managing terrain rendering information |
IL136430A0 (en) * | 2000-05-29 | 2001-06-14 | Zviaguina Natalia | Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes |
US7952583B2 (en) * | 2000-06-19 | 2011-05-31 | Mental Images Gmbh | Quasi-monte carlo light transport simulation by efficient ray tracing |
JP2002008060A (ja) * | 2000-06-23 | 2002-01-11 | Hitachi Ltd | データ処理方法、記録媒体及びデータ処理装置 |
US6714196B2 (en) * | 2000-08-18 | 2004-03-30 | Hewlett-Packard Development Company L.P | Method and apparatus for tiled polygon traversal |
US6819332B2 (en) * | 2001-02-27 | 2004-11-16 | 3Dlabs Inc. Ltd. | Antialias mask generation |
DE60230120D1 (de) * | 2001-03-14 | 2009-01-15 | Nokia Corp | Realisierung des präsenz-managements |
EP1255227A1 (en) * | 2001-04-27 | 2002-11-06 | STMicroelectronics Limited | Vertices index processor |
US6738069B2 (en) * | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
US6747653B2 (en) * | 2001-12-31 | 2004-06-08 | Intel Corporation | Efficient object storage for zone rendering |
US6795080B2 (en) * | 2002-01-30 | 2004-09-21 | Sun Microsystems, Inc. | Batch processing of primitives for use with a texture accumulation buffer |
US20040022322A1 (en) * | 2002-07-19 | 2004-02-05 | Meetrix Corporation | Assigning prioritization during encode of independently compressed objects |
US7305396B2 (en) * | 2002-12-31 | 2007-12-04 | Robert Bosch Gmbh | Hierarchical system and method for on-demand loading of data in a navigation system |
EP1447774B1 (en) * | 2003-02-13 | 2018-03-07 | ATI Technologies Inc. | Method and apparatus for sampling on a non-power-of-two pixel grid |
GB0307095D0 (en) * | 2003-03-27 | 2003-04-30 | Imagination Tech Ltd | Improvements to a tiling system for 3d rendered graphics |
US7259765B2 (en) * | 2003-04-04 | 2007-08-21 | S3 Graphics Co., Ltd. | Head/data scheduling in 3D graphics |
US7148888B2 (en) * | 2003-04-04 | 2006-12-12 | Via Technologies, Inc. | Head/data request in 3D graphics |
US7218317B2 (en) * | 2003-08-25 | 2007-05-15 | Via Technologies, Inc. | Mechanism for reducing Z buffer traffic in three-dimensional graphics processing |
US7720095B2 (en) * | 2003-08-27 | 2010-05-18 | Fortinet, Inc. | Heterogeneous media packet bridging |
US6937244B2 (en) * | 2003-09-23 | 2005-08-30 | Zhou (Mike) Hong | Apparatus and method for reducing the memory traffic of a graphics rendering system |
US7081897B2 (en) * | 2003-12-24 | 2006-07-25 | Intel Corporation | Unified memory organization for power savings |
US9098943B1 (en) * | 2003-12-31 | 2015-08-04 | Ziilabs Inc., Ltd. | Multiple simultaneous bin sizes |
US8223157B1 (en) * | 2003-12-31 | 2012-07-17 | Ziilabs Inc., Ltd. | Stochastic super sampling or automatic accumulation buffering |
US20050162435A1 (en) * | 2004-01-22 | 2005-07-28 | Electronic Arts Inc. | Image rendering with multi-level Z-buffers |
US7373473B2 (en) * | 2004-03-10 | 2008-05-13 | Leica Geosystems Hds Llc | System and method for efficient storage and manipulation of extremely large amounts of scan data |
US7505036B1 (en) * | 2004-07-30 | 2009-03-17 | 3Dlabs Inc. Ltd. | Order-independent 3D graphics binning architecture |
US7126615B2 (en) * | 2004-11-12 | 2006-10-24 | Via Technologies, Inc. | Color compression using multiple planes in a multi-sample anti-aliasing scheme |
GB0425204D0 (en) * | 2004-11-15 | 2004-12-15 | Falanx Microsystems As | Processing of 3-dimensional graphics |
US20060187229A1 (en) * | 2004-12-08 | 2006-08-24 | Xgi Technology Inc. (Cayman) | Page based rendering in 3D graphics system |
US7533221B1 (en) * | 2004-12-30 | 2009-05-12 | Sun Microsystems, Inc. | Space-adaptive lock-free free-list using pointer-sized single-target synchronization |
US7289119B2 (en) * | 2005-05-10 | 2007-10-30 | Sony Computer Entertainment Inc. | Statistical rendering acceleration |
GB0524804D0 (en) * | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
US20080273031A1 (en) * | 2005-12-08 | 2008-11-06 | Xgi Technology Inc. (Cayman) | Page based rendering in 3D graphics system |
JP4142065B2 (ja) * | 2006-05-22 | 2008-08-27 | 株式会社ソニー・コンピュータエンタテインメント | 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法 |
US7830379B2 (en) * | 2006-09-19 | 2010-11-09 | Caustic Graphics, Inc. | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
GB2449398B (en) * | 2006-09-29 | 2009-02-11 | Imagination Tech Ltd | Improvements in memory management for systems for generating 3-dimensional computer images |
US7940266B2 (en) * | 2006-10-13 | 2011-05-10 | International Business Machines Corporation | Dynamic reallocation of processing cores for balanced ray tracing graphics workload |
US20080088619A1 (en) * | 2006-10-17 | 2008-04-17 | Robert Allen Shearer | Branch Prediction for Acceleration Data Structure Traversal |
US7742011B2 (en) * | 2006-10-31 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Image display system |
US7782318B2 (en) * | 2006-11-22 | 2010-08-24 | International Business Machines Corporation | Method for reducing network bandwidth by delaying shadow ray generation |
US9965886B2 (en) * | 2006-12-04 | 2018-05-08 | Arm Norway As | Method of and apparatus for processing graphics |
US8773447B1 (en) * | 2006-12-08 | 2014-07-08 | Nvidia Corporation | Tag logic scoreboarding in a graphics pipeline |
US7512522B2 (en) * | 2007-02-28 | 2009-03-31 | International Business Machines Corporation | Methods and apparatus for assessing health of memory utilization of a program |
US7773087B2 (en) * | 2007-04-19 | 2010-08-10 | International Business Machines Corporation | Dynamically configuring and selecting multiple ray tracing intersection methods |
US8826299B2 (en) * | 2007-08-13 | 2014-09-02 | International Business Machines Corporation | Spawned message state determination |
GB2461821B (en) * | 2007-09-12 | 2010-06-30 | Imagination Tech Ltd | Methods and systems for generating 3-dimensional computer images |
US8284195B2 (en) * | 2007-09-13 | 2012-10-09 | International Business Machines Corporation | Cooperative utilization of spatial indices between application and rendering hardware |
US8289319B2 (en) * | 2007-10-08 | 2012-10-16 | Ati Technologies Ulc | Apparatus and method for processing pixel depth information |
US9043801B2 (en) * | 2008-01-15 | 2015-05-26 | International Business Machines Corporation | Two-tiered dynamic load balancing using sets of distributed thread pools |
US8462149B2 (en) * | 2008-04-18 | 2013-06-11 | Electronics And Telecommunications Research Institute | Method and apparatus for real time 3D mesh compression, based on quanitzation |
US20110046923A1 (en) * | 2008-04-18 | 2011-02-24 | Electronics And Telecommunications Research Institute | Apparatus and method for low-complexity three-dimensional mesh compression |
US9561622B2 (en) * | 2008-05-05 | 2017-02-07 | Georgia Tech Research Corporation | Systems and methods for fabricating three-dimensional objects |
US8176434B2 (en) * | 2008-05-12 | 2012-05-08 | Microsoft Corporation | Virtual desktop view scrolling |
US8253730B1 (en) * | 2008-08-29 | 2012-08-28 | Adobe Systems Incorporated | System and method for construction of data structures for ray tracing using bounding hierarchies |
US8928658B2 (en) * | 2008-09-30 | 2015-01-06 | Microsoft Corporation | Photon mapping on graphics hardware using kd-trees |
GB0900700D0 (en) * | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US8248412B2 (en) * | 2009-03-19 | 2012-08-21 | International Business Machines Corporation | Physical rendering with textured bounding volume primitive mapping |
US8760455B2 (en) * | 2009-10-05 | 2014-06-24 | Nvidia Corporation | Restart index that sets a topology |
US8619087B2 (en) * | 2009-10-06 | 2013-12-31 | Nvidia Corporation | Inter-shader attribute buffer optimization |
US8760460B1 (en) * | 2009-10-15 | 2014-06-24 | Nvidia Corporation | Hardware-managed virtual buffers using a shared memory for load distribution |
US9697641B2 (en) * | 2009-10-15 | 2017-07-04 | Nvidia Corporation | Alpha-to-coverage using virtual samples |
US9501847B1 (en) * | 2009-10-15 | 2016-11-22 | Nvidia Corporation | Parallel line stipple computation |
US9536341B1 (en) * | 2009-10-19 | 2017-01-03 | Nvidia Corporation | Distributing primitives to multiple rasterizers |
GB0922126D0 (en) * | 2009-12-17 | 2010-02-03 | Advanced Risc Mach Ltd | Graphics processing systems |
US8505001B2 (en) * | 2009-12-17 | 2013-08-06 | Broadcom Corporation | Method and system for utilizing data flow graphs to compile shaders |
US8619085B2 (en) * | 2010-03-08 | 2013-12-31 | Broadcom Corporation | Method and system for compressing tile lists used for 3D rendering |
US9058685B2 (en) * | 2010-03-11 | 2015-06-16 | Broadcom Corporation | Method and system for controlling a 3D processor using a control list in memory |
GB2478909B (en) * | 2010-03-19 | 2013-11-06 | Imagination Tech Ltd | Demand based texture rendering in a tile based rendering system |
US8854384B2 (en) * | 2010-04-06 | 2014-10-07 | Broadcom Corporation | Method and system for processing pixels utilizing scoreboarding |
GB201007348D0 (en) * | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US8860719B2 (en) * | 2011-01-21 | 2014-10-14 | Samsung Electronics Co., Ltd. | Apparatus and method for encoding three-dimensional (3D) mesh, and apparatus and method for decoding 3D mesh |
WO2012132237A1 (ja) * | 2011-03-31 | 2012-10-04 | パナソニック株式会社 | 立体視画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム |
US9183667B2 (en) * | 2011-07-15 | 2015-11-10 | Kirill Garanzha | Out-of-core ray tracing with memory-efficient page generation |
US9019280B2 (en) * | 2011-07-22 | 2015-04-28 | Qualcomm Incorporated | Area-based rasterization techniques for a graphics processing system |
CN103765481B (zh) * | 2011-08-05 | 2016-06-29 | 想象技术有限公司 | 用于3-d场景加速结构创建和更新的系统和方法 |
KR20130026853A (ko) * | 2011-09-06 | 2013-03-14 | 한국전자통신연구원 | 복셀 그리드를 이용한 포인트 클라우드의 렌더링 방법 및 장치 |
US9324299B2 (en) * | 2011-09-09 | 2016-04-26 | Microsoft Technology Licensing, Llc. | Atlasing and virtual surfaces |
US8902228B2 (en) * | 2011-09-19 | 2014-12-02 | Qualcomm Incorporated | Optimizing resolve performance with tiling graphics architectures |
US10089774B2 (en) * | 2011-11-16 | 2018-10-02 | Qualcomm Incorporated | Tessellation in tile-based rendering |
US9117302B2 (en) * | 2011-11-30 | 2015-08-25 | Qualcomm Incorporated | Switching between direct rendering and binning in graphics processing using an overdraw tracker |
US9453734B2 (en) * | 2012-06-05 | 2016-09-27 | Apple Inc. | Smart loading of map tiles |
US8928698B2 (en) * | 2012-06-10 | 2015-01-06 | Apple Inc. | Compression of road features in map tiles |
US10032243B2 (en) * | 2012-10-26 | 2018-07-24 | Nvidia Corporation | Distributed tiled caching |
US10438314B2 (en) * | 2012-10-26 | 2019-10-08 | Nvidia Corporation | Two-pass cache tile processing for visibility testing in a tile-based architecture |
US8941676B2 (en) * | 2012-10-26 | 2015-01-27 | Nvidia Corporation | On-chip anti-alias resolve in a cache tiling architecture |
WO2014068400A2 (en) * | 2012-11-02 | 2014-05-08 | Imagination Technologies, Ltd. | On demand geometry and acceleration structure creation |
US9317948B2 (en) * | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US9214006B2 (en) * | 2013-06-04 | 2015-12-15 | Arm Limited | Hidden surface removal in graphics processing systems |
GB201223089D0 (en) * | 2012-12-20 | 2013-02-06 | Imagination Tech Ltd | Hidden culling in tile based computer generated graphics |
US9483865B2 (en) * | 2012-12-26 | 2016-11-01 | Adshir Ltd. | Ray shooting method utilizing geometrical stencils |
US9454843B2 (en) * | 2013-02-05 | 2016-09-27 | Nvidia Corporation | Modulated and blended anti-aliasing |
US8751763B1 (en) * | 2013-03-13 | 2014-06-10 | Nimbus Data Systems, Inc. | Low-overhead deduplication within a block-based data storage |
GB2506706B (en) * | 2013-04-02 | 2014-09-03 | Imagination Tech Ltd | Tile-based graphics |
US9741089B2 (en) * | 2013-05-02 | 2017-08-22 | Arm Limited | Graphics processing systems |
KR102048885B1 (ko) * | 2013-05-09 | 2019-11-26 | 삼성전자 주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법 |
GB2507838B (en) * | 2013-05-09 | 2014-09-24 | Imagination Tech Ltd | Vertex parameter data compression |
KR102116708B1 (ko) * | 2013-05-24 | 2020-05-29 | 삼성전자 주식회사 | 그래픽스 프로세싱 유닛 |
US9519982B2 (en) * | 2013-05-31 | 2016-12-13 | Arm Limited | Rasterisation in graphics processing systems |
US9286649B2 (en) * | 2013-05-31 | 2016-03-15 | Qualcomm Incorporated | Conditional execution of rendering commands based on per bin visibility information with added inline operations |
US10204391B2 (en) * | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
AU2013211450A1 (en) * | 2013-07-30 | 2015-02-19 | Canon Kabushiki Kaisha | Fixed memory rendering |
US9514563B2 (en) * | 2013-08-30 | 2016-12-06 | Arm Limited | Graphics processing systems |
KR20150039493A (ko) * | 2013-10-02 | 2015-04-10 | 삼성전자주식회사 | 레이 트레이싱 처리 장치 및 방법 |
KR102101834B1 (ko) * | 2013-10-08 | 2020-04-17 | 삼성전자 주식회사 | 영상 처리 장치 및 방법 |
US9582849B2 (en) * | 2013-10-28 | 2017-02-28 | Vmware, Inc. | Method and system to virtualize graphic processing services |
EP2881918B1 (en) * | 2013-12-06 | 2018-02-07 | My Virtual Reality Software AS | Method for visualizing three-dimensional data |
GB2520366B (en) * | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2520365B (en) * | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2516995B (en) * | 2013-12-18 | 2015-08-19 | Imagination Tech Ltd | Task execution in a SIMD processing unit |
US9280845B2 (en) * | 2013-12-27 | 2016-03-08 | Qualcomm Incorporated | Optimized multi-pass rendering on tiled base architectures |
US9501860B2 (en) * | 2014-01-03 | 2016-11-22 | Intel Corporation | Sparse rasterization |
US8817026B1 (en) * | 2014-02-13 | 2014-08-26 | Raycast Systems, Inc. | Computer hardware architecture and data structures for a ray traversal unit to support incoherent ray traversal |
US9779533B2 (en) * | 2014-01-27 | 2017-10-03 | Nvidia Corporation | Hierarchical tiled caching |
KR102188543B1 (ko) * | 2014-02-07 | 2020-12-08 | 삼성전자주식회사 | 그래픽 처리 장치 |
GB2517809B (en) * | 2014-02-13 | 2015-07-22 | Imagination Tech Ltd | Processing of primitive blocks in parallel tiling engine pipes |
GB2524287B (en) * | 2014-03-19 | 2020-07-01 | Advanced Risc Mach Ltd | Graphics processing systems |
US9697640B2 (en) * | 2014-04-21 | 2017-07-04 | Qualcomm Incorporated | Start node determination for tree traversal in ray tracing applications |
US9910640B2 (en) * | 2014-05-15 | 2018-03-06 | International Business Machines Corporation | Modeling representational state transfer application programming interfaces |
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
GB2524120B (en) * | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
GB2524121B (en) * | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
US9947071B2 (en) * | 2014-06-27 | 2018-04-17 | Samsung Electronics Co., Ltd. | Texture pipeline with online variable rate dictionary compression |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US9773294B2 (en) * | 2014-07-03 | 2017-09-26 | Mediatek Inc. | Graphics processing system for determining whether to store varying variables into varying buffer based at least partly on primitive size and related graphics processing method thereof |
JP2016035623A (ja) * | 2014-08-01 | 2016-03-17 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
US9552664B2 (en) * | 2014-09-04 | 2017-01-24 | Nvidia Corporation | Relative encoding for a block-based bounding volume hierarchy |
US10235338B2 (en) * | 2014-09-04 | 2019-03-19 | Nvidia Corporation | Short stack traversal of tree data structures |
GB2530996B (en) * | 2014-10-06 | 2016-09-14 | Imagination Tech Ltd | Depth forwarding in a graphics processing system |
GR20140100528A (el) * | 2014-10-20 | 2016-06-01 | Arm Limited | Ενας βασισμενος σε πλακιδια επεξεργαστης γραφικων και μια μεθοδος επεξεργασιας γραφικων σε ενα βασισμενο σε πλακιδια επεξεργαστη |
KR102251444B1 (ko) * | 2014-10-21 | 2021-05-13 | 삼성전자주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 안티 에일리어싱 방법 |
KR20160047316A (ko) * | 2014-10-22 | 2016-05-02 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
KR20160051155A (ko) * | 2014-10-31 | 2016-05-11 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
KR102327144B1 (ko) * | 2014-11-26 | 2021-11-16 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법 |
US9607352B2 (en) * | 2014-12-03 | 2017-03-28 | Intel Corporation | Prediction based primitive sorting for tile based rendering |
US9553807B2 (en) * | 2014-12-24 | 2017-01-24 | Nicira, Inc. | Batch processing of packets |
GB2534225B (en) * | 2015-01-19 | 2017-02-22 | Imagination Tech Ltd | Rendering views of a scene in a graphics processing unit |
GB2534567B (en) * | 2015-01-27 | 2017-04-19 | Imagination Tech Ltd | Processing primitives which have unresolved fragments in a graphics processing system |
US9836874B2 (en) * | 2015-01-27 | 2017-12-05 | Splunk Inc. | Efficient polygon-clipping technique to reduce data transfer requirements for a viewport |
KR102354992B1 (ko) * | 2015-03-02 | 2022-01-24 | 삼성전자주식회사 | 양안 시차 영상에 대한 타일 기반 렌더링 방법 및 장치 |
US9619937B2 (en) * | 2015-03-05 | 2017-04-11 | Arm Limited | Methods and apparatus for processing computer graphics primitives in tile-based graphics rendering system |
KR102354989B1 (ko) * | 2015-04-14 | 2022-01-24 | 삼성전자주식회사 | 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치. |
GB2537661B (en) * | 2015-04-22 | 2018-09-26 | Imagination Tech Ltd | Tiling a primitive in a graphics processing system |
GB2537659B (en) * | 2015-04-22 | 2019-05-01 | Imagination Tech Ltd | Tiling a primitive in a graphics processing system |
US9875192B1 (en) * | 2015-06-25 | 2018-01-23 | Amazon Technologies, Inc. | File system service for virtualized graphics processing units |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
GB2542131B (en) * | 2015-09-08 | 2019-09-11 | Imagination Tech Ltd | Graphics processing method and system for processing sub-primitives |
GB2542133B (en) * | 2015-09-08 | 2020-05-27 | Imagination Tech Ltd | Graphics processing method and system for processing sub-primitives |
US10810179B2 (en) * | 2015-09-25 | 2020-10-20 | Microsoft Technology Licensing, Llc | Distributed graph database |
US20170090807A1 (en) * | 2015-09-26 | 2017-03-30 | Vishakha Gupta | Technologies for managing connected data on persistent memory-based systems |
US10147222B2 (en) * | 2015-11-25 | 2018-12-04 | Nvidia Corporation | Multi-pass rendering in a screen space pipeline |
US10430989B2 (en) * | 2015-11-25 | 2019-10-01 | Nvidia Corporation | Multi-pass rendering in a screen space pipeline |
US9928640B2 (en) * | 2015-12-18 | 2018-03-27 | Intel Corporation | Decompression and traversal of a bounding volume hierarchy |
GB2559042B (en) * | 2015-12-21 | 2019-06-05 | Imagination Tech Ltd | Allocation of tiles to processing engines in a graphics processing system |
GB2547250B (en) * | 2016-02-12 | 2020-02-19 | Geomerics Ltd | Graphics processing systems |
GB2543866B (en) * | 2016-03-07 | 2017-11-01 | Imagination Tech Ltd | Task assembly for SIMD processing |
US9934548B2 (en) * | 2016-03-09 | 2018-04-03 | Apple Inc. | Hierarchical techniques for storing graphics primitives |
EP3249612B1 (en) * | 2016-04-29 | 2023-02-08 | Imagination Technologies Limited | Generation of a control stream for a tile |
GB2550358B (en) * | 2016-05-16 | 2020-08-26 | Advanced Risc Mach Ltd | Graphics processing systems |
EP3526694A4 (en) * | 2016-10-11 | 2020-08-12 | Genomsys SA | PROCEDURE AND SYSTEM FOR SELECTIVE ACCESS TO STORED OR SENT BIOINFORMATICS DATA |
KR102646906B1 (ko) * | 2016-11-17 | 2024-03-12 | 삼성전자주식회사 | 타일 기반 렌더링 방법 및 장치 |
KR20180056316A (ko) * | 2016-11-18 | 2018-05-28 | 삼성전자주식회사 | 타일-기반 렌더링을 수행하는 방법 및 장치 |
GB2561807B (en) * | 2017-01-12 | 2019-09-25 | Imagination Tech Ltd | Computing systems and methods for processing graphics data using cost indications for sets of tiles of a rendering space |
GB2560709B (en) * | 2017-03-14 | 2021-02-24 | Imagination Tech Ltd | Graphics processing method and system for processing sub-primitives |
US10891773B2 (en) * | 2017-04-07 | 2021-01-12 | Intel Corporation | Apparatus and method for efficient graphics virtualization |
US11145079B2 (en) * | 2017-09-25 | 2021-10-12 | Texas Instruments Incorporated | Method and apparatus for arbitrary output shape processing of an image |
US20190042304A1 (en) * | 2017-12-03 | 2019-02-07 | Intel Corporation | [ice] architecture and mechanisms to accelerate tuple-space search with intergrated gpu |
GB2569342B (en) * | 2017-12-14 | 2019-12-11 | Imagination Tech Ltd | Multi-view Primitive blocks |
GB2572617B (en) * | 2018-04-05 | 2021-06-16 | Imagination Tech Ltd | Blending hardware |
GB2600622B (en) * | 2018-04-05 | 2022-11-16 | Imagination Tech Ltd | Edge and depth processing hardware |
US10593097B2 (en) * | 2018-05-08 | 2020-03-17 | Qualcomm Technologies, Inc. | Distributed graphics processing |
GB2570173B (en) * | 2018-06-29 | 2020-02-12 | Imagination Tech Ltd | Conservative Rasterization |
US10740952B2 (en) * | 2018-08-10 | 2020-08-11 | Nvidia Corporation | Method for handling of out-of-order opaque and alpha ray/primitive intersections |
US10810785B2 (en) * | 2018-08-10 | 2020-10-20 | Nvidia Corporation | Method for forward progress tree traversal mechanisms in hardware |
US10885698B2 (en) * | 2018-08-10 | 2021-01-05 | Nvidia Corporation | Method for programmable timeouts of tree traversal mechanisms in hardware |
US10825230B2 (en) * | 2018-08-10 | 2020-11-03 | Nvidia Corporation | Watertight ray triangle intersection |
US10733782B2 (en) * | 2018-10-05 | 2020-08-04 | Arm Limited | Graphics processing systems |
EP3864627A1 (en) * | 2018-10-14 | 2021-08-18 | Bentley Systems, Incorporated | Conversion of infrastructure model geometry to a tile format |
GB2580179B (en) * | 2018-12-21 | 2021-08-18 | Imagination Tech Ltd | Tile-based scheduling |
EP3671651B1 (en) * | 2018-12-21 | 2024-03-27 | Imagination Technologies Limited | Primitive block generator for graphics processing systems |
CN111429556B (zh) * | 2018-12-21 | 2023-03-24 | 畅想科技有限公司 | 图形处理系统中的基于基元块的光栅化 |
US11244421B2 (en) * | 2019-01-29 | 2022-02-08 | Imagination Technologies Limited | Memory for storing untransformed primitive blocks |
CN112116519B (zh) * | 2019-06-19 | 2022-12-27 | 畅想科技有限公司 | 图形处理系统中的粗略深度测试 |
US11210821B2 (en) * | 2019-11-27 | 2021-12-28 | Arm Limited | Graphics processing systems |
US11216993B2 (en) * | 2019-11-27 | 2022-01-04 | Arm Limited | Graphics processing systems |
US11210847B2 (en) * | 2019-11-27 | 2021-12-28 | Arm Limited | Graphics processing systems |
GB2591802B (en) * | 2020-02-07 | 2022-03-23 | Imagination Tech Ltd | Graphics processing method and system for rendering items of geometry based on their size |
GB2586297B (en) * | 2020-02-10 | 2022-03-02 | Imagination Tech Ltd | Data structures, methods and tiling engines for storing tiling information in a graphics processing system |
CN113256479A (zh) * | 2020-02-13 | 2021-08-13 | 畅想科技有限公司 | 用于在图形处理系统中平铺图元的方法和平铺引擎 |
US11663777B2 (en) * | 2020-03-15 | 2023-05-30 | Intel Corporation | Apparatus and method for motion blur with a dynamic quantization grid |
US11189073B2 (en) * | 2020-03-20 | 2021-11-30 | Arm Limited | Graphics processing |
US11321903B2 (en) * | 2020-03-27 | 2022-05-03 | Advanced Micro Devices, Inc. | Bounding volume hierarchy compression |
US11335061B2 (en) * | 2020-07-30 | 2022-05-17 | Apple Inc. | Ray intersection data structure with many-to-many mapping between bounding regions and primitives |
EP4016462A1 (en) * | 2020-12-18 | 2022-06-22 | Imagination Technologies Limited | Graphics processing systems and methods |
US20220398004A1 (en) * | 2021-06-10 | 2022-12-15 | Nvidia Corporation | User Interfaces and Methods for Generating a New Artifact Based on Existing Artifacts |
-
2014
- 2014-05-29 GB GB1409530.1A patent/GB2526598B/en active Active
-
2015
- 2015-05-19 DE DE102015107869.4A patent/DE102015107869A1/de active Pending
- 2015-05-28 CN CN201510284863.0A patent/CN105139330B/zh active Active
- 2015-05-28 US US14/724,484 patent/US10957097B2/en active Active
-
2020
- 2020-09-30 US US17/039,564 patent/US11481952B2/en active Active
-
2022
- 2022-10-06 US US17/961,359 patent/US20230038653A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090174706A1 (en) * | 2007-11-30 | 2009-07-09 | Howson John W | Multi-core geometry processing in a tile based rendering system |
CN102292748A (zh) * | 2008-12-19 | 2011-12-21 | 想象技术有限公司 | 基于区块的3d计算机图形系统中的多级显示控制列表 |
CN102265309A (zh) * | 2008-12-23 | 2011-11-30 | 想象技术有限公司 | 基于图块的3d计算机图形系统中的显示列表控制流分组 |
CN103098094A (zh) * | 2010-09-10 | 2013-05-08 | 想象技术有限公司 | 用于基于图块的3d计算机图形系统的可随机访问的无损参数数据压缩 |
US20130265298A1 (en) * | 2011-10-07 | 2013-10-10 | Nexell Co., Ltd. | Graphic processing method and apparatus |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954782B2 (en) | 2013-03-29 | 2024-04-09 | Advanced Micro Devices, Inc. | Hybrid render with preferred primitive batch binning and sorting |
US11880926B2 (en) | 2013-03-29 | 2024-01-23 | Advanced Micro Devices, Inc. | Hybrid render with deferred primitive batch binning |
CN106897143A (zh) * | 2015-12-21 | 2017-06-27 | 想象技术有限公司 | 对图形处理系统中的处理引擎的区片分配 |
CN106897143B (zh) * | 2015-12-21 | 2022-02-25 | 想象技术有限公司 | 图形处理系统和在图形处理系统中处理基元片段的方法 |
CN107169916B (zh) * | 2016-03-07 | 2023-01-13 | 想象技术有限公司 | 用于simd处理的任务组合 |
CN107169916A (zh) * | 2016-03-07 | 2017-09-15 | 想象技术有限公司 | 用于simd处理的任务组合 |
CN107341283A (zh) * | 2016-04-29 | 2017-11-10 | 想象技术有限公司 | 用于图块的控制流的生成 |
CN115828828A (zh) * | 2016-04-29 | 2023-03-21 | 想象技术有限公司 | 用于图块的控制流的生成 |
CN107341283B (zh) * | 2016-04-29 | 2022-11-29 | 想象技术有限公司 | 用于图块的控制流的生成 |
CN109643460B (zh) * | 2016-08-29 | 2023-08-15 | 超威半导体公司 | 使用推迟图元批量合并和分类的混合渲染器 |
CN109643460A (zh) * | 2016-08-29 | 2019-04-16 | 超威半导体公司 | 使用推迟图元批量合并和分类的混合渲染器 |
CN109979000A (zh) * | 2017-12-14 | 2019-07-05 | 想象技术有限公司 | 多视图图元块 |
CN111489282A (zh) * | 2019-01-29 | 2020-08-04 | 畅想科技有限公司 | 用于存储未变换图元块的存储器 |
CN111489282B (zh) * | 2019-01-29 | 2023-10-31 | 畅想科技有限公司 | 用于存储未变换图元块的存储器 |
CN112214809A (zh) * | 2020-10-16 | 2021-01-12 | 安徽工程大学 | 一种图元随机排列方法及装置 |
CN112214809B (zh) * | 2020-10-16 | 2023-11-17 | 安徽工程大学 | 一种图元随机排列方法及装置 |
CN115546386A (zh) * | 2021-06-30 | 2022-12-30 | 想象技术有限公司 | 图形处理系统和渲染方法 |
CN115546386B (zh) * | 2021-06-30 | 2024-02-06 | 想象技术有限公司 | 图形处理系统及制造方法、渲染方法、介质和制造系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150348306A1 (en) | 2015-12-03 |
CN105139330B (zh) | 2022-03-29 |
US10957097B2 (en) | 2021-03-23 |
GB201409530D0 (en) | 2014-07-16 |
US11481952B2 (en) | 2022-10-25 |
US20210027519A1 (en) | 2021-01-28 |
GB2526598A (en) | 2015-12-02 |
GB2526598B (en) | 2018-11-28 |
US20230038653A1 (en) | 2023-02-09 |
DE102015107869A1 (de) | 2015-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105139330A (zh) | 向图元块分配图元 | |
US10475228B2 (en) | Allocation of tiles to processing engines in a graphics processing system | |
US20240233270A1 (en) | Rendering views of a scene in a graphics processing unit | |
CN107169916B (zh) | 用于simd处理的任务组合 | |
CN106575442B (zh) | 使用通过自适应着色的纹理查找的带宽缩减 | |
EP2946364B1 (en) | Rendering graphics data using visibility information | |
CN111489282B (zh) | 用于存储未变换图元块的存储器 | |
US11562533B2 (en) | Assembling primitive data into multi-view primitive blocks in a graphics processing system | |
CN107392836A (zh) | 使用图形处理管线实现的立体多投影 | |
CN106067187B (zh) | 在图形处理系统中对基元分块 | |
EP3866119B1 (en) | Data structures, methods and primitive block generators for storing primitives in a graphics processing system | |
US10872469B2 (en) | System and method for subdividing large polygon mesh datasets into hierarchical subsets for level-of-detail use | |
CN103370731B (zh) | 估计虚拟环境中的遮挡的方法 | |
CN115375821A (zh) | 一种图像渲染方法、装置及服务器 | |
CN114429512A (zh) | 一种选煤厂bim和实景三维模型的融合展示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |