当前位置: 首页 > 专利查询>辉达公司专利>正文

使用早期Z模式优化可配置的图形渲染管线制造技术

技术编号:2946081 阅读:253 留言:0更新日期:2012-04-11 18:40
本发明专利技术一个实施例陈述一种用于使用早期Z模式优化可配置的图形渲染管线及通过将Z测试操作推进到着色操作之前任何可能的时间来优化图形渲染效率的结构。由设置引擎维持的当前渲染状态确定是否可能将Z测试功能推进到着色器引擎之前以便进行“早期”Z测试,或是否应将所述Z测试功能延迟到着色操作之后以便进行“晚期”Z测试。数据被路由到管线中每一处理引擎,使得如所述当前渲染状态所确定,动态地构建针对早期Z或晚期Z模式的适当数据流。在任何可能的时间通过丢弃在进入所述着色器引擎之前z值未由着色操作改变的样本来有利地免除所述着色器引擎进行不必要工作。相同功能单元用于早期Z和晚期Z配置两者中,从而使实施方案所需的任何额外硬件最小化。

【技术实现步骤摘要】

本专利技术实施例大体上涉及计算机图形,且更明确地说涉及使用早期z模式优化图形 渲染管线。
技术介绍
图形渲染引擎通常由组织在数据流型式管线中的一组专门的处理引擎组成。在任何 数据提取引擎之后,设置引擎通常处于图形渲染引擎顶部。设置引擎对例如三角形的几 何图元操作,并将经变换或简化的几何图元表示发出到光栅引擎。光栅引擎确定与每一 几何图元关联的像素覆盖范围,从而产生具有关联的深度值(z值)的未着色像素图元的连续流。着色器引擎对来自光栅引擎的未着色像素的连续流进行操作,从而产生经着色像素流。除了计算给定像素的颜色外, 一些着色器引擎还视情况产生或修改像素的z值。Z光栅操作(ZROP)引擎确定是否应通过称为Z测试的操作来保留或丢弃新像素。 Z测试将新像素的深度和模板数据与在所述新像素的位置处的当前深度缓冲器中的先前 存储的深度和模板数据进行比较。如果像素通过了Z测试,那么ZROP引擎视情况将新 像素的深度和模板数据写入到当前深度缓冲器。Z解析引擎将Z测试的结果与和相关像 素相关联的等待时间缓冲数据合并。Z解析引擎将己通过Z测试的像素传输到颜色光栅 操作(CROP)引擎,并丢弃未通过Z测试的像素。颜色光栅操作(CROP)引擎更新新 像素的颜色数据,并将其写入到当前颜色缓冲器。图形渲染管线中处理步骤的精确次序通常经设计以适应渲染过程中连续数据依赖性 的最简单减少。举例来说,应在对由三角形覆盖的像素集合进行像素操作之前,将三角 形图元光栅化为像素图元。另外,像素的Z值应在与深度缓冲器中的先前计算出的Z值 进行比较之前计算出。通常在着色之后进行Z测试,从而给予着色器引擎在Z测试之前 结束任何深度或模板计算的机会。如众所周知,着色器引擎是图形渲染管线的耗费最大的元件,其消耗最多的逻辑资 源和最多的功率。此外,着色器引擎中通常执行的复杂的着色算法促使着色器引擎变为 图形渲染管线中最主要的性能瓶颈。光栅引擎中的早期Z剔除通过丢弃已知将在着色器 引擎内触发与图元有关的工作之前被闭塞的这些图元来实现某一程度的性能增益。然而,早期Z剔除仅是微不足道的丢弃机制且不是较精确的Z测试的替代。即使当使用早期Z 剔除时,Z测试步骤也可能丢弃着色器引擎处理的像素中的一半或更多像素。更重要的 是,着色器引擎在着色操作期间通常甚至不修改被丢弃像素中许多像素的Z值,从而使 这些像素多余地通过着色器引擎。因此,标准结构的结果是,作为图形渲染管线中单一 耗费最大资源的着色器引擎以实质上低效的水平操作。如上文所说明,此项技术中需要一种用于改进图形渲染管线中着色器引擎效率的技术。
技术实现思路
本专利技术一个实施例陈述一种用于处理图形图元的可配置的图形渲染管线。所述图形 渲染管线包含设置引擎,其经配置以确定应在早期Z模式还是晚期Z模式中进行处理; 光栅引擎,其经配置以从设置引擎接收几何图元并将几何图元转换为一个或一个以上像 素图元;着色器引擎,其经配置以对与像素图元相关联的一个或一个以上样本执行着色操作;Z光栅操作(ZROP)单元,其经配置以对样本的每一者执行Z测试;Z解析引擎, 其经配置以针对每一样本、基于与样本关联的Z测试结果来确定应保留还是丢弃所述样 本;和预光栅操作(PROP)单元,其经配置以修改着色器引擎与ZROP单元之间的数据 流路径,以支持早期Z模式和晚期Z模式两者。当图形渲染管线经配置以用于早期Z模 式时,与像素图元相关联的样本首先由ZROP单元和Z解析引擎处理且接着由着色器引 擎处理,且当图形渲染管线经配置以用于晚期Z模式时,样本首先由着色器引擎处理且 接着由ZROP单元和Z解析引擎处理。所揭示的图形渲染管线的一个优点在于,在适当情况下,可在将样本传输到着色器 引擎之前实施Z测试,藉此相对于现有技术结构而增加图形渲染管线的处理效率。附图说明因此,为了具体理解本专利技术的上述特征,可参照实施例对上文简要概述的本专利技术进 行更特定描述,附图中说明了其中一些实施例。然而,应注意,附图仅说明本专利技术的典 型实施例,且因此不应认为限定本专利技术的范围,因为本专利技术可认同其它同等有效的实施 例。图1是根据本专利技术一个实施例的通过图形渲染管线的数据流的概念图; 图2是根据本专利技术一个实施例的通过图1的PROP的数据流的概念图3是根据本专利技术一个实施例的用于切换图1的图形渲染管线中的操作模式的方法 步骤的流程图4a说明根据本专利技术一个实施例,当在晚期Z模式下操作时图1的图形渲染管线的 逻辑配置;图4b说明根据本专利技术一个实施例,当在早期Z模式下操作时图1的图形渲染管线的 逻辑配置;且图5是经配置以实施本专利技术的一个或一个以上方面的计算装置的概念图。 具体实施例方式本专利技术通过减小着色器引擎上的工作负荷(大多数图形渲染管线的众所周知的性能 瓶颈)来改进图形渲染管线的总效率。通过动态地重新配置图形渲染管线以允许在某些 情形下的早期Z测试,允许在着色之前丢弃闭塞的像素,为着色器引擎解除了传统图形 渲染管线中常见的多余工作。图1是根据本专利技术一个实施例通过图形渲染管线100的数据流的概念图。如图所示, 设置引擎110从在处理器(未图示)上执行的驱动程序接收几何图元。设置引擎110对 传入的图元进行操作,并发出经变换和处理的适于向光栅引擎115呈现的几何图元。设 置引擎110还对传入的含有"状态束(state bundle)"的命令进行操作。状态束含有对 (不限于)在图形渲染管线100的各个处理单元中将如何处理后续的图像图元进行定义 的数据。来自状态束的数据可保留在那些处理单元中以便稍后的参考。设置引擎110跟 踪图形渲染管线100中的渲染状态并协调其中的某些变化。渲染状态包含(不限于)与 图形渲染管线100内各点处的渲染过程相关联的不同变量、模式和设定。某些渲染状态 变量、模式或设定是在对给定图元起始渲染过程之前建立的,而某些渲染状态在图元前 进通过图形渲染管线100时被动态更新。如下文更详细描述,滞后计数是设置引擎110 内管理的渲染状态的一个要素。滞后计数保持在滞后计数器111中。光栅引擎115计算几何图元的覆盖范围并发出像素图元以用于进一步处理。另外, 光栅引擎115还针对每一像素计算相关联的Z值。Z光栅操作单元(ZROP) 120将当前像素图元的Z值与相应像素位置的先前存储的 Z值进行比较。来自ZROP 120的结果确定保持还是丢弃各个像素图元。更具体来说, ZROP引擎120将每一当前像素的Z值与先前存储在深度缓冲器(未图示)中的相应像 素位置的Z值进行比较。同样,所述过程称为"Z测试"。如果当前像素通过了Z测试, 那么ZROP 120视需要将像素的Z值写入到通常驻存在帧缓冲器160中的深度缓冲器。 如果像素未通过Z测试,那么驻存在预光栅操作(PROP) 130单元中的Z解析引擎(未 图示)将所述像素丢弃,且ZROP 120不会将任何Z值信息写入到深度缓冲器。所属领 域的技术人员了解,除了确定像素可见度的Z值以外,还可视需要与Z值结合而使用模 板值来最终确定特定的像素通过还是未通过Z测试。因此,本文对Z值的任何参考在适 当时都可适用于模板值。着色器引擎140对像素图元进行操作以计算(不限于)像素的颜色和Z值,如着色 器引擎140的程序设计所确定。如ZROP 120中的Z测试本文档来自技高网
...

【技术保护点】
一种用于处理图形图元的可配置图形渲染管线,所述图形渲染管线包括:设置引擎,其经配置以确定应在早期Z模式还是晚期Z模式中进行处理;光栅引擎,其经配置以从所述设置引擎接收几何图元并将所述几何图元转换为一个或一个以上像素图元; 着色器引擎,其经配置以对与像素图元关联的一个或一个以上样本执行着色操作;Z光栅操作(ZROP)单元,其经配置以对所述样本的每一者执行Z测试;Z解析引擎,其经配置以针对每一样本、基于与所述样本关联的Z测试结果来确定应保留还 是丢弃所述样本;和预光栅操作(PROP)单元,其经配置以修改所述着色器引擎与所述ZROP单元之间的数据流路径以支持早期Z模式和晚期Z模式两者,其中当所述图形渲染管线经配置以用于早期Z模式时,与所述像素图元关联的所述样本首先由 所述ZROP单元和所述Z解析引擎处理且接着由所述着色器引擎处理,且当所述图形渲染管线经配置以用于晚期Z模式时,所述样本首先由所述着色器引擎处理且接着由所述ZROP单元和所述Z解析引擎处理。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:马克J弗伦奇埃米特M基尔加里弗史蒂文E莫尔纳沃尔特R斯坦纳道格拉斯A沃里斯阿达姆克拉克魏特肯珀
申请(专利权)人:辉达公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1