映射多速率着色到单片程序的制作方法

文档序号:9261764阅读:529来源:国知局
映射多速率着色到单片程序的制作方法
【专利说明】映射多速率着色到单片程序
【背景技术】
[0001] 3D管线中的功率消耗的很大一部分是由于像素着色。特别是在手持设备中,更高 的显示分辨率和图形质量与最小化功率耗散的需求不一致。因此,更有效地运行像素着色 器将尤其有利。
[0002] 粗像素着色利用如下事实;与表面着色相比,几何遮蔽(occlusion)通常引入更 高频率细节,并且W比可见性测试更低的速率执行着色。粗像素着色很适合高像素密度显 示,其中减小着色速率的效果从正常的观看距离几乎不可辨别。可W在对用户而言模糊的 或者W其它方式不太可感知的屏幕区域中进一步降低着色速率,例如受运动或散焦模糊影 响的区域,或者在用户的中央窝视觉之外的区域。
[0003] 在着色器W每像素或者每样本速率执行的当前图形架构上,难于利用该些机会。 通过改变帖缓冲器分辨率,可W粗趟地控制着色速率,但是该不允许着色速率更细粒度的 变化,例如仍然禪合到可见性采样速率的每对象、每=角形、或者每图像区域。
[0004] 粗像素着色(CP巧是用于在保持可见性采样速率恒定的同时改变光栅化管线中 的着色速率的架构。
[0005] 已经提出了通过W比可见性采样速率更低的速率对着色进行采样来改善着色效 率的许多方法。多重采样抗银齿(MSAA)是经常由图形处理器硬件支持的一种该样的技术。 利用MSAA,每像素地存储多个覆盖样本(也被称为可见性样本),但是针对由基元覆盖的每 一个像素,仅执行一次像素着色器。该与超采样形成对比,在超采样中,每被覆盖的样本执 行一次着色器。
【附图说明】
[0006] 关于W下附图描述了一些实施例:
[0007] 图1描绘了根据一个实施例的粗四元组像素布局及其4宽度SIMD执行序列; [000引图2描绘了根据一个实施例的另一粗像素布局及其4宽度SIMD执行序列;
[0009] 图3A是根据一个实施例用于内核处理粗速率着色和像素速率着色的流程图;
[0010] 图3B是根据一个实施例用于固定功能加速器的流程图;
[0011] 图4是后光栅化级的管线抽象;
[0012] 图5描绘了用于粗像素着色的一部分图形管线;
[001引图6描绘了利用在4宽度SIMD处理器上的单个线程中调度的粗像素四元组的多 速率着色;
[0014] 图7是根据一个实施例的数据处理系统的框图;
[0015] 图8是根据一个实施例在图7中示出的处理器的框图;
[0016] 图9是根据一个实施例的图7的图形处理器的框图。
[0017] 图10是根据一个实施例的图形处理引擎的框图;
[0018] 图11是根据另一实施例的图形处理器的框图;
[0019] 图12说明了用于一个实施例的线程执行逻辑;
[0020] 图13是根据一个实施例的图形处理器执行单元指令格式的框图;W及
[0021] 图14是用于一个实施例的图形软件架构。
【具体实施方式】
[0022] 在粗像素着色(CP巧中,W去禪合的方式对着色和可见性进行采样。像素着色在 图像空间着色网格上被怠惰地评估并且被暂时存储在记忆高速缓存中W重用于规则的或 者随机的光栅化(SR)。在另一粗像素采样方案中,在优化的雷耶斯架构中在参数块空间中 对着色进行均匀采样。该些技术允许具有任意栅格间距的着色网格,该在一些实施例中使 能着色速率的更灵活的控制。
[0023] 在一些实施例中,在多速率着色中,将粗速率着色阶段添加到现有的像素速率阶 段的顶部W便显著地改善性能,同时对图像质量具有最小影响。可W将W不同的速率评估 的两个着色阶段映射到在处理器图形单指令多数据(SIMD)引擎上运行的一个单片程序。 单片程序是单层软件,该单层软件的执行不依赖于另一个程序。在一个实施例中,多速率 着色允许单个擅染通路(pass)W-个或多个不同的速率执行着色代码:每像素组、每像 素、W及每样本。
[0024] 新的汇编指令(到固定功能硬件加速器的接口)使程序执行能够从粗速率快速切 换到在SIMD机器上运行的相同内核程序内的像素速率。
[0025] 在一些实施例中,新的固定功能逻辑加速了粗到像素映射,与管理单独程序所要 求的逻辑相比,该新的固定功能逻辑具有低得多的复杂性/成本。同时,使用新逻辑的软件 开销最小;因而,在一些实施例中,其不妨碍单片程序的性能。
[0026] 图1说明了针对粗像素的不同布局映射到一个SIMD程序的1x2像素的粗像素四 元组布局的多速率着色器执行的示例。粗像素是共享单个粗像素着色器评估的结果的像素 组。图2说明了针对2x2粗像素四元组布局的多速率着色器执行的示例。为了简单起见, 上述图仅示出了一个4宽度SIMD四元组,但是该一解决方案适用于映射到更宽SIMD机器 的任何数量的四元组。数字(〇、1、2、3)表示粗像素,而大写字母(A、B、0,)表示像素。每 一幅图的左侧说明了像素在光栅化之后的2维视图,其中颜色较浅的文本中的数字/字母 表示未点亮的像素。右侧示出了在SIMD机器上在单片程序中阶段的执行顺序。
[0027] 在第一阶段粗阶段")中,所有四个SIMD通道执行针对粗像素四元组的粗速率 指令。在下一个阶段(像素阶段# 1)中,相同的SIMD通道用于执行由粗四元组覆盖的像 素四元组的随后组。像素着色器四元组及其到粗像素的映射的集合取决于粗像素布局(例 如,Ixl、lx2、2xl、2x2、2x4、4x2、4x4)和光栅化掩码(一些四元组可能完全未被点亮)二者。 而且,对于每一个组,SIMD执行掩码可W都不相同。
[0028] 在第一阶段中,前S个像素点亮并且第四个像素未点亮,执行掩码是(1、1、1、0), 使得不执行未点亮的像素。针对阶段# 1的粗到像素映射是(〇、1、〇、1),或者粗像素0映 射到像素A、粗像素1映射到像素B、像素C也映射到粗像素0并且像素D映射到粗像素1。 对于阶段# 2,粗到像素映射是2、3、2、3。所有该些条信息在着色器编译时都是未知的,如 果在使用现有的汇编指令集的软件中实现粗到像素转换,则该将导致显著的软件开销。
[0029] 图1和图2中右侧的执行序列说明了使用新的汇编指令的单片程序(粗到像素速 率切换)W减小与阶段转换相关联的软件开销。该新的指令将pixelgroup_id作为输入, 并且针对每一个像素组,其返回:
[0030]pixel_mask-指示在每一个组中哪些像素被点亮
[00扣pixel_to_coarse_mapping-指示针对每一个像素的父粗像素,
[0032](用于调和来自粗阶段输出的阶段间数据),
[003引pixel_rate_ba巧-用于评估输入属性的质屯、空间中的像素位置
[0034] next_group_id-要处理的下一个像素组的标识符
[0035] 该新的指令是到固定功能硬件加速器的接口。当要处理的像素四元组的数量随着 粗四元组布局和光栅化掩码变化时,加速器确定粗四元组到像素四元组的2维映射并且管 理该一映射的其可变扩展。具体地说,如果全部像素未被点亮,则加速器抑制整个四元组。 利用该一方案,单片着色器程序从特定的粗四元组布局和映射进行抽象,并且处理回路中 的像素组,直到硬件加速器通知处理完成(next_group_id= 0)。
[0036]
[0037]
[0038] 根据一些实施例,单个内核运行针对粗速率着色和像素速率着色二者的程序。在 一些实施例中,可W使用SIMD机器,在该SIMD机器中,相同的通道用于粗四元组和由该粗 四元组覆盖的像素四元组。
[0039] 图3A中示出的序列可W在软件、固件和/或硬件中实现。在软件和固件实施例中, 它可W由存储在诸如磁性的、光学的或者半导体存储装置的一个或多个非暂态计算机可读 介质中的计算机执行指令实现。
[0040] 对于图3A中的序列,如在框10中指示的,针对所有的组或四元组实现粗阶段。其 后是在框12中,使用粗到像素映射和执行掩码来针对每一个组实现像素阶段,使得相同的 SIMD通道能够用于执行粗四元组和由该粗四元组覆盖的像素四元组二者。
[0041] 接着,该序列接收像素组标识符(pixel group_id)(框14) W标识诸如四元组的 特定像素组。基于由在图3B中描绘的固定功能加速器确定的像素点亮掩码来针对当前的 像素组设置执行掩码(框16)。接着,如在框18中指示的,粗到像素映射用于在相对应的粗 阶段和像素阶段之间传递用户定义的级间数据。在框20,确定每像素输入属性值并且针对 每一个组执行像素速率着色阶段。在框22,识别要处理的下一个组。
[0042] 根据一些实施例,可W在软件、固件和/或硬件中实现固定功能加速器。在软件和 固件实施例中,可W通过存储在诸如磁性的、光学的或半导体存储装置的一个或多个非暂 态计算机可读介质中的计算机可读指令来实现加速器。
[004引如在图3B中示出的,序列30可W开始于接收新像素组的标识符,如在框32中指 示的。它确定二维粗到像素映射。在该基础上,它确定新像素组、管理可变的扩展和抑制。 如在框34中指示的,针对该四元组确定点亮哪些像素。接着,在框36中,针对该组定义粗 到像素映射并且确定像素位置和质屯、形状。如在框38中指示的,可W确定粗像素到像素四 元组的2D映射。接着,如在框40中指示的,管理该映射的可变扩展。最后,如在框42中指 示的,如果所有像素都未被点亮,则抑制整个四元组。当接收到新的像素组时,该流程继续 循环。加速器返回该新的像素组、它们的执行掩码(图3A的框16) W及针对该一组的粗到 像素映射(图3A的框18)。
[0044] 在一个实施例中,软件(SIMD程序)和硬件(固定功能加速器)之间的唯一接口 和功能划分能够实现多速率着色阶段到一个单片SIMD程序的有效映射。在一个实施例中, 该一方案显著降低了硬件复杂性(逻辑、缓冲)并且不影响性能。
[004引为了允许W低于每像素一次的速率进行着色,引入了粗像素(C巧的概
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1