CN101176119B - 平铺式预取和高速缓冲存储的深度缓冲器 - Google Patents

平铺式预取和高速缓冲存储的深度缓冲器 Download PDF

Info

Publication number
CN101176119B
CN101176119B CN2006800166848A CN200680016684A CN101176119B CN 101176119 B CN101176119 B CN 101176119B CN 2006800166848 A CN2006800166848 A CN 2006800166848A CN 200680016684 A CN200680016684 A CN 200680016684A CN 101176119 B CN101176119 B CN 101176119B
Authority
CN
China
Prior art keywords
pixel
pixels
block
depth value
level
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.)
Expired - Fee Related
Application number
CN2006800166848A
Other languages
English (en)
Other versions
CN101176119A (zh
Inventor
迈克尔·休·安德森
丹·明伦·庄
杰弗里·希普佩
拉雅·拉金德尔库马尔·达万
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101176119A publication Critical patent/CN101176119A/zh
Application granted granted Critical
Publication of CN101176119B publication Critical patent/CN101176119B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Abstract

一种3D图形管线包含对深度像素块的高速缓冲存储器进行馈送的预取机制。所述预取机制可为预测性的,其使用来自先前管线级的三角形几何信息来预装填所述高速缓冲存储器,因而实现存储器带宽效率的增加。可视需要利用z值压缩技术来实现功率消耗和存储器带宽的进一步减少。

Description

平铺式预取和高速缓冲存储的深度缓冲器
技术领域
本发明大体上涉及图形处理器,且更特定来说本发明涉及包含在图形处理器中的3D图形管线。
背景技术
已利用图形引擎在固定的显示装置(例如计算机和电视机屏幕)上显示三维(3D)图像。这些引擎通常包含在由常规交流电源插座供电的桌面系统中,且因此不会显著受到功率消耗限制的约束。然而目前的趋势是将3D图形引擎并入到电池供电的手持装置中。此类装置的实例包含移动电话和个人数字助理(PDA)。然而不幸的是,常规图形引擎消耗大量的功率且因此不能良好地适用于这些低功率操作环境。
图1是包含在常规3D图形引擎中的基本Open GL光栅化管线的示意性框图。如图示,此实例的光栅化管线包含三角形设置级101、像素遮影级102、纹理映射级103、纹理混合级104、剪切测试级105、alpha测试级106、模板测试级107、隐藏表面去除(HSR)级108、alpha混合级109以及逻辑操作级110。
在3D图形系统中,要显示的每一对象通常被划分为由顶点信息界定的表面三角形,但也可利用其它图元形状。而且通常,图形管线经设计以处理对象或图像的连续成批的三角形。任一给定批次的三角形可能与另一批次的三角形在视觉上重叠,且给定批次内的三角形也可能彼此重叠。
参看图1,三角形设置级101通过计算在稍后管线级执行的计算中将使用的设置系数来“设置”每一三角形。
像素遮影级102使用设置系数来计算每个三角形涵盖哪些像素。由于三角形可能彼此重叠,因此具有不同深度的多个像素可能位于屏幕显示上的同一点处。特定来说,像素遮影级101使用顶点信息对每一像素插入颜色、模糊度、深度值、纹理坐标、alpha值等。可采用多种遮影技术中的任一种来实现此目的,且遮影操作可基于每个三角形或每个像素而发生。
纹理映射级103和纹理混合级104用以将纹理添加和混合到三角形处理批次中的每一像素内。非常概括地,这是通过根据包含在顶点信息内的纹理坐标将预定义纹理映射到像素上来完成的。和遮影的情况一样,可采用多种技术来实现纹理化。而且,也可实施已知为模糊度处理的技术。
剪切测试级105用以丢弃包含在落在经显示场景的视场外的三角形部分(片段)中的像素。通常,这是通过确定像素是否位于所谓的剪切矩形内来完成的。
Alpha测试单元106基于与三角形的片段(更准确地说,包含在片段中的像素)相关联的alpha值(透明度值)与参考alpha值之间的比较而有条件地丢弃所述片段。类似地,模板测试基于每一片段与存储的模板值之间的比较而有条件地丢弃片段。
HSR级108(也称为深度测试级)基于具有相同显示位置的其它像素的深度值而丢弃包含在三角形片段中的像素。通常,这是通过将正经受深度测试的像素的z轴值(深度值)与存储在所谓z缓冲器(或深度缓冲器)的相应位置中的z轴值相比较来完成的。在经测试像素的z轴值指示该像素将被z轴值存储在z缓冲器中的另一像素阻挡而看不见时丢弃所述经测试像素。另一方面,在经测试像素将不被阻挡而看不见的情况下用经测试像素的z轴值覆写z缓冲器值。在所述方式中,丢弃被阻挡而看不见的下层像素,而保留上覆像素。
alpha混合级109基于alpha值将经渲染像素与颜色缓冲器中先前存储的像素组合,以实现对象的透明度。
逻辑操作单元110一般地表示用于最终获得像素显示数据的其余杂项管线处理。
在任何图形系统中,期望尽可能地节省处理器和存储器带宽,同时维持满意的性能。在带宽可能受限的便携式或手持装置的情况下尤其如此。而且,如先前说明,行业中尤其需要在处理3D图形以用于在便携式或手持装置上显示时最小化功率消耗并提高带宽效率。
发明内容
根据本发明实施例的一个方面,提供一种图形处理器,其包含光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据。所述处理器进一步包含存储器,其存储由所述光栅化管线的处理级中的至少一者利用的数据,且还包含预取机制,其在经处理像素到达所述至少一个处理级之前检索由所述至少一个处理级利用的关于所述经处理像素的数据。
根据本发明实施例的又一方面,提供一种图形处理器,其包含光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据,其中所述处理级包含隐藏表面去除(HSR)级。所述处理器进一步包含:深度缓冲器,其存储先前渲染的像素的深度值;存储器控制器,其检索所述先前渲染的像素的深度值;以及高速缓冲存储器,其耦合到所述管线的HSR级且存储由存储器控制器检索的深度值。
根据本发明实施例的又一方面,提供一种图形处理器,其包含光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据,其中处理级包含隐藏表面去除(HSR)级。所述处理器进一步包含:深度缓冲器,其存储二维像素块的深度值;块地址生成器,其产生包含经处理像素的二维像素块的块地址;高速缓冲存储器,其耦合到所述光栅化处理器的HSR级;以及存储器控制器,其响应于所述块地址而从深度缓冲器中检索所述二维像素块的深度值,并将所述深度值存储在所述高速缓冲存储器中。
根据本发明实施例的又一方面,提供一种图形处理器,其包含:光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据;以及用于从主存储器预取数据并在像素数据通过所述光栅化管线到达所述处理级中的至少一者之前将所述数据供应到所述至少一个处理级的装置。
根据本发明实施例的又一方面,提供一种图形处理器,其包含光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据,其中处理级包含隐藏表面去除(HSR)级。所述处理器进一步包含:分级深度缓冲器,其存储二维像素块的深度值;随机存取存储器,其耦合到所述HSR级且存储所述二维像素块的深度值的最大深度值和最小深度值;块地址生成器,其产生包含经处理像素的二维像素块的块地址;高速缓冲存储器,其耦合到所述光栅化处理器的HSR级;以及存储器控制器,其响应于所述块地址而从深度缓冲器中检索所述二维像素块的深度值,并将所述深度值存储在所述高速缓冲存储器中。
根据本发明实施例的又一方面,提供一种图形处理器,其包含光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据,其中所述处理级包含隐藏表面去除(HSR)级。所述处理器进一步包含深度缓冲器,所述深度缓冲器包含与由所述光栅化管线渲染的像素数据相关联的深度值数据的二维块,其中所述图元对象数据指示图元形状,且其中二维块的深度值数据在所述二维块完全包含在含有经处理像素的图元形状内的情况下被压缩。
根据本发明实施例的又一方面,提供一种图形处理方法,其包含:将图元对象数据供应到光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据;将由所述光栅化管线的处理级中的至少一者利用的数据存储在存储器中;以及在所述经处理像素到达所述至少一个处理级之前从所述存储器预取由所述至少一个处理级利用的关于经处理像素的数据。
根据本发明实施例的又一方面,提供一种图形处理方法,其包括:将图元对象数据供应到光栅化管线,所述光栅化管线包含多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据,其中所述处理级包含隐藏表面去除(HSR)级;以及选择性压缩深度缓冲器中的深度值数据的二维块。所述图元对象数据指示图元形状,且二维块的深度值数据在所述二维块完全包含在含有经处理像素的图元形状内时被压缩。
附图说明
参看附图,从随后的具体实施方式将容易明了所揭示实施例的以上和其它方面,附图中:
图1是包含在3D图形引擎中的基本Open GL光栅化管线的实例的示意性框图;
图2说明根据本发明实施例的图形管线的电路块配置的简化实例;
图3是用于解释根据本发明另一实施例对像素块的预测性预取的视图;
图4说明根据本发明另一实施例的图形管线的电路块配置的简化实例;
图5说明本发明另一实施例的框图,其中预测性预取像素块的z值并将其存储在高速缓冲存储器中;
图6说明用于解释图5说明的深度高速缓冲存储器的操作的框图;以及
图7是用于根据本发明实施例解释作为z压缩的候选的像素块的视图。
具体实施方式
本文的一些实施例的特征至少部分在于一种3D图形管线,其包含对深度像素块(tile)的高速缓冲存储器进行馈送的预取机制。所述预取机制可为预测性的,其使用来自先前管线级的三角形几何信息来预装填高速缓冲存储器,因而实现存储器带宽效率的增加。
其它实施例的特征至少部分在于一种z值压缩技术,其实现功率消耗和存储器带宽的减少。
现在将描述若干优选但不是限制性的实施例。
3D图形管线的三角形设置块的前面可以是本文提到的命令块。命令块含有关于每个三角形的所有相关数据,包含像素屏幕位置信息。根据本发明的实施例,像素屏幕位置数据被向前馈送到管线中且由稍后管线级使用以计算像素处理所需要的数据的地址。到像素到达给定级时,与所述级相关联的值将已经在高速缓冲存储器中,因此实现带宽效率的改进。
图2是说明本发明实施例的简化框图。3D图形管线被描绘为具有命令块200和第一到第n管线块201a...201n。管线块中的至少一者可操作地配备有高速缓冲存储器202a...202d。通过预先将地址信息转发到管线级1、2、n-1和/或n,可能在经处理像素到达管线级之前从主存储器中检索相关数据。以此方式,增加了存储器吞吐量。
而且,在替代实施例中,预取机制伴随有预测机制以进一步提高存储器效率。这在稍后参看图3进行描述,图3涉及从深度缓冲器预测性预取z值(深度值)的实例。
三维(3D)光栅化管线利用“深度测试”来确定新处理的像素是否被先前渲染的像素遮挡。所述机制涉及存取“深度缓冲器”(也称为“z缓冲器”),在其中深度值(即,z值)被存储且在光栅化期间被检查。本质上将任一可见像素与观看者的距离存储为深度缓冲器中的深度值。随后,另一经处理的像素可能尝试占据屏幕上的同一位置。读取先前渲染的像素的深度值(即,在像素位置处的存储于深度缓冲器中的深度值)并将其与新处理的像素的值进行比较。如果比较结果指示新像素较靠近观看者,那么将其视为可见,且可用新像素的深度值覆写深度缓冲器的先前深度值。新像素进一步由管线处理,且最终在帧缓冲器中渲染。另一方面,如果比较结果指示新像素离观看者较远,那么认为其不可见,且可丢弃新像素并维持深度缓冲器的先前深度值。此过程在本文中称为隐藏表面去除(HSR)。
图3说明可如何将三角形条带映射到z值像素块上的实例。三角形标记为A到E,且以该次序出现在管线上。像素块标为1-13。为了处理三角形A,需要像素块1、2、3、4、5和8。因此,从深度缓冲器中预取像素块1、2、3、4、5和8的z值并将其存储在高速缓冲存储器中。接着,为了处理三角形B,需要像素块4、5、8和9。然而,由于像素块4、5和8已存储在高速缓冲存储器中,因此仅必须从深度缓冲器中预取像素块9。三角形C也类似,仅必须预取像素块6。通过以此方式预测性高速缓冲存储像素块而提高存储器带宽效率。
图4是3D图形管线的实例的框图,其经配置以用于预取在管线的隐藏表面去除(HSR)块中将利用的z值。在图中,管线包含命令块400、三角形设置块401、像素遮影块402、HSR块403、纹理映射块404以及纹理混合块405。另外,HSR块403具备深度高速缓冲存储器406且可存取深度缓冲器407。
在操作中,将深度像素块的地址信息从命令块400直接转发到HSR块403。HSR块403经配置以根据地址信息从深度缓冲器407预取深度值,并接着将深度值存储在深度高速缓冲存储器406中。如此,当经处理像素通过管线到达HSR块403时,可从高速缓冲存储器406中快速检索先前渲染像素的深度值以用于HSR处理。
本发明实施例的深度缓冲器管理的预测性预取技术使其本身极度适合于使用所谓的分级z缓冲器,接下来描述其实例。
图5和6是说明本发明的另一实施例的功能框图,其中图6是用于解释图5说明的深度测试块504的操作的功能框图。
图5说明了命令引擎501、三角形设置块502、像素遮影块503、深度测试块504(含有分级z缓冲器,未图示)、存储器系统505(含有深度缓冲器)以及其余的管线块506。
在操作中,将来自命令引擎501的三角形数据施加于三角形设置块502。三角形设置块输出相应的深度系数、几何数据以及属性系数,其全部被施加于像素遮影块503。接着,像素属性和像素地址被像素遮影块503连同来自命令引擎501的三角形边界框数据和来自三角形设置块502的深度系数一起供应到深度测试块504。深度测试块504接着关于经处理像素和存储在高速缓冲存储器(未图示)中的深度值而执行深度测试。优选地,从存储器系统505预测性地检索深度值,并在深度测试实际执行之前将其存储在高速缓冲存储器中。经处理像素接着由于深度测试的结果而被丢弃,或以像素地址和像素属性的形式传输到其余管线块506。
如已经提到,图6是用于解释图5说明的深度测试块504的操作的功能框图。如图6所示,此实例的深度测试块通常包含像素块索引预测器601、像素块索引生成器602、深度插值器603、像素块测试块604、像素测试块607、属性缓冲器608以及深度高速缓冲存储器609。
属性缓冲器608用于在沿管线向下传递像素时存储传入像素的像素属性。深度块是管线,且属性缓冲器608匹配于所述管线。如下文将解释,discard_pixel信号实际上是针对流过管线621的像素的擦除或清除信号。
像素块索引预测器601利用边界框信息bounding_box来预测性产生指示由经处理三角形占据的像素块的一系列像素块索引。如先前结合图3所论述,通过预测性高速缓冲存储关于经处理三角形的像素块而提高存储器带宽效率。预取逻辑610利用来自像素块索引预测器601的像素块索引来控制深度高速缓冲存储器609的高速缓冲存储器读取块612。稍后将解释高速缓冲存储器读取块612的操作。然而,预取逻辑块610做出对高速缓冲存储器读取块612的早期像素块请求,使得像素测试块(下文解释)稍后请求的像素更有可能存在于高速缓冲存储器RAM中。
像素块索引生成器602从传入像素地址pixel_address_in产生像素块索引信号tile_inde_in。应注意,由于相同的像素块索引将已经由像素块索引预测器601较早预测,因此在像素块索引预测器601与像素块索引生成器602之间可共享逻辑。
深度插值器603使用深度系数z_coefficients和边界框信息bounding_box来针对传入的像素地址pixel_address_in实际光栅化深度值z_in。也可能包含深度插值器603作为遮影块的一部分(见图5)。然而在此实例中,深度插值器603已实施在深度测试块中,因为相同的插值器可用于在对于任何给定像素块仅存储系数的情况下解压缩z。在此方面,应注意深度插值器也出现在深度高速缓冲存储器块609内。
像素块测试块604本质上是分级z测试块且配置有极限表605和可见性检查块606。极限表605含有每一屏幕像素块的最大远深度值(z值)z_max_far和最小近深度值(z值)z_min_near。来自像素块索引生成器602的tile_index用作进入极限表605的地址,且因此,极限表605产生包含经处理像素的像素块的最小深度值z_min_near和最大深度值z_max_far。像素块的最小深度值z_min_near和最大深度值z_max_far接着随z_in施加于可见性检查块606。可见性检查块606将z_in与z_min_near和z_max_far相比较,其中比较结果具有三种可能的结论,即,z_in比像素块的z_max_far远,z_in比像素块的z_min_near近,或z_in比像素块的z_max_far近但比像素块的z_min_near远。
在z_in比像素块的z_max_far远的情况下,通过discard_pixel信号对属性缓冲器608的操作而丢弃像素。
在z_in比像素块的z_min_near近的情况下,像素可见且必须通过启用update_pixel信号并将图6中表示为update_pixel_tile_index、update_pixel_address、update pixel_z和update_pixel_z_coefficients的信号传输到高速缓冲存储器写入块617来更新。高速缓冲存储器写入块617包含高速缓冲存储器标签管理。当更新像素时,高速缓冲存储器写入块617用以更新高速缓冲存储器RAM 619并维持与外部存储器系统620的数据一致性。而且,当将像素块存储回高速缓冲存储器619或外部存储器系统620内时,高速缓冲存储器写入块617将像素块的深度信息pixel_z串流传输到极限生成器618。
极限生成器618在像素块被存储到存储器系统620内时计算其z_max_far和z_min_near。接着,启用update_tile信号,且将信号update_tile_index、z_max_far和z_min_near传输到像素块测试块604以便更新极限表605。
如先前提到,高速缓冲存储器写入块617接收信号update_pixel_tile_index、update_pixel_address、update_pixel_z和update_pixel_z_coefficients。update_pixel_tile_index信号本质上是高速缓冲存储器块索引(或高速缓冲存储器线索引)。update_pixel_address是用于定址个别像素的高速缓冲存储器地址。update_pixel_z是个别像素的个别深度值(z值)。update_pixel_z_coefficients信号含有用作z压缩技术的一部分的系数。也就是说,深度高速缓冲存储器609的压缩表611跟踪哪些像素块仅存储了其系数。当高速缓冲存储器读取块612遇到此类像素块时,从高速缓冲存储器RAM619读取系数,并接着使其通过深度插值器616以恢复个别深度值。
在z_in比像素块的z_max_far近但比像素块的z_min_near远的情况下,像素在像素块的最小值与最大值之间。如此,通过启用pixel_test_enable信号而执行个别像素测试。作为响应,由像素测试块607将request_pixel、request_pixel_tile_index和request_pixel_address信号发送到深度高速缓冲存储器609以请求先前经处理像素的深度值。request_pixel信号本质上是高速缓冲存储器读取命令,且request_pixel_tile_index和request_pixel_address分别是像素块和像素地址。响应于这些信号,高速缓冲存储器读取块612经由存储器接口613从高速缓冲存储器RAM 619检索先前经处理像素的所请求的z值。高速缓冲存储器读取块612包含高速缓冲存储器标签检查和管理。将请求的z值作为request_pixel_z信号供应到像素测试块607,像素测试块607接着确定经处理像素是否可见。如果像素被确定为不可见,那么如先前关于像素块测试块604所描述而启用discard_pixel信号。如果像素被确定为可见,那么启用update_pixel信号,且以与先前结合像素块测试块604所描述的相同方式来利用update_pixel_tile_index、update_pixel_address、update_pixel_z和update_pixel_z_coefficients信号。
应注意可实施另一等级的分级z缓冲器,其中如果三角形完全在像素块内,那么基于像素块的最大值和最小值而丢弃整个三角形。
图5和6的实施例利用其中存储并从深度缓冲器检索像素块的深度值的像素块操作模式。为了进一步提高带宽效率,可能期望压缩代表像素块的数据。下文描述根据本发明实施例的一种此类z压缩技术。
在此实施例的描述中,假定将深度缓冲器划分为像素块模式(例如4×4像素)且以像素块模式渲染三角形。
在管线过程早期,从与三角形相关联的顶点信息计算每个三角形的像素的深度值。通常,为此目的使用线性插值。
如此,如果像素块对应于z缓冲器中通过渲染三角形而更新的位置,那么像素块中的深度值可表示为线性函数:
Z(x,y)=Azx+Bzy+Cz
这里,x和y表示4×4像素块内每一像素的水平和垂直坐标。通过给出像素块的左上像素的深度值,所述值为(Z00)、Az和Bz,可通过插值以下方程来获得像素块的其余像素:
Zij=Az*i+Bz*j+Z00,(i=0~3,J=0~3)
因此,如果像素块可压缩,则不必向深度缓冲器更新其所有16个像素的深度值,而仅必须更新Z00、Az和Bz。这仅是常规像素块的信息的3/16,假定Az和Bz与Z00具有相同的数据精度。当从z缓冲器读回同一经压缩的像素块时,仅必须读取Z00、Az和Bz,并执行基于上述公式的解压缩函数来获得整个像素块的深度值。
仅可在像素块完全包含在三角形中时压缩像素块,如图7所说明。如图示,像素块A可压缩,而像素块B和C不可压缩,因为其与三角形边界交叉。对于确定像素块是否完全落在三角形内来说,检查像素块的所有四个角落像素是否均在三角形内通常就足够了。
由于不是每个像素块均可压缩,因此可利用芯片上存储器来存储旗标阵列(每个像素块1位),所述旗标可指示特定像素块在深度缓冲器中是否经压缩。当从深度缓冲器读取像素块时,检查其相应压缩旗标以确定是否需要数据的解压缩。当向深度缓冲器更新像素块时,如果其可压缩,那么将经压缩数据写入到深度缓冲器且设定相应压缩旗标。
在图式和说明书中,已揭示典型的优选实施例且,尽管陈述了特定实例,但其仅以一般和描述性意义而不是限制的目的来使用。因此应了解,本发明的范围将由所附权利要求书解释,而不是由示范性实施例解释。

Claims (28)

1.一种图形处理器,其包括:
光栅化管线,其包括多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据;
存储器,其存储由所述光栅化管线的所述处理级中的至少一者利用的数据;以及
预取机制,其在经处理像素到达所述至少一个处理级之前检索由所述至少一个处理级利用的关于所述经处理像素的数据,
其中所述至少一个处理级包括像素测试块,所述像素测试块将所述经处理像素的深度值与二维屏幕像素块的最小和最大深度值相比较,决定是否在所述比较的基础上执行像素测试,以及
其中所述像素测试将所述经处理像素的所述深度值与存储在所述存储器中的先前存储的深度值相比较。
2.根据权利要求1所述的图形处理器,其中所述经检索数据存储在所述光栅化管线的所述处理级中的所述至少一者的高速缓冲存储器中。
3.一种图形处理器,其包括:
光栅化管线,其包括多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据,其中所述处理级包含隐藏表面去除(HSR)级;
深度缓冲器,其存储由所述光栅化管线的HSR级利用的数据;以及
预取机制,其在经处理像素通过所述光栅化管线到达所述HSR级之前从所述深度缓冲器中检索由所述HSR级利用的关于所述经处理像素的数据,
其中所述HSR级包括像素测试块,所述像素测试块将所述经处理像素的深度值与二维屏幕像素块的最小和最大深度值相比较,决定是否在所述比较的基础上执行像素测试,以及
其中所述像素测试将所述经处理像素的所述深度值与存储在所述缓冲器中的先前存储的深度值相比较。
4.根据权利要求3所述的图形处理器,其中所述经检索数据存储在所述光栅化管线的所述HSR级的高速缓冲存储器中。
5.根据权利要求3所述的图形处理器,其中:
被所述光栅化管线的所述HSR级利用的所述数据包括二维屏幕像素块的深度值,以及
其中所述图形处理器进一步包括:像素块地址生成器,其产生包含经处理像素的所述二维屏幕像素块的像素块地址;以及
高速缓冲存储器,其耦合到所述光栅化处理器的所述HSR级,
其中所述预取机制包括存储器控制器,其响应于所述像素块地址而从所述深度缓冲器中检索所述二维屏幕像素块的深度值,并将所述深度值存储在所述高速缓冲存储器中。
6.根据权利要求5所述的图形处理器,其中所述深度缓冲器是分级深度缓冲器。
7.根据权利要求6所述的图形处理器,
其中所述分级深度缓冲器存储二维屏幕像素块的深度值,以及
其中所述高速缓冲存储器包括随机存取高速缓冲存储器,其耦合到所述HSR级且存储每个所述二维屏幕像素块的所述深度值中的最大深度值和最小深度值。
8.根据权利要求7所述的图形处理器,其中所述像素块测试块可操作以在所述经处理像素的深度值大于包含所述处理像素的所述屏幕像素块的最大深度值的情况下丢弃所述经处理像素。
9.根据权利要求7所述的图形处理器,其中所述像素块测试块可操作以在所述经处理像素的深度值小于包含所述经处理像素的所述屏幕像素块的最小深度值的情况下更新所述高速缓冲存储器。
10.根据权利要求9所述的图形处理器,其进一步包括像素测试块,所述像素测试块将所述经处理像素的深度值与存储在所述高速缓冲存储器中的先前存储的深度值相比较。
11.根据权利要求10所述的图形处理器,其中所述像素块测试块可操作以在所述经处理像素的深度值处于包含所述处理像素的所述屏幕像素块的最小与最大深度值之间的情况下启用所述像素测试块。
12.根据权利要求7所述的图形处理器,其进一步包括:像素块索引预测器块,所述像素块索引预测器块基于与所述经处理像素相关联的图元对象数据而产生屏幕像素块信息;及预取逻辑块,所述预取逻辑块基于由所述像素块索引预测器块产生的所述屏幕像素块信息来检索所述屏幕像素块的所述深度值。
13.根据权利要求3所述的图形处理器,其中:
所述深度缓冲器包括与由所述光栅化管线渲染的像素数据相关联的深度值数据的二维屏幕像素块,其中所述输入图元对象数据指示图元形状,且其中二维屏幕像素块的所述深度值数据在所述二维屏幕像素块完全包含在含有经处理像素的图元形状内的情况下被压缩。
14.根据权利要求13所述的图形处理器,其中所述图元形状是三角形。
15.根据权利要求14所述的图形处理器,其中所述二维屏幕像素块是4x4像素块。
16.根据权利要求13所述的图形处理器,其中所述深度值数据是通过存储描述所述二维屏幕像素块的深度值的相对值的方程的系数来压缩的。
17.根据权利要求16所述的图形处理器,其中所述方程是线性方程。
18.一种图形处理器,其包括:
光栅化管线,其包括多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据;以及
用于从主存储器预取数据并在像素数据通过所述光栅化管线到达所述处理级中的至少一者之前将所述数据供应到所述至少一个处理级的装置,
其中所述像素数据包括经处理像素的深度值,
其中所述至少一个处理级包括像用于将所述经处理像素的所述深度值与二维屏幕像素块的最小和最大深度值相比较,决定是否在所述比较的基础上执行像素测试的装置,以及
其中所述像素测试将所述经处理像素的所述深度值与存储在所述主存储器中的先前存储的深度值相比较。
19.根据权利要求18所述的图形处理器,其中所述至少一个处理级是隐藏表面去除(HSR)级。
20.根据权利要求19所述的图形处理器,其中用于预取的所述装置包括存储来自所述主存储器的数据且耦合到所述HSR级的高速缓冲存储器。
21.一种图形处理方法,其包括:
将图元对象数据供应到光栅化管线,所述光栅化管线包括多个连续布置的处理级,所述处理级从输入图元对象数据渲染出显示像素数据;
将由所述光栅化管线的所述处理级中的至少一者利用的数据存储在存储器中;以及
在经处理像素到达所述至少一个处理级之前从所述存储器预取由所述至少一个处理级利用的关于所述经处理像素的数据;
执行像素测试块,所述像素测试块将所述经处理像素的深度值与二维屏幕像素块的最小和最大深度值相比较;以及
决定是否在所述比较的基础上执行像素测试,其中所述像素测试将所述经处理像素的所述深度值与存储在所述存储器中的先前存储的深度值相比较。
22.根据权利要求21所述的方法,其进一步包括将所述经检索数据存储在所述光栅化管线的所述处理级中的所述至少一者的高速缓冲存储器中。
23.根据权利要求22所述的方法,其中所述至少一个处理级是隐藏表面去除(HSR)级。
24.根据权利要求23所述的方法,其中所述像素块测试包含在所述经处理像素的深度值小于含有所述经处理像素的所述屏幕像素块的最小深度值的情况下更新所述高速缓冲存储器。
25.根据权利要求24所述的方法,其进一步包括选择性执行像素测试,所述像素测试将所述经处理像素的深度值与存储在所述高速缓冲存储器中的先前存储的深度值相比较。
26.根据权利要求25所述的方法,其中所述像素块测试包含在所述经处理像素的深度值处于含有所述经处理像素的所述屏幕像素块的最小与最大深度值之间的情况下启用所述像素测试。
27.根据权利要求21所述的方法,其进一步包括基于与所述经处理像素相关联的图元对象数据而产生屏幕像素块信息,及基于所述屏幕像素块信息来预取屏幕像素块的深度值。
28.根据权利要求21所述的图形处理方法,进一步包括:
选择性压缩深度缓冲器中的深度值数据的二维屏幕像素块,其中所述图元对象数据指示图元形状,且其中二维屏幕像素块的深度值数据在所述二维屏幕像素块完全包含在含有经处理像素的图元形状内时被压缩。
CN2006800166848A 2005-03-21 2006-03-21 平铺式预取和高速缓冲存储的深度缓冲器 Expired - Fee Related CN101176119B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/086,474 US8089486B2 (en) 2005-03-21 2005-03-21 Tiled prefetched and cached depth buffer
US11/086,474 2005-03-21
PCT/US2006/010340 WO2006102380A1 (en) 2005-03-21 2006-03-21 Tiled prefetched and cached depth buffer

Publications (2)

Publication Number Publication Date
CN101176119A CN101176119A (zh) 2008-05-07
CN101176119B true CN101176119B (zh) 2012-05-16

Family

ID=36680626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800166848A Expired - Fee Related CN101176119B (zh) 2005-03-21 2006-03-21 平铺式预取和高速缓冲存储的深度缓冲器

Country Status (7)

Country Link
US (1) US8089486B2 (zh)
EP (1) EP1864256A1 (zh)
JP (2) JP4861403B2 (zh)
KR (2) KR101009521B1 (zh)
CN (1) CN101176119B (zh)
CA (1) CA2601452A1 (zh)
WO (1) WO2006102380A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9123173B2 (en) * 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US8300050B2 (en) * 2006-11-28 2012-10-30 Adobe Systems Incorporated Temporary low resolution rendering of 3D objects
US8059124B2 (en) 2006-11-28 2011-11-15 Adobe Systems Incorporated Temporary non-tiled rendering of 3D objects
ITMI20070038A1 (it) * 2007-01-12 2008-07-13 St Microelectronics Srl Dispositivo di renderizzazione per grafica a tre dimensioni con architettura di tipo sort-middle.
KR100883804B1 (ko) 2007-05-16 2009-02-16 박우찬 압축부 및 복원부를 포함하는 3차원 그래픽 처리 장치
CN101802872B (zh) * 2007-09-12 2016-06-15 爱立信电话股份有限公司 深度缓冲器压缩
US8040349B1 (en) 2007-12-04 2011-10-18 Nvidia Corporation System and method for structuring an A-buffer
US8169442B2 (en) * 2007-12-27 2012-05-01 Stmicroelectronics S.R.L. Graphic system comprising a fragment graphic module and relative rendering method
US8654135B1 (en) 2008-09-10 2014-02-18 Nvidia Corporation A-Buffer compression for different compression formats
US8130223B1 (en) * 2008-09-10 2012-03-06 Nvidia Corporation System and method for structuring an A-buffer to support multi-sample anti-aliasing
US8553041B1 (en) 2008-09-10 2013-10-08 Nvidia Corporation System and method for structuring an A-buffer to support multi-sample anti-aliasing
US8228337B1 (en) 2008-10-03 2012-07-24 Nvidia Corporation System and method for temporal load balancing across GPUs
US8427474B1 (en) * 2008-10-03 2013-04-23 Nvidia Corporation System and method for temporal load balancing across GPUs
KR101511273B1 (ko) * 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
GB2478909B (en) * 2010-03-19 2013-11-06 Imagination Tech Ltd Demand based texture rendering in a tile based rendering system
GB2487421A (en) * 2011-01-21 2012-07-25 Imagination Tech Ltd Tile Based Depth Buffer Compression
KR101782044B1 (ko) 2011-02-22 2017-09-26 삼성전자주식회사 그래픽 프로세서 및 조기 가시성 테스트 방법
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US9117302B2 (en) * 2011-11-30 2015-08-25 Qualcomm Incorporated Switching between direct rendering and binning in graphics processing using an overdraw tracker
CN104025180B (zh) * 2011-12-30 2016-03-23 英特尔公司 具有保守边界的五维光栅化
US9196083B2 (en) * 2012-01-16 2015-11-24 Intel Corporation Time-continuous collision detection using 3D rasterization
US9087409B2 (en) * 2012-03-01 2015-07-21 Qualcomm Incorporated Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values
US20130265305A1 (en) * 2012-04-04 2013-10-10 Jon N. Hasselgren Compressed Depth Cache
US9111392B2 (en) 2012-09-27 2015-08-18 Intel Corporation Stochastic depth buffer compression using generalized plane encoding
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US9336561B2 (en) 2012-12-19 2016-05-10 Intel Corporation Color buffer caching
GB2544679B (en) 2012-12-20 2017-08-16 Imagination Tech Ltd Tessellating patches of surface data in tile based computer graphics rendering
KR102048885B1 (ko) * 2013-05-09 2019-11-26 삼성전자 주식회사 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법
US9946658B2 (en) * 2013-11-22 2018-04-17 Nvidia Corporation Memory interface design having controllable internal and external interfaces for bypassing defective memory
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
KR102188543B1 (ko) 2014-02-07 2020-12-08 삼성전자주식회사 그래픽 처리 장치
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
KR102224845B1 (ko) 2014-07-22 2021-03-08 삼성전자주식회사 하이브리드 렌더링 방법 및 장치
KR102252374B1 (ko) 2014-09-05 2021-05-14 삼성전자주식회사 광선 추적 유닛 및 광선 데이터를 처리하는 방법
KR102282190B1 (ko) * 2014-09-22 2021-07-27 삼성전자 주식회사 렌더링 장치 및 방법
KR102327144B1 (ko) 2014-11-26 2021-11-16 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법
US9792722B2 (en) * 2014-12-18 2017-10-17 Mediatek Inc. Depth processing method and associated graphic processing circuit
GB2534567B (en) 2015-01-27 2017-04-19 Imagination Tech Ltd Processing primitives which have unresolved fragments in a graphics processing system
US10002455B2 (en) * 2015-04-20 2018-06-19 Intel Corporation Optimized depth buffer cache apparatus and method
US10380789B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Method and apparatus for efficient depth prepass
GB2565301A (en) * 2017-08-08 2019-02-13 Nokia Technologies Oy Three-dimensional video processing
GB2566114B (en) 2017-09-05 2020-12-30 Advanced Risc Mach Ltd Prefetching data
JP7051366B2 (ja) 2017-10-18 2022-04-11 株式会社東芝 情報処理装置、学習済モデル、情報処理方法、およびプログラム
CN109461113B (zh) * 2018-10-11 2021-07-16 中国人民解放军国防科技大学 一种面向数据结构的图形处理器数据预取方法及装置
CN112734897B (zh) * 2020-12-05 2024-04-02 西安翔腾微电子科技有限公司 一种图元光栅化触发的图形处理器深度数据预取方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614444B1 (en) * 1998-08-20 2003-09-02 Apple Computer, Inc. Apparatus and method for fragment operations in a 3D-graphics pipeline

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332664A (ja) * 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
JPH08221593A (ja) 1995-02-14 1996-08-30 Hitachi Ltd 図形表示装置
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
US5761720A (en) 1996-03-15 1998-06-02 Rendition, Inc. Pixel engine pipeline processor data caching mechanism
US6115047A (en) * 1996-07-01 2000-09-05 Sun Microsystems, Inc. Method and apparatus for implementing efficient floating point Z-buffering
US5933156A (en) * 1997-12-03 1999-08-03 Margolin; Jed Z-Buffer for row addressable graphics memory with flash fill
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6525726B1 (en) * 1999-11-02 2003-02-25 Intel Corporation Method and apparatus for adaptive hierarchical visibility in a tiled three-dimensional graphics architecture
AUPQ416699A0 (en) * 1999-11-19 1999-12-16 Dynamic Digital Depth Research Pty Ltd Depth map compression technique
US6801203B1 (en) * 1999-12-22 2004-10-05 Microsoft Corporation Efficient graphics pipeline with a pixel cache and data pre-fetching
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6885378B1 (en) 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US6798421B2 (en) * 2001-02-28 2004-09-28 3D Labs, Inc. Ltd. Same tile method
JP4740490B2 (ja) 2001-08-21 2011-08-03 任天堂株式会社 グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング
JP2003281564A (ja) 2002-03-20 2003-10-03 Victor Co Of Japan Ltd 画像生成装置
US7002571B2 (en) * 2002-06-04 2006-02-21 Intel Corporation Grid-based loose octree for spatial partitioning
FI20030072A (fi) * 2003-01-17 2004-07-18 Hybrid Graphics Oy Piiloalueiden poistomenetelmä
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7450120B1 (en) * 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614444B1 (en) * 1998-08-20 2003-09-02 Apple Computer, Inc. Apparatus and method for fragment operations in a 3D-graphics pipeline

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CHEN W Y ET AL.An efficient architecture for loop based data preloading.SIGMICRO NEWSLETTER USA23 1-2.1992,23(1-2),全文.
CHEN W Y ET AL.An efficient architecture for loop based data preloading.SIGMICRO NEWSLETTER USA23 1-2.1992,23(1-2),全文. *
PARK W-C ET AL.An Effective Pixel Rasterization Pipeline Architecture for 3DRendering Processors.IEEE TRANSACTIONS ON COMPUTERS52 11.2003,52(11),附图1-3,摘要,4.3节.
PARK W-C ET AL.An Effective Pixel Rasterization Pipeline Architecture for 3DRendering Processors.IEEE TRANSACTIONS ON COMPUTERS52 11.2003,52(11),附图1-3,摘要,4.3节. *
SZANTO P ET AL.High performance visibility testing with screen segmentation.EMBEDDED SYSTEMS FOR REAL-TIME MULTIMEDIA,2004.2004,摘要,第4,4.1-4.4节. *
WALTER ET AL.Enhancing and Optimizing the Render Cache.EGRW'02, PROCEEDINGS OF THE 13TH EUROGRAPHICS WORKSHOP ON RENDERING,2002.2002,23(1-2),全文. *

Also Published As

Publication number Publication date
EP1864256A1 (en) 2007-12-12
JP5296169B2 (ja) 2013-09-25
US8089486B2 (en) 2012-01-03
WO2006102380A1 (en) 2006-09-28
KR20090096750A (ko) 2009-09-14
US20060209078A1 (en) 2006-09-21
JP2008533628A (ja) 2008-08-21
CN101176119A (zh) 2008-05-07
KR20070114224A (ko) 2007-11-29
KR101009521B1 (ko) 2011-01-18
KR101036434B1 (ko) 2011-05-23
JP2012033173A (ja) 2012-02-16
JP4861403B2 (ja) 2012-01-25
CA2601452A1 (en) 2006-09-28

Similar Documents

Publication Publication Date Title
CN101176119B (zh) 平铺式预取和高速缓冲存储的深度缓冲器
US11182952B2 (en) Hidden culling in tile-based computer generated images
US9916643B1 (en) Multi-sample antialiasing optimization via edge tracking
US10262459B1 (en) Multiple simultaneous bin sizes
US7505036B1 (en) Order-independent 3D graphics binning architecture
Aila et al. Delay streams for graphics hardware
KR100478767B1 (ko) 그래픽 렌더링 방법, 컴퓨터 그래픽 파이프라인용 상태 감시 장치 및 3차원 그래픽 렌더링용 계산처리 시스템
US10162642B2 (en) Shader with global and instruction caches
US10255718B2 (en) Graphics processing
US7385608B1 (en) State tracking methodology
CN103810669A (zh) 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块
JP2009541820A (ja) タイルベースのレンダリング装置におけるパラメータ圧縮
US8144156B1 (en) Sequencer with async SIMD array
CN101754039A (zh) 面向移动设备的3d参数解码系统
US6911985B1 (en) Method and apparatus for reducing frame buffer size in graphics systems
US8223157B1 (en) Stochastic super sampling or automatic accumulation buffering
US7710425B1 (en) Graphic memory management with invisible hardware-managed page faulting
EP2615578A1 (en) Image drawing apparatus with a cache memory
US20050052459A1 (en) Method and system for rendering macropixels in a graphical image
US6795072B1 (en) Method and system for rendering macropixels in a graphical image

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1114227

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1114227

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120516

Termination date: 20190321