[发明专利]基于分块渲染的GPU中多管线渲染的实现方法有效
申请号: | 201210287875.5 | 申请日: | 2012-08-14 |
公开(公告)号: | CN102819820A | 公开(公告)日: | 2012-12-12 |
发明(设计)人: | 焦永 | 申请(专利权)人: | 长沙景嘉微电子股份有限公司 |
主分类号: | G06T1/60 | 分类号: | G06T1/60 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 410205 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 分块 渲染 gpu 管线 实现 方法 | ||
技术领域
本发明主要涉及到基于分块渲染的GPU设计领域,特指基于分块渲染的GPU中多管线渲染的实现。
背景技术
分块渲染技术是为了缓解传统GPU中频繁访存导致效率低下而提出的。传统GPU采用固定流水线技术,渲染一个图元要经过Z测试、纹理、Alpha测试、融合等多个读写存储器的过程,一个像素可能经过多次访存之后并不需要真正写入帧存,由此带来的性能损失是很大的。为了缓解这一问题,分块渲染技术就被提出来,这种技术是将绘图区划分为若干个大小相等的块,将图元按块划分完成之后,在绘制时按照块的顺序绘制,这就保证了绘制当前块的时候,只需要缓存当前块的信息即可,等当前块全部绘制完成之后再将当前块写回帧存,大大减少了访存次数。目前基于分块渲染的GPU中,由于只采用一条管线渲染,并不能最大限度发挥分块渲染GPU的运行效率。
发明内容
本发明要解决的问题就在于:针对现有技术存在的不足,本发明提供了一种基于分块渲染的GPU中多管线渲染的实现结构,该实现结构可以最大限度发挥分块渲染GPU的技术优势。
本发明的实现方法:软件通过PCI总线向GPU硬件发送绘图命令和参数配置命令,GPU收到命令进入命令解析模块,按照图元类型从DDR读取图元顶点并组织成相应图元的数据进入几何变换/光照、裁剪、屏幕坐标转换模块,然后按照定义的分块大小(如32×32像素为一块)将图元分块,为了使分块和绘制并行工作,维持两个计数器—采用2个RAM分别记录两帧图像的每块的图元数目,每一个块在DDR中都有一个固定的读写起始地址和固定的存储空间,将分块后的图元数据按照图元所属的块写入相应的DDR地址,一帧内的所有图元都写入DDR之后,按照块的顺序将DDR中的块内的待绘制数据取出,进入光栅化过程,为实现多管线的绘制,可以设计M个光栅化管线,按照管线0绘制块号为0,M,2M,3M,……,nM的块;管线1绘制块号为1,M+1,2M+1,3M+1,……,nM+1的块;管线2绘制块号为2,M+2,2M+2,3M+2,……,nM+2的块;……;管线M-1绘制块号为M-1,2M-1,3M-1,……,(n+1)M-1的块;根据光栅化的管线数目,在像素渲染部分设置同样数目的管线,设置M个Z/Stencil(深度/模板)测试模块,每一个模块内部结构相同,根据应用的要求,可以在块内缓冲区预先设置一个初值,那么在该块绘制过程中就避免了频繁的读写DDR中Z/Stencil Buffer中的数据,节约了带宽的同时也加快了Z/Stencil测试速度;同样设置M个纹理映射模块,每一个模块对应一个纹理Cache,M个纹理Cache再对应一个二级Cache,此结构可以充分利用Cache中的数据,提高命中率;设置M个融合模块,在绘制当前块开始时将该块在显示帧存中的数据读出放在片上存储器中,在该块绘制的过程中将无需再次读取DDR,直到将该块绘制完毕,一次性将该片上存储器中的数据写回到对应的显示帧存中,同样可以减少大量的访存时间。当一帧的图像绘制完毕后,显示模块根据分辨率产生对应的时序将帧存中的数据读出,显示在屏幕上。
本发明的优点就在于:1、逻辑简单:本发明提出的多管线渲染结构充分采用逻辑重用的策略,实现比较简单;2、可扩展性好:设计完成一条渲染管线之后,可以将其扩展成多条管线,只需要修改仲裁模块就可以方便实现。
附图说明
图1是本发明实现的基于分块渲染的GPU中多管线渲染的实现结构。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙景嘉微电子股份有限公司,未经长沙景嘉微电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210287875.5/2.html,转载请声明来源钻瓜专利网。