CN102819820B - 基于分块渲染的gpu中多管线渲染的实现方法 - Google Patents
基于分块渲染的gpu中多管线渲染的实现方法 Download PDFInfo
- Publication number
- CN102819820B CN102819820B CN201210287875.5A CN201210287875A CN102819820B CN 102819820 B CN102819820 B CN 102819820B CN 201210287875 A CN201210287875 A CN 201210287875A CN 102819820 B CN102819820 B CN 102819820B
- Authority
- CN
- China
- Prior art keywords
- piece
- pipeline
- module
- gpu
- ddr
- 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.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种基于分块渲染的GPU中多管线渲染的实现方法。它包括绘图命令解析,2D绘图模块—完成2D清屏、点阵字等功能,图元管理—完成图元顶点及属性的获取,几何变换/光照,裁剪,屏幕坐标变换,图元分块,M条光栅化管线,M条Z/Stencil测试管线,M条纹理映射管线,M条融合管线,图形显示等模块。该实现结构通过资源复制实现了分块渲染的性能加速目的。
Description
技术领域
本发明主要涉及到基于分块渲染的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中多管线渲染的实现结构。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。如图1所示,为本发明实现的基于分块渲染的GPU中多管线渲染的实现结构。它包括绘图命令解析,2D绘图模块—完成2D清屏、点阵字等功能,图元管理—完成图元顶点及属性的获取,几何变换/光照,裁剪,屏幕坐标变换,图元分块,M条光栅化管线,M条Z/Stencil测试管线,M条纹理映射管线,M条融合管线,图形显示等模块。软件通过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,直到将该块绘制完毕,一次性将该片上存储器中的数据写回到对应的显示帧存中,同样可以减少大量的访存时间。当一帧的图像绘制完毕后,显示模块根据分辨率产生对应的时序将帧存中的数据读出,显示在屏幕上。
Claims (1)
1.基于分块渲染的GPU中多管线渲染的实现方法,其特征为:
(1) 软件通过PCI总线向GPU硬件发送绘图命令和参数配置命令,GPU收到命令进入命令解析模块,按照图元类型从DDR读取图元顶点并组织成相应图元的数据进入几何变换/光照、裁剪、屏幕坐标转换模块;
(2) GPU硬件按照定义的分块大小将图元分块,为了使分块和绘制并行工作,维持两个计数器—采用2个RAM分别记录两帧图像的每块的图元数目,每一个块在DDR中都有一个固定的读写起始地址和固定的存储空间,将分块后的图元数据按照图元所属的块写入相应的DDR地址,一帧内的所有图元都写入DDR之后,按照块的顺序将DDR中的块内的待绘制数据取出,进入光栅化过程;
(3) 为实现多管线的绘制,可以设计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的块;
(4) 在像素渲染部分设置与光栅化同样数目的管线,设置M个Z/Stencil测试模块,每一个模块内部结构相同,根据应用的要求,可以在块内缓冲区预先设置一个初值,那么在该块绘制过程中就避免了频繁的读写DDR中Z/Stencil Buffer中的数据,节约了带宽的同时也加快了Z/Stencil测试速度;同样设置M个纹理映射模块,每一个模块对应一个纹理Cache,M个纹理Cache再对应一个二级Cache,此结构可以充分利用Cache中的数据,提高命中率;设置M个融合模块,在绘制当前块开始时将该块在显示帧存中的数据读出放在片上存储器中,在该块绘制的过程中将无需再次读取DDR,直到将该块绘制完毕,一次性将该片上存储器中的数据写回到对应的显示帧存中,同样可以减少大量的访存时间;
(5) 当一帧的图像绘制完毕后,显示模块根据分辨率产生对应的时序将帧存中的数据读出,显示在屏幕上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210287875.5A CN102819820B (zh) | 2012-08-14 | 2012-08-14 | 基于分块渲染的gpu中多管线渲染的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210287875.5A CN102819820B (zh) | 2012-08-14 | 2012-08-14 | 基于分块渲染的gpu中多管线渲染的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819820A CN102819820A (zh) | 2012-12-12 |
CN102819820B true CN102819820B (zh) | 2014-03-12 |
Family
ID=47303927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210287875.5A Active CN102819820B (zh) | 2012-08-14 | 2012-08-14 | 基于分块渲染的gpu中多管线渲染的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819820B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456034A (zh) * | 2013-08-28 | 2013-12-18 | 厦门雷霆互动网络有限公司 | 一种基于分布式烘培光照的场景编辑器及编辑方法 |
CN103745448B (zh) * | 2013-12-24 | 2016-08-17 | 四川大学 | 光栅3d显示中超高分辨率合成图像的快速生成方法 |
CN103730097B (zh) * | 2013-12-27 | 2016-04-13 | 广东威创视讯科技股份有限公司 | 超高分辨率图像的显示方法与系统 |
CN103955407B (zh) * | 2014-04-24 | 2018-09-25 | 深圳中微电科技有限公司 | 在处理器中减小纹理延迟的方法及装置 |
CN106779057B (zh) * | 2016-11-11 | 2020-04-17 | 北京旷视科技有限公司 | 基于gpu的计算二值神经网络卷积的方法及装置 |
CN107958437A (zh) * | 2017-11-24 | 2018-04-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多gpu大分辨率多屏图形分块并行渲染方法 |
CN108510430B (zh) * | 2018-03-27 | 2024-07-12 | 长沙景嘉微电子股份有限公司 | 基于分块渲染的gpu中一种资源共享的实现方法 |
CN109191362B (zh) * | 2018-07-30 | 2023-07-18 | 南京军微半导体科技有限公司 | 多个rop的并行调度方法 |
CN113129205A (zh) * | 2019-12-31 | 2021-07-16 | 华为技术有限公司 | 一种电子设备及计算机系统 |
CN112486609B (zh) * | 2020-11-25 | 2022-09-16 | 湖南麒麟信安科技股份有限公司 | 一种基于云桌面的虚拟显卡实现方法和装置 |
CN116523729B (zh) * | 2023-06-27 | 2023-09-15 | 深流微智能科技(深圳)有限公司 | 一种图形处理设备、图形渲染管线分配方法及相关装置 |
CN116883228B (zh) * | 2023-09-08 | 2023-12-01 | 武汉凌久微电子有限公司 | 一种gpu像素填充率测量方法 |
CN117745518B (zh) * | 2024-02-21 | 2024-06-11 | 芯动微电子科技(武汉)有限公司 | 一种优化内存分配的图形处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114375A (zh) * | 2006-07-26 | 2008-01-30 | 辉达公司 | 加速的起始瓦片搜索 |
CN101689306A (zh) * | 2007-02-16 | 2010-03-31 | 高通股份有限公司 | 有效的二维及三维图形处理 |
CN102096897A (zh) * | 2011-03-17 | 2011-06-15 | 长沙景嘉微电子有限公司 | 基于分块渲染的gpu中块存储策略的实现 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8212840B2 (en) * | 2006-10-23 | 2012-07-03 | Qualcomm Incorporated | 3-D clipping in a graphics processing unit |
-
2012
- 2012-08-14 CN CN201210287875.5A patent/CN102819820B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114375A (zh) * | 2006-07-26 | 2008-01-30 | 辉达公司 | 加速的起始瓦片搜索 |
CN101689306A (zh) * | 2007-02-16 | 2010-03-31 | 高通股份有限公司 | 有效的二维及三维图形处理 |
CN102096897A (zh) * | 2011-03-17 | 2011-06-15 | 长沙景嘉微电子有限公司 | 基于分块渲染的gpu中块存储策略的实现 |
Non-Patent Citations (2)
Title |
---|
分块渲染的三维图形中光栅操作的硬件实现;张淑等;《西安邮电学院学报》;20120731;第17卷(第4期);第83-86页 * |
张淑等.分块渲染的三维图形中光栅操作的硬件实现.《西安邮电学院学报》.2012,第17卷(第4期), |
Also Published As
Publication number | Publication date |
---|---|
CN102819820A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819820B (zh) | 基于分块渲染的gpu中多管线渲染的实现方法 | |
CN101236661B (zh) | 在计算机中管理纹理数据的系统与方法 | |
CN104025181B (zh) | 用于去耦合采样的基于分类的块延迟着色体系结构 | |
CN103718244B (zh) | 用于媒体处理加速器的采集方法和装置 | |
KR100510131B1 (ko) | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 | |
CN102096897B (zh) | 基于分块渲染的gpu中块存储策略的实现 | |
JP4280270B2 (ja) | 幾何プリミティブのインデックスを外す方法、ラスタ化装置、コンピュータ可読媒体 | |
US5550961A (en) | Image processing apparatus and method of controlling the same | |
JP2012530953A (ja) | 原画像をワープさせて表示する装置および方法 | |
US20060250408A1 (en) | Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment | |
US20070008330A1 (en) | Texture cache control using a data dependent slot selection scheme | |
US20170139707A1 (en) | Method and device for register management | |
CN103380417A (zh) | 用于从存储器请求所存储的数据的技术 | |
JP2009099098A (ja) | コンピュータグラフィックス描画装置及び描画方法 | |
CN105488753B (zh) | 一种对图像进行二维傅立叶变换或反变换的方法及装置 | |
JPH06175646A (ja) | グラフィックス・システム用フレーム・バッファおよびラスタ・プロセッサならびにピクセル変数のバッファリング方法 | |
US9196014B2 (en) | Buffer clearing apparatus and method for computer graphics | |
JP2882465B2 (ja) | 画像生成方法およびその装置 | |
CN114638863A (zh) | 基于fpga的差分动态显微图像处理方法、装置及系统 | |
US10019349B2 (en) | Cache memory and method of managing the same | |
CN105550978A (zh) | 一种面向统一染色架构的gpu3d引擎片上存储层次结构 | |
CN100578542C (zh) | 图形处理系统及在图形处理系统中储存纹理图数据的方法 | |
US20060187229A1 (en) | Page based rendering in 3D graphics system | |
CN102799431B (zh) | 图元预处理和处理方法、图形处理方法及其处理器、装置 | |
KR20100052850A (ko) | 2차원 벡터 그래픽 처리를 위한 라스터라이저 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Rao Xianhong Inventor before: Jiao Yong |
|
COR | Change of bibliographic data |
Free format text: CORRECT: INVENTOR; FROM: JIAO YONG TO: RAO XIANHONG |
|
GR01 | Patent grant | ||
GR01 | Patent grant |