用于图形处理系统的经过变换的几何结构数据高速缓存技术方案

技术编号:24710149 阅读:40 留言:0更新日期:2020-07-01 00:17
本申请涉及用于图形处理系统的经过变换的几何结构数据高速缓存。高速缓存包括:存储器,用于将多个经过变换的基元块存储在高速缓存中,每一经过变换的基元块包括用于一个或多个基元的经变换的几何结构数据;控制逻辑,用于维持用于存储在高速缓存中的多个经变换的基元块中的计数器,其指示正由光栅化逻辑处理的需要访问经变换的基元块的多个平铺块中的平铺块的数目,当光栅化逻辑的任一阶段指示平铺块不再需要访问经变换的基元块时计数器被更新;当高速缓存为满时响应于接收到用以将新的经变换的基元块添加到高速缓存的请求,基于与经变换的基元块相关联的计数器从高速缓存选择要收回的经变换的基元块;及从高速缓存收回选定的经变换的基元块。

【技术实现步骤摘要】
用于图形处理系统的经过变换的几何结构数据高速缓存
本申请涉及图形处理系统,并且具体来说,涉及用于在图形处理系统中存储经过变换的几何结构数据的方法、系统和高速缓存。
技术介绍
图形处理系统被配置成例如从在计算机系统上运行的应用程序(例如游戏应用程序)接收图形数据,并对来自图形数据的图像进行渲染以提供渲染输出。举例来说,应用程序可以生成场景的3D模型并输出表示场景中的对象的几何结构数据。具体地说,应用程序可以将每个对象划分成多个基元(即,简单的几何形状,例如但不限于可以被应用纹理的矩形、三角形、线和点),所述多个基元由一个或多个顶点的位置限定。在这些状况下,由应用程序输出的几何结构数据可以包含标识每个顶点的信息(例如顶点在世界空间中的坐标)和指示由顶点形成的基元的信息。图形处理系统接着将所接收的几何结构数据转换成可以显示在屏幕上的图像。图形处理系统可以例如实施即时模式渲染(IMR)或基于平铺块的渲染(TBR)。在IMR中,将整个场景作为整体进行渲染。与此对比,在TBR中,使用被划分成被称为平铺块的子区段的渲染空间对场景进行渲染,其中可针对每个平铺块独立地执行渲染过程的至少一部分。平铺块可以具有任何合适形状,但通常为矩形(其中术语“矩形”包含正方形)。TBR的优点为,可以在渲染期间使用快速、片上存储器以用于颜色、深度和模板缓冲区操作,这与IMR相比允许显著减少系统存储器带宽,而不需要足够大以同时存储用于整个场景的数据的片上存储器。TBR涉及两个关键阶段:几何结构处理阶段;以及光栅化阶段。在几何结构处理阶段期间,将从应用程序(例如游戏应用程序)接收的几何结构数据(例如限定基元的顶点)从世界空间坐标变换成屏幕空间坐标。接着创建至少部分地落在平铺块的界限内的经过变换的基元(例如三角形)的每平铺块列表。在光栅化阶段期间,对每个平铺块单独地渲染(即,将经过变换的基元映射到像素并且针对平铺块中的每个像素标识颜色)。这可以包括标识哪个(哪些)基元在每个像素处是可见的。接着可以由每个像素处的可见基元的外观确定所述像素的颜色,所述可见基元可以由应用于所述像素处的纹理和/或在所述像素上运行的像素着色器程序限定。像素着色器程序描述将针对给定像素执行的操作。对每个平铺块单独地渲染会使图形处理系统能够在光栅化阶段中对特定平铺块进行渲染时仅检索与所述平铺块相关的经过变换的基元数据,这会使针对存储器(例如中间缓冲区)的带宽要求保持为最小值。一旦已经针对每个像素标识出颜色值,就将颜色值写出到存储器(例如帧缓冲区),直到已经对整个场景进行渲染为止。一旦已经对整个场景进行渲染,就可以将所述场景例如显示在屏幕上。图1示出示例TBR图形处理系统100。系统100包括存储器1021、1022、1023、1024、几何结构处理逻辑104以及光栅化逻辑106。存储器1021、1022、1023和1024中的两个或多于两个可以实施于存储器的同一个物理单元中。几何结构处理逻辑104实施TBR的几何结构处理阶段。几何结构处理逻辑104包括变换逻辑108和平铺引擎110。变换逻辑108从应用程序(例如游戏应用程序)接收几何结构数据(例如顶点、基元和/或补片)并将几何结构数据变换到渲染空间(例如屏幕空间)中。变换逻辑108还可以执行例如裁剪和剔除的功能以移除落在视锥外的几何结构数据(例如基元或补片),和/或应用所属领域的技术人员所知的照明/属性处理。经过变换的几何结构数据(例如顶点、基元和/或补片)(i)存储在存储器1022中,并(ii)被提供到平铺引擎110。平铺引擎110从经过变换的几何结构数据生成用于每个平铺块的经过变换的基元的列表,所述经过变换的基元至少部分地落在所述平铺块内。所述列表可以被称作显示列表或经过变换的显示列表。在一些状况下,经过变换的显示列表包括到与至少部分地落在平铺块内的基元相关的经过变换的几何结构数据(例如顶点数据)的指针或链接。光栅化逻辑106实施TBR的光栅化阶段。具体地说,光栅化逻辑106通过以下操作而以逐平铺块的方式对基元进行渲染:从存储器1023提取用于平铺块的显示列表,并接着针对落在如由用于所述平铺块的显示列表所指示的平铺块内的基元从存储器1022提取经过变换的几何结构数据;以及基于经过变换的几何结构数据对用于所述平铺块的基元进行渲染。在一些状况下,光栅化逻辑106可以包括提取逻辑112、隐藏表面移除(HSR)逻辑114和纹理化/着色逻辑116。在这些状况下,提取逻辑112从存储器1023提取每个显示列表,并对于每个显示列表,针对落在如由对应显示列表所指定的平铺块内的基元从存储器1022提取经过变换的几何结构数据。接着将用于特定平铺块的经过变换的几何结构数据提供到HSR逻辑114,HSR逻辑114移除隐藏(例如被其它基元片段隐藏)的基元片段。术语“片段”在本文中用于意指采样点处的基元的样本,所述样本将被处理以对图像的像素进行渲染。在一些示例中,可以存在像素到片段的一对一映射。然而,在其它示例中,片段可以多于像素,并且此过采样可以允许像素值的较高质量渲染,例如通过促进可以应用于多个片段以用于对每个像素值进行渲染的抗混叠和其它滤波器。接着将其余片段(在隐藏表面移除之后)传递到纹理化/着色逻辑116,纹理化/着色逻辑116对基元片段执行纹理化和/或着色以确定被渲染图像的像素值。接着将用于平铺块的被渲染像素值存储在存储器1024(例如帧缓冲区)中。光栅化逻辑106处理每个平铺块,并且当整个图像已经被渲染并存储在存储器1024(例如帧缓冲区)中时,所述图像可以从图形处理系统100被输出并以任何合适方式被使用,例如显示在显示器上、存储在存储器中或传输到另一个装置等。在片段在由纹理化/着色逻辑116处理之前由HSR逻辑114处理的意义上,图1所展示的TBR图形处理系统100是“推迟的”渲染系统。在其它示例中,图形处理系统可能并非推迟的渲染系统,在此状况下,将会在将HSR应用于片段之前将纹理化/着色应用于那些片段。在许多状况下,经过变换的几何结构数据可能相当大。这在未经变换的几何结构数据与经过变换的几何结构数据之间存在大扩展比率的情况下(例如当由变换逻辑108执行镶嵌时)尤其如此。因此,如英国公开专利申请GB2458488和GB2542133中所描述,一些TBR图形处理系统使用“未经变换的显示列表”,其指示哪些未经变换的基元一旦经过变换就将至少部分地落在每个平铺块的界限内。因而,未经变换的显示列表提及未经变换的基元,而非经过变换的基元。举例来说,未经变换的显示列表可以包括到与在被变换时将至少部分地落在平铺块内的未经变换的基元相关的未经变换的几何结构数据(例如顶点数据)的指针或链接。这意味着经过变换的几何结构数据不需要从几何结构处理逻辑104提供到存储器1022,或存储在存储器1022中。然而,在这些系统中,未经变换的显示列表中所提及的未经变换的几何结构数据又在光栅化阶段中被变换。尽管这意味着几何结构数据在一些状况下被变换两次,但避免将经过变换的几何结构数据传送到存储器并存储所述经过变换的几何结构数据的延迟本文档来自技高网...

【技术保护点】
1.一种将经过变换的基元块存储在基于平铺块的渲染图形处理系统的高速缓存中的方法(1400),所述基于平铺块的渲染图形处理系统具有细分成可与基元相关联的多个平铺块的渲染空间及在多个阶段中基于平铺块对基元进行光栅化的光栅化逻辑,所述方法(1400)包括:/n将多个经过变换的基元块存储在所述高速缓存中,每一经过变换的基元块包括用于一个或多个基元的经过变换的几何结构数据(1402);/n维持用于存储在所述高速缓存中的所述多个经过变换的基元块中的每一个的计数器,其指示当前正由所述光栅化逻辑处理的需要访问所述经过变换的基元块的所述多个平铺块中的平铺块的数目,当所述光栅化逻辑的任一阶段指示平铺块不再需要访问经过变换的基元块时,用于所述经过变换的基元块的所述计数器被更新(1404);/n当所述高速缓存中没有足够的闲置存储器来存储新的经过变换的基元块时,响应于接收到将存储在所述高速缓存中的所述新的经过变换的基元块,基于与经过变换的基元块相关联的所述计数器从所述高速缓存选择要收回的经过变换的基元块(1406,1408,1410);以及/n从所述高速缓存收回选定的经过变换的基元块(1412)。/n

【技术特征摘要】
20181221 GB 1821133.4;20181221 GB 1821139.1;2018121.一种将经过变换的基元块存储在基于平铺块的渲染图形处理系统的高速缓存中的方法(1400),所述基于平铺块的渲染图形处理系统具有细分成可与基元相关联的多个平铺块的渲染空间及在多个阶段中基于平铺块对基元进行光栅化的光栅化逻辑,所述方法(1400)包括:
将多个经过变换的基元块存储在所述高速缓存中,每一经过变换的基元块包括用于一个或多个基元的经过变换的几何结构数据(1402);
维持用于存储在所述高速缓存中的所述多个经过变换的基元块中的每一个的计数器,其指示当前正由所述光栅化逻辑处理的需要访问所述经过变换的基元块的所述多个平铺块中的平铺块的数目,当所述光栅化逻辑的任一阶段指示平铺块不再需要访问经过变换的基元块时,用于所述经过变换的基元块的所述计数器被更新(1404);
当所述高速缓存中没有足够的闲置存储器来存储新的经过变换的基元块时,响应于接收到将存储在所述高速缓存中的所述新的经过变换的基元块,基于与经过变换的基元块相关联的所述计数器从所述高速缓存选择要收回的经过变换的基元块(1406,1408,1410);以及
从所述高速缓存收回选定的经过变换的基元块(1412)。


2.根据权利要求1所述的方法(1400),其中维持用于经过变换的基元块的计数器包括当所述光栅化逻辑开始处理与所述经过变换的基元块相关联的平铺块时调节所述计数器以指示额外平铺块当前正由所述光栅化逻辑处理并且需要访问所述经过变换的基元块。


3.根据权利要求2所述的方法(1400),其中调节用于经过变换的基元块的所述计数器以指示额外平铺块当前正由所述光栅化逻辑处理且需要访问所述经过变换的基元块包括使所述计数器递增。


4.根据权利要求1所述的方法(1400),其中维持用于经过变换的基元块的计数器包括当所述光栅化逻辑的任一阶段指示与所述经过变换的基元块相关联的平铺块不再需要访问所述经过变换的基元块时,调节所述计数器以指示少一个的平铺块当前正由所述光栅化逻辑处理并且需要访问所述经过变换的基元块。


5.根据权利要求4所述的方法(1400),其中调节用于经过变换的基元块的所述计数器以指示少一个的平铺块当前正由所述光栅化逻辑处理并且需要访问所述经过变换的基元块包括使所述计数器递减。


6.根据权利要求4所述的方法(1400),其中所述光栅化逻辑的所述多个阶段包括隐藏表面移除阶段,且所述方法进一步包括从所述隐藏表面移除阶段接收以下指示:当经过变换的基元块的所述基元中无一者经受住所述隐藏表面移除阶段时,与所述经过变换的基元块相关联的平铺块不再需要访问所述经过变换的基元块。


7.根据权利要求4所述的方法(1400),其中所述光栅化逻辑的所述多个阶段包括隐藏表面移除阶段,且所述隐藏表面移除阶段包括:(i)深度测试子阶段,和(ii)标签缓冲区子阶段;且所述方法进一步包括从所述隐藏表面移除阶段接收以下指示:当经过变换的基元块经受不住所述深度测试子阶段或所述标签缓冲区子阶段时,与所述经过变换的基元块相关联的平铺块不再需要访问所述经过变换的基元块。


8.根据权利要求7所述的方法(1400),其中当经过变换的基元块的所述基元中无一者通过在所述深度测试子阶段中执行的深度测试时,所述经过变换的基元块经受不住所述深度测试子阶段。


9.根据权利要求7或权利要求8所述的方法(1400),其中当经过变换的基元块经受住所述深度测试子阶段但所述经过变换的基元块的基元中无一者从所述标签缓冲区子阶段输出时,所述经过变换的基元块经受不住所述标签缓冲区子阶段。


10.根据权利要求7或权利要求8所述的方法(1400),其中所述标签缓冲区子阶段包括标签缓冲区,其被配置成存储:(i)用于平铺块的每一样本位置的标识符,其用以标识所述样本位置处的可见基元,及(ii)查找表,其被配置成存储用于每一经过变换的基元块的指示是否接收到与每一经过变换的基元块相关的基元片段的信息,且所述方法进一步包括在所述标签缓冲区子阶段:
接收经受住了所述深度测试子阶段的基元片段;
将标识对应的样本...

【专利技术属性】
技术研发人员:罗伯特·布里格约翰·豪森杨喜乐
申请(专利权)人:畅想科技有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1