CN108022202B - 一种超前消隐几何引擎结构 - Google Patents
一种超前消隐几何引擎结构 Download PDFInfo
- Publication number
- CN108022202B CN108022202B CN201711202636.4A CN201711202636A CN108022202B CN 108022202 B CN108022202 B CN 108022202B CN 201711202636 A CN201711202636 A CN 201711202636A CN 108022202 B CN108022202 B CN 108022202B
- Authority
- CN
- China
- Prior art keywords
- unit
- primitive
- geometric
- interface
- blanking
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明属于计算机硬件技术领域,涉及一种超前消隐几何引擎结构。本发明由一个7级功能流水线、几何参数存储单元和多个不同功能的访问接口组成。7个功能流水线从前到后依次为图元装配单元、投影变换单元、背面消隐单元、平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元。访问接口包括几何图元顶点数据输入接口、控制寄存器读写访接口、图形状态参数访问接口、名字堆栈错误状态反馈接口、选择与反馈数据记录接口、像素数据输出接口组成。本发明能够显著降低几何引擎中平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元阶段的处理工作量,从而降低图形处理延迟和功耗,提升图元处理吞吐量。
Description
技术领域
本发明属于计算机硬件技术领域,涉及一种超前消隐几何引擎结构。
背景技术
随着图形化应用的不断增加,早期单靠CPU进行图形绘制的解决方案已经难以满足成绩和技术增长的图形处理需求,图形处理器(Graphic Processing Unit,GPU)应运而生。从1999年Nvidia发布第一款GPU产品至今,GPU技术的发展主要经历了固定功能流水线阶段、分离染色器架构阶段、统一染色器架构阶段,其图形处理能力不断提升,应用领域也从最初的图形绘制逐步扩展到通用计算领域。GPU流水线高速、并行的特征和灵活的可编程能力,为图形处理和通用并行计算提供了良好的运行平台。
目前,我国尚无基于统一染色架构的GPU,各领域显示控制系统中大量采用国外进口的商用GPU芯片。尤其是在军用领域中,国外进口商用GPU芯片存在温度和环境适应性差、无法保证电路本身或配套软件没有“后门”、包含大量军用领域不需要的冗余功能单元,功耗指标无法满足要求、商用GPU芯片更新换代快,随时面临停产、断档,难以满足武器装备持续保障等缺陷,在安全性、可靠性、保障性等方面的存在重大隐患。一种超前消隐几何引擎结构,是提升和增强GPU图形处理能力的关键技术。突破高性能、低功耗几何引擎结构设计关键技术,研制高性能图形处理器芯片迫在眉睫。
发明内容
本发明的目的是:提供一种超前消隐几何引擎结构,不但能够显著降低几何引擎中平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元阶段的处理工作量,还能降低图形处理延迟和功耗,提升图元处理吞吐量。
本发明的技术解决方案是:
一种超前消隐几何引擎结构,包括一个7级功能流水线、几何参数存储单元和若干个访问接口组成;
所述7级功能流水线中包含的功能单元按照从前到后的顺序依次为图元装配单元、投影变换单元、背面消隐单元、平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元,并按照从前到后的顺序使相邻两个功能单元互相连接;
所述图元装配单元按照图元类型和装配模式对来自顶点染色器的顶点信息进行装配,形成点、线和三角形基本图元;
所述投影变换单元按照用户定义的投影方式,即正视投影视景体或透视投影视景体,对图元顶点进行变换,使之按照正视或透视的方式映射到屏幕上;
所述背面消隐单元能够根据用户的配置,剔除三角形图元的前面或者后面;通过背面消隐处理,将位于视野范围内不可见的三角形图元剔除,从而减轻后级流水线计算量;
所述平面剪裁单元使用用户定义的剪裁平面对要绘制的3D图元进行剪裁,将剪裁掉的图元丢弃,并形成新的3D图元;
所述三维剪裁单元采用投影变换中所定义视景体的六个面,对3D图元进行剪裁,将剪裁掉的图元丢弃,并形成新的3D图元;同时完成OpenGL API中定义的“选择”功能;
所述视窗变换单元的3D图元通过视窗变换后,会显示在用户定义的视窗中;同时完成OpenGL API中定义的“反馈”功能;
所述图元光栅化单元完成任意大小点、任意宽度直线、任意三角形的光栅化;支持直线和三角形的点画模式;实现点、线和三角形的反走样;能够实现提前深度测试,即Early-Z操作,剔除掉完全被遮挡的像素;
所述几何参数存储单元用来存储OpenGL标准中定义的、与图元几何处理过程相关的所有配置参数和状态参数;
所述访问接口包括几何图元顶点数据输入接口、控制寄存器读写访问接口、图形状态参数访问接口、名字堆栈错误状态反馈接口、选择与反馈数据记录接口、像素数据输出接口组成。
本发明的有益效果是:
一、将投影变换单元放在图元装配单元后,能够第一时间完成图元的投影变换计算,并得到图元在视景体中的最终位置信息,能够为图元背面消隐处理尽早的做好准备;
二、将图元背面消隐处理放在平面剪裁单元和三维剪裁单元之前,能够显著降低几何引擎中平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元阶段的处理工作量,从而在几何引擎总处理任务量一定的情况下大幅降低处理延迟;在单位时间内显著提升几何引擎图元处理吞吐量;而上述这些单元恰恰是几何引擎中最为复杂,处理延迟最大的单元;
三、背面消隐单元提前后,对于任意一个特定场景来说,几何引擎中平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元阶段的处理图元数量显著降低,几何引擎功耗能够显著降低。
附图说明
图1是本发明一种超前消隐几何引擎结构示意图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其它实施例,都属于本发明的保护范围。
如图1所示,本发明超前消隐几何引擎结构,包括一个7级功能流水线、几何参数存储单元和若干个访问接口组成。
所述7级功能流水线中包含的功能单元按照从前到后的顺序依次为图元装配单元、投影变换单元、背面消隐单元、平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元,并按照从前到后的顺序使相邻两个功能单元互相连接。
图元装配单元接收来自几何图元顶点数据输入接口输入的图元顶点命令(包含顶点的坐标、颜色、法向量、纹理坐标,以及雾坐标和边界标记信息)数据,这些图元顶点命令按照给定的顺序送到图元装配单元,图元装配单元根据输入的参数,装配出指定点、线和三角形等各种基本图形数据。本级处理结果并送入投影变换级。
投影变换单元接收来自图元装配单元的输出数据。投影变换通过将图元顶点坐标向量与投影矩阵相乘,定义一个视景体,决定了一个物体是如何映射到屏幕上的(即通过透视投影还是正投影)。其次,视景体定义了哪些物体(或物体的一部分)被裁剪到最终的图像之外。指定投影变换就好像为照相机选择镜头,可以认为这种变换的目的是确定视野(或视景体),并确定哪些物体位于视野之内以及它们能被看到的程度。本级处理结果并送入背面消隐级。
背面消隐单元接收来自投影变换单元的顶点命令数据,在所绘制图元是三角形的情况下,实现的功能是根据当前设置的三角形面的正反面,判断图元正反面的可见性,以及剔除设置的面,从而隐藏最终不会被看到面的计算量。在进行背面剔除时,只处理多边形(三角形)图元,点和直线直接透传,不进行处理。本级处理结果并送入平面剪裁级。
平面剪裁单元接收来自背面消隐单元的顶点命令数据,使用用户指定的剪裁平面对世界空间中的物体进行剪裁,以去掉场景中无关的目标,减少计算量,同时可以用来实现特殊效果。在平面剪裁中,所处理的对象为点、线、三角形3种基本图元,以及光栅位置。本级处理结果送入三维剪裁级。
三维剪裁单元接收来自平面剪裁单元的顶点命令数据,依次采用投影变换阶段所定义视景体的六个平面对所绘制的点、线、三角形图元,以及光栅位置进行剪裁,去除位于视景体之外的所有图元。本级处理结果送入视窗变换单元。
视窗变换单元接收来自三维剪裁单元的顶点命令数据,并将光栅位置坐标、图元顶点坐标与视窗变换矩阵相乘,将其窗口中的图形信息送到视口中,完成视窗变换。视窗是图形的可见区域所在部分,是在用户坐标系中定义的确定显示内容的一个矩形区域,只有在这个区域内的图形才能在设备坐标系下输出,而窗口外的部分则被裁掉。视口是在设备坐标系(通常是屏幕)中定义的一个矩形区域,用于输出窗口中的图形。本级处理结果送入光栅化单元。
光栅化单元接收来自视窗变换单元的顶点命令数据,并根据接收到的图元类型启动点、线和三角形图元光栅化单元分别对点图元、线图元和三角形图元进行扫描转换,根据不同的绘制模式(如点画模式)识别出几何图元覆盖的片段位置信息,并完成不同模式下(如反走样)每个片段的属性插值计算,最终将这些识别出的片段数据信息输出几何引擎。至此,完成了一个任意图元在几何引擎中的所有处理。
在几何引擎中两个相邻的功能单元间采用一个FIFO来实现图元顶点属性命令的缓冲。只要FIFO不为满,连接在FIFO前端的功能单元就可以直接将输出的顶点命令送入FIFO中;而只要FIFO不为空,连接在FIFO后端的功能单元就可以直接从FIFO中读取顶点命令。FIFO的即将满和即将空信号,可以在连续的顶点命令传输过程中方便功能模块的接口控制。因此,几何引擎中的相邻功能单元间都采用一个FIFO来进行顶点命令的缓冲,从而提升各阶段功能单元处理的并行性和命令传输的连续性、降低接口控制的难度、减少由于各流水级处理延迟差异造成的几何引擎图元处理吞吐率波动。
由于几何引擎中各级功能单元在同一时刻可能同时使用多个几何参数,并且根据配置不同,同时使用的几何参数数量也不同。因此,为了支持几何单元并行流水的进行计算,几何参数存储单元采用寄存器的形式实现参数存储,直接将各级功能单元需要的参数以接口的形式提供即可。
所述访问接口包括几何图元顶点数据输入接口、控制寄存器读写访问接口、图形状态参数访问接口、名字堆栈错误状态反馈接口、选择与反馈数据记录接口、像素数据输出接口组成。
所述几何图元顶点数据输入接口用来接收几何图元顶点属性命令数据包;
所述控制寄存器读写访问接口用来实现主机对几何引擎内部控制寄存器的读写访问,从而实现对几何引擎工作模式的控制;
所述图形状态参数访问接口用来实现OpenGL API对与几何引擎处理功能相关的图形状态参数的配置和读取;
所述名字堆栈错误状态反馈接口用来实现名字堆栈发生上溢或者下溢异常时的错误状态数据反馈功能;
所述选择与反馈数据记录接口用来实现将几何引擎工作在“选择”或“反馈”模式下按照OpenGL标准记录的状态数据写入显示存储器指定区域的功能;
所述像素数据输出接口用来输出光栅化单元对各种类型图元进行扫描转换后的片段结果给像素染色级进行处理。
所述的超前消隐几何引擎结构,所述投影变换单元位于图元装配单元之后、背面消隐单元之前,能够在进行背面消隐之前,计算得到与图元可见性相关的顶点坐标数据;
所述的超前消隐几何引擎结构,所述背面消隐单元位于投影变换单元之后、平面剪裁单元之前,能够保证最大限度的降低后续流水级中具有较大处理延迟的平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元的总任务量,从而显著降低相同任务量下几何引擎处理延迟和功耗;
所述的超前消隐几何引擎结构,所述几何引擎流水线中每个流水级前具有一个图元顶点命令FIFO,用来缓冲来自前一个流水级的图元顶点命令,隐藏各个不同流水级处理延迟的差异所造成的几何引擎图元处理吞吐率波动。
所述的超前消隐几何引擎结构,几何参数存储单元与图元装配单元、投影变换单元、背面消隐单元、平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元分别相连,使这些处理单元能够获取或记录各自需要的图形配置参数和状态参数。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (2)
1.一种超前消隐几何引擎结构,其特征为:所述超前消隐几何引擎结构包括一个7级功能流水线、几何参数存储单元和若干个访问接口;
所述7级功能流水线中包含的功能单元按照从前到后的顺序依次为图元装配单元、投影变换单元、背面消隐单元、平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元,并按照从前到后的顺序使相邻两个功能单元互相连接;
所述图元装配单元按照图元类型和装配模式对来自顶点染色器的顶点信息进行装配,形成点、线和三角形基本图元;
所述投影变换单元按照用户定义的投影方式,即正视投影视景体或透视投影视景体,对图元顶点进行变换,使之按照正视或透视的方式映射到屏幕上;
所述背面消隐单元能够根据用户的配置,剔除三角形图元的前面或者后面;通过背面消隐处理,将位于视野范围内不可见的三角形图元剔除,从而减轻后级流水线计算量;
所述平面剪裁单元使用用户定义的剪裁平面对要绘制的3D图元进行剪裁,将剪裁掉的图元丢弃,并形成新的3D图元;
所述三维剪裁单元采用投影变换中所定义视景体的六个面,对3D图元进行剪裁,将剪裁掉的图元丢弃,并形成新的3D图元;同时完成OpenGL API中定义的“选择”功能;
所述视窗变换单元的3D图元通过视窗变换后,会显示在用户定义的视窗中;同时完成OpenGL API中定义的“反馈”功能;
所述图元光栅化单元完成任意大小点、任意宽度直线、任意三角形的光栅化;支持直线和三角形的点画模式;实现点、线和三角形的反走样;能够实现提前深度测试,即Early-Z操作,剔除掉完全被遮挡的像素;
所述几何参数存储单元用来存储OpenGL标准中定义的、与图元几何处理过程相关的所有配置参数和状态参数;所述几何参数存储单元与图元装配单元、投影变换单元、背面消隐单元、平面剪裁单元、三维剪裁单元、视窗变换单元,以及图元光栅化单元分别相连,使所述功能单元能够获取或记录各自需要的图形配置参数和状态参数,
所述访问接口包括几何图元顶点数据输入接口、控制寄存器读写访问接口、图形状态参数访问接口、名字堆栈错误状态反馈接口、选择与反馈数据记录接口、像素数据输出接口。
2.根据权利要求1所述的超前消隐几何引擎结构,其特征为:所述几何图元顶点数据输入接口用来接收几何图元顶点属性命令数据包;所述控制寄存器读写访问接口用来实现主机对几何引擎内部控制寄存器的读写访问,从而实现对几何引擎工作模式的控制;所述图形状态参数访问接口用来实现OpenGL API对与几何引擎处理功能相关的图形状态参数的配置和读取;所述名字堆栈错误状态反馈接口用来实现名字堆栈发生上溢或者下溢异常时的错误状态数据反馈功能;所述选择与反馈数据记录接口用来实现将几何引擎工作在“选择”或“反馈”模式下按照OpenGL标准记录的状态数据写入显示存储器指定区域的功能;所述像素数据输出接口用来输出光栅化单元对各种类型图元进行扫描转换后的片段结果给像素染色级进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711202636.4A CN108022202B (zh) | 2017-11-24 | 2017-11-24 | 一种超前消隐几何引擎结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711202636.4A CN108022202B (zh) | 2017-11-24 | 2017-11-24 | 一种超前消隐几何引擎结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108022202A CN108022202A (zh) | 2018-05-11 |
CN108022202B true CN108022202B (zh) | 2021-03-26 |
Family
ID=62077202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711202636.4A Active CN108022202B (zh) | 2017-11-24 | 2017-11-24 | 一种超前消隐几何引擎结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108022202B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109191363B (zh) * | 2018-07-30 | 2023-05-23 | 南京军微半导体科技有限公司 | 图形处理器中适应可扩展计算单元的固定功能单元装置 |
CN109934893B (zh) * | 2019-03-21 | 2022-11-25 | 广联达科技股份有限公司 | 几何体任意截面的显示方法、装置及电子设备 |
CN111241776B (zh) * | 2019-12-31 | 2023-10-20 | 西安翔腾微电子科技有限公司 | 基于SystemC的平面剪裁中GPU几何图元起始标记管理的TLM装置 |
CN112581352B (zh) * | 2020-12-05 | 2024-03-01 | 西安翔腾微电子科技有限公司 | 一种面向多gpu的高性能图元分屏光栅方法 |
CN115131192B (zh) * | 2022-08-31 | 2022-11-15 | 深流微智能科技(深圳)有限公司 | 基于图形流水线的数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102047238A (zh) * | 2008-05-29 | 2011-05-04 | 先进微装置公司 | 使用几何着色器的镶嵌引擎的系统、方法及计算机程序产品 |
CN104503950A (zh) * | 2014-12-09 | 2015-04-08 | 中国航空工业集团公司第六三一研究所 | 一种面向OpenGL API的图形处理器 |
CN106709858A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色图形处理器单指令多线程染色处理单元结构 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8310494B2 (en) * | 2008-09-30 | 2012-11-13 | Apple Inc. | Method for reducing graphics rendering failures |
US8248425B2 (en) * | 2009-09-16 | 2012-08-21 | Ncomputing Inc. | Optimization of memory bandwidth in a multi-display system |
-
2017
- 2017-11-24 CN CN201711202636.4A patent/CN108022202B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102047238A (zh) * | 2008-05-29 | 2011-05-04 | 先进微装置公司 | 使用几何着色器的镶嵌引擎的系统、方法及计算机程序产品 |
CN104503950A (zh) * | 2014-12-09 | 2015-04-08 | 中国航空工业集团公司第六三一研究所 | 一种面向OpenGL API的图形处理器 |
CN106709858A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色图形处理器单指令多线程染色处理单元结构 |
Non-Patent Citations (2)
Title |
---|
Parallel frame rendering:trading responsiveness for energy on a mobile GPU;Arnau J M 等;《Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques》;20130711;1-2 * |
一种3D图形背面消隐算法及其硬件加速实现;田泽 等;《小型微型计算机系统》;20150615;1-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN108022202A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108022202B (zh) | 一种超前消隐几何引擎结构 | |
US11748840B2 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
WO2022111619A1 (zh) | 图像处理方法及相关装置 | |
US7468726B1 (en) | Culling in a vertex processing unit | |
US10242481B2 (en) | Visibility-based state updates in graphical processing units | |
US8063903B2 (en) | Edge evaluation techniques for graphics hardware | |
US20040075654A1 (en) | 3-D digital image processor and method for visibility processing for use in the same | |
US10049486B2 (en) | Sparse rasterization | |
US20060209078A1 (en) | Tiled prefetched and cached depth buffer | |
US20080024490A1 (en) | Real-time GPU rendering of piecewise algebraic surfaces | |
US9390541B2 (en) | Programmable tile shader | |
US8031194B2 (en) | Intelligent configurable graphics bandwidth modulator | |
US20070268289A1 (en) | Graphics system with dynamic reposition of depth engine | |
US7400325B1 (en) | Culling before setup in viewport and culling unit | |
KR20060052042A (ko) | 3d에서의 하드웨어 가속화된 안티-엘리어싱 방법 및시스템 | |
US7616202B1 (en) | Compaction of z-only samples | |
US8736627B2 (en) | Systems and methods for providing a shared buffer in a multiple FIFO environment | |
EP1519317A1 (en) | Apparatus and method for antialiasing based on z buffer or normal vector information | |
KR20170040698A (ko) | 그래픽스 파이프라인을 수행하는 방법 및 장치 | |
US7292239B1 (en) | Cull before attribute read | |
CN114758051A (zh) | 一种图像渲染方法及其相关设备 | |
US8068120B2 (en) | Guard band clipping systems and methods | |
US20030043148A1 (en) | Method for accelerated triangle occlusion culling | |
CN102136128B (zh) | 增进绘图处理单元的总处理量的方法与系统 | |
US20140176546A1 (en) | Shadow softening graphics processing unit and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |