当前位置: 首页 > 专利查询>英特尔公司专利>正文

基于部分跨度的光栅化制造技术

技术编号:18466224 阅读:67 留言:0更新日期:2018-07-18 16:08
描述了用于基于部分跨度进行光栅化的方法、一种或多种非暂时性计算机可读介质以及装置的技术,所述方法包括:将像素输入划分为块;基于部分跨度的最大数量来确定所述块的数量;并且对所述块进行光栅化。所评估的块的数量可以减少到可以是部分的块的最大数量。减少块的数量可降低功耗和管芯面积。

Rasterization based on partial span

A technique for a method of rasterization based on a partial span, one or more non temporary computer readable media and a device, is described. The method includes: dividing the pixel input into a block; determining the number of the blocks based on the maximum number of partial spans; and rasterization of the block. The number of blocks evaluated can be reduced to the maximum number of blocks that can be partial. Reducing the number of blocks can reduce power consumption and core area.

【技术实现步骤摘要】
【国外来华专利技术】基于部分跨度的光栅化
技术介绍
本专利技术一般涉及图形处理。光栅化是图形处理单元中的关键任务。光栅化确定基元的三角形样本列表。由于这是一项经常发生的任务,所以效率、降低功耗和小芯片面积都非常重要。诸如多重采样抗锯齿(MSAA)之类的图形特征在不影响渲染时间的情况下处理更多信息。为了产生最终的样本掩码,将基元(例如三角形)划分为不同的边。三角形分为三条边,每条边独立计算,然后将三条边的结果合并以生成掩码。为了判断像素是否点亮(实际上在使用中),将16×16像素输入拆分为16个4×4像素子集。也可以使用其他尺寸的像素输入和其他尺寸的像素子集。电路评估4×4像素子集中的每一个并检查4×4像素子集是否被完全覆盖。“完全覆盖”意味着输入中的所有像素点亮。它还检查4×4子集中的所有像素是否“空的”,因为所有16个像素都没有点亮。最后,它会检查4×4子集是否是“部分”的,因为有些像素点亮而有些不点亮。存在验证每一个4×4像素子集的16个块。如果有四条边,则存在64个4×4像素子集(也可以称为块)。附图说明关于以下附图描述一些实施例:图1是对三角形形式的基元的不同MSAA类型的最坏情况的示例的描述;图2是对线路的不同MSAA类型的最坏情况的示例的描述;图3是一个实施例的框图;图4是示出了对于4×4MSAA示例存在的对称性的像素输入的描述;图5是对如何根据一个实施例确定LO4x4的值的描述;图6是根据一个实施例的对示出了在相同的4×4跨度的像素之间也存在对称性的输入的描述;并且图7是根据一个实施例的八跨度框图的描述;图8是根据一个实施例的十二跨度框图的描述;图9是用于一个实施例的流程图;图10是根据一个实施例的处理系统的框图;图11是根据一个实施例的处理器的框图;图12是根据一个实施例的图形处理器的框图;图13是根据一个实施例的图形处理引擎的框图;图14是图形处理器的另一个实施例的框图;图15是根据一个实施例的对线程执行逻辑的描述;图16是根据一些实施例的图形处理器指令格式的框图;图17是图形处理器的另一个实施例的框图;图18A是根据一些实施例的图形处理器命令格式的框图;图18B是示出了根据一些实施例的图形处理器命令序列的框图;图19是根据一些实施例的对示例性图形软件架构的描述;图20是示出了根据一些实施例的IP核开发系统的框图;图21是示出了根据一些实施例的示例性片上系统集成电路的框图。图22是示出了对于三角形T计算的边的x,y曲线图。图23是示出了如何根据一个实施例确定正值和负值的x,y曲线图;并且图24是根据一个实施例的示出了Lo16x16的曲线图。具体实施方式评估的4×4块的数量可以减少到可以是部分的4×4块的最大数量。在一个实施例中,对于4×MSAA,对于总共40个4×4块,存在2×12、4×4、2×8和4×4块,与不减少块数的传统技术相比,其面积减少33%。在一些实施例中,块的尺寸并不重要,并且可以使用包括更大和更小尺寸的块的不同尺寸的块。在一些实施例中,使用1×达到4×MSAA,可以减少4×4像素子集或块的数量,而不会在对基元产生性能影响。在一些实施例中,减少4×4块的数量减少了功耗和管芯面积。4×4块的完全覆盖和空跨度具有已知的掩码。因此,只有部分扫描需要用4×4块进行计算,允许更显著地减少必须计算的块数。N×M二维像素阵列中的线只能穿过N+M-1次像素扫描的特性可用于减少部分跨度的数量。在一些实施例中,仅计算部分跨度而不是所有跨度以降低功耗并提高性能。该算法可以利用这样的事实:并非所有跨度都是部分的,而是仅跨度总数的一小部分是部分的。图1示出了基元为三角形的不同MSAA类型的最坏情况的示例。例如,对于1xMSAA下的第一个三角形,线A有7个跨度,线B有7个跨度,而线C有1个跨度,如描述下方的命名7、7、1所示。对于每个边的1xMSAA,最差的情况是从最左边的三角形的两条边是7,7,中间或最右边的三角形的一条边是5。下表示出了图1中MSAA情况中的每个所需的4×4块的数量:MSAA最坏情况4×4块的数量1x7,7,57,7,52x5,5,310,10,64x3,3,212,12,8对于2xMSAA,4×4最差情况块的数量加倍,而对于4×MSAA,最差情况块的数量为四倍。图2示出了1x、2x和4x是MSAA类型的线的不同MSAA类型的最坏情况的示例。下表示出了图2中MSAA情况中的每个所需的4x块的数量:MSAA最坏情况4×4块的数量1x7,7,4,47,7,4,42x5,5,3,310,10,6,64x3,3,2,212,12,8,8下表示出了与不减少块的数量的技术相比,具有四个边的三种MSAA情况中的每一种(图2)的跨度节省:MSAA最坏情况4×4块的数量总节省%节省1x7,7,4,47,7,4,4-4265%2x5,5,3,310,10,6,6-3250%4x3,3,2,12,12,8,8-2438%下表示出了与16×16像素输入最坏情况(无块减少)相比,就发送数据的周期数而言针对配置中的每个的吞吐量:MSAA7,7,4,410,10,6,612,12,8,816,16,16,161x11112x42224x8844下表示出了边的每个的使用百分比:16x164x44x4总计空/全点亮5.15%48.27%25.53%部分94.85%51.73%27.36%1个边94.85%51.73%14.15%2个边82.39%49.43%13.52%3个边12.46%2.31%0.63%最后一栏示出了来自总数4×4的4×4的百分比。例如,当乘以94.85%、55.7%和48.27%时,得到4×4的空/部分值的总数,表明根据4×4总数,其中25.53%为空/全点亮。因此,少于百分之一的时间,需要多于两个边。因此,减少跨度块的性能影响很小,但对管芯面积有很大影响。图3示出了一个实施例的框图。描述的情况是针对4xMSAA(12,12,8,8)。边界框22包含关于包含基元的矩形的信息(图1或图2)。超出边界框的任何内容都是无效的。边界框确定出现在框外的跨度并将其标记为空。边界框22获得左上角和右下角的x,y坐标以及相关线或边的公式。跨度选择框24确定针对每个边0-3,部分、空和完全覆盖的跨度。它们针对基元边使用相同的线性方程:L0(x,y)=Lo16x16+ΔLx+ΔLy.其中ΔLx是x方向上基元边的范围,ΔLy是y方向上的基元边的范围。在图22中,线A是针对三角形T计算的边。其线性方程是:C+m*x+y=0Lo+Ly*x+Lx*y=0Lo是该行击中Y轴的位置。想法是使它为0。现在A线上方的任何一点都是正的,而A线下方的任何一点都是负的,如图23所示。点B是正的,是边的正的部分,而点C是负的部分。如果要处理16x16(像素,兆跨度),则图24中示出的Lo16x16是穿过兆跨度的中心的线性方程。Lo(x,y)只是任何点x,y所具有的值。如果它是正的,它可能在三角形T内,而如果它是负的,则它在三角形T之外。为了找到Lo(x,y),需要针对点的初始Lo。那么新的点是Lo(x,y)-Lo(origx,origy)+Lx(origx-x)+Ly(orig-y)。如果新的Lo(x,y)大于0,则该点可能在三角形内。如果对于本文档来自技高网...

【技术保护点】
1.一种方法,包括:将像素输入划分为块;基于部分跨度的最大数量来确定所述块的数量;以及对所述块进行光栅化。

【技术特征摘要】
【国外来华专利技术】2015.12.21 US 14/976,2141.一种方法,包括:将像素输入划分为块;基于部分跨度的最大数量来确定所述块的数量;以及对所述块进行光栅化。2.如权利要求1所述的方法,包括提供具有不同数量的比较器的两个阵列。3.如权利要求2所述的方法,包括确定所述像素输入中的部分跨度的数量。4.如权利要求3所述的方法,包括基于所述部分跨度的数量来选择阵列。5.如权利要求1所述的方法,包括使所述部分跨度的最大数量基于基元的类型。6.如权利要求1所述的方法,包括使所述部分跨度的最大数量基于多重采样抗锯齿的类型。7.如权利要求1所述的方法,包括将所述块的数量限制为四十。8.如权利要求1所述的方法,包括仅处理部分跨度。9.如权利要求1所述的方法,包括基于其具有正线性方程和负线性方程的事实来确定跨度是否是部分的。10.如权利要求1所述的方法,其中,所述线性方程为Lo(x,y)=Lo16x16+ΔLx+ΔLy,其中,ΔLx是x方向上的基元边的范围,并且ΔLy是y方向上的基元边的范围,并且Lo16x16是通过16x16像素阵列的线性方程。11.一个或多个存储指令的非暂时性计算机可读介质,所述指令用于执行包括以下的序列:将像素输入划分为块;基于部分跨度的最大数量来确定所述块的数量;以及对所述块进行光栅化。12.如权利要求11所述的介质,还存储指令,所述指令用于执行包括提供具有不同数量的比较器的两个阵列的序列。13.如权利要求12所述的介质,还存储指令,所述指令用于执行包括确定所述像素输入中的部分跨度的数量的序列。14.如权利要求13所述的介质,还存储指令,所述指令用于执行包括基于所述部分跨度的数量来选择阵列的序列。15.如权利要求11所述的介质,还存储指令,所述指令用于执行包括使所述部分跨度的最大数量基于基元的类型的序列。16.如权利要求11所述的介质,还存储指令,所述指令用于执行包括...

【专利技术属性】
技术研发人员:S·马伊尤兰T·皮亚扎W·B·萨德勒J·F·加西亚帕邦
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1