一种图形处理器深度值提前测试电路的制作方法

文档序号:14348182阅读:188来源:国知局
本发明涉及计算机硬件
技术领域
:,涉及一种图形处理器深度值提前测试电路。
背景技术
::3d图形绘制时片段进行深度测试需要对应深度缓冲区的一读一写两次操作,深度缓冲区的访问对ddr的带宽需求极大。在标准的opengl实现中,深度测试是在染色流水线的片段处理单元中进行的。片段处理单元通过访问深度缓冲z-buffer对即将写入帧缓冲区的片段进行深度测试,并将不能通过深度测试的片段丢弃。为了提高系统性能,减少无效图形的绘制,降低存储器带宽需求,目前常用的图形处理器都采用某种技术将深度测试提前。如ati的hyperz技术利用两级深度缓冲区,当图形绘制从前向后进行时能够获取很好的效率。但3d绘制的提前深度测试必须与图形绘制的光栅化单元结构一致,没有很好的通用性,必须结合3d绘制流水线进行深度提前测试电路的设计。技术实现要素:本发明的目的是:本发明提供一种提高系统性能、减少无效图形绘制、降低存储器带宽需求的图形处理器深度值提前测试电路。本发明的技术方案是:一种图形处理器深度值提前测试电路,包括:一种提前测试的光栅化单元1、深度压缩和解压缩单元2、深度tilecache和深度tiletablecache单元3、存储深度和tile的zmin和zmax的ddr存储器4;在光栅化单元1进行片段深度测试后对通过测试的深度数据送到深度压缩和解压缩单元2进行压缩,并产生每个tile数据的深度最大值和最小值,光栅化时对基于tile的片段数据进行提前深度测试:其中,提前深度测试失败的tile被直接丢弃;通过提前深度测试的tile会被发送到染色器任务调度单元调度到染色器上执行像素染色功能,片断进行像素染色后送到片断处理单元进行深度测试及混合操作,最后通过深度tilecache和深度tiletablecache单元3写入到ddr存储器4中。本发明的有益效果是:本发明所述的一种图形处理器深度值提前测试电路能够按tile对光栅化数据进行提前深度测试,将不能通过提前深度测试的数据直接从流水线中消去,大大减少了深度数据对于系统存储带宽的需求,降低了光栅化后续流水线的负载。附图说明图1是本发明中一种图形处理器深度值提前测试电路的总体框图;图2是本发明中的光栅化单元框图;图3是本发明中深度tilecache和tiletablecache单元框图;图4(a)是本发明中深度压缩和解压缩单元中深度压缩部分的框图;图4(b)是本发明中深度压缩和解压缩单元中深度解压缩部分的框图。具体实施方式下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。如图1所示,一种图形处理器深度提前测试电路,包括:一种提前测试的光栅化单元1、深度压缩和解压缩单元2、深度tilecache和深度tiletablecache单元3、存储深度和tile的zmin和zmax的ddr存储器4;在光栅化单元1进行片段深度测试后对通过测试的深度数据送到深度压缩和解压缩单元2进行压缩,并产生每个tile数据的深度最大值和最小值,光栅化时对基于tile的片段数据进行提前深度测试:其中,提前深度测试失败的tile被直接丢弃;通过提前深度测试的tile会被发送到染色器任务调度单元调度到染色器上执行像素染色功能,片断进行像素染色后送到片断处理单元进行深度测试及混合操作,最后通过深度tilecache和深度tiletablecache单元3写入到ddr存储器4中。如图2所示,所述光栅化单元1包括图元顶点命令接收单元、点图元光栅化单元、线图元光栅化单元和三角形图元光栅化单元。图元顶点命令接收单元接收到图元顶点命令,并根据图元属性分别进行点图元光栅化、线图元光栅化或三角形图元光栅化,通过光栅化的数据按tile与来自深度tilecache和深度tiletablecache单元3的zmin和zmax进行逐tile的提前深度测试,如果当前tile能够通过提前深度测试则按tile发送到光栅化后的染色流水线,否则直接丢弃当前tile数据。如图3所示,深度tilecache和深度tiletablecache单元3中非阻塞的tilecache和tiletablecache具有相同的内部结构,cache采用全相联和非阻塞设计,当某个cache请求缺失时,将缺失的请求存储到非阻塞单元的mshr中,由非阻塞单元启动更新;同时可接收下一组请求,最多可以缓存32个访问请求。如图4(a)所示,本发明中深度压缩和解压缩单元中深度压缩部分,将tilecache写回的tile深度数据进行压缩并存储到ddr存储器4中。深度偏移压缩算法首先计算tile数据的zmin和zmax并将该tile的zmin和zmax送到tiletablecache。同时使用当前深度值与zmin或zmax的差值对当前tile的深度进行编码,编码成功则可以将数据压缩到原始数据的1/4大小并存储到ddr存储器4中,如果压缩失败,则存储原始数据到ddr存储器4中。如图4(b)所示,本发明中深度压缩和解压缩单元中深度解压缩部分,从ddr存储器4中读取压缩后的一个tile数据,将开始的两个32位数据作为zmin和zmax存储起来,后续的数据与zmin或zmax进行加法得到原始的深度数据,并更新到深度tilecache中。最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。技术特征:技术总结本发明一种图形处理器深度值提前测试电路,包括提前测试的光栅化单元(1)、深度压缩和解压缩单元(2)、深度Tile Cache和深度TileTable Cache单元(3)、存储深度和Tile的Zmin和Zmax的DDR存储器(4)。在深度压缩时按Tile提取深度的最大值和最小值,并与采用基于Tile的光栅化单元配合使用,能够在图形处理器进行光栅化时按Tile进行提前深度值测试,消去大量不需要绘制的三角形,减轻图形处理器染色流水线的负载,降低存储带宽需求,提高图形绘制性能。技术研发人员:郑新建;张骏;韩立敏;任向隆受保护的技术使用者:中国航空工业集团公司西安航空计算技术研究所技术研发日:2017.11.24技术公布日:2018.05.04
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1