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

使用压缩数据的每样本MSAA渲染制造技术

技术编号:19397295 阅读:27 留言:0更新日期:2018-11-10 05:10
通过确定多采样抗混叠着色器中的子样本之间是否存在冗余,确定使用至少两种优化技术中的哪一种来减少冗余,以及使用所选择的技术来消除冗余着色器线程,当在多采样抗混叠中以样本频率进行采样时可改善性能并且减少功耗。

【技术实现步骤摘要】
【国外来华专利技术】使用压缩数据的每样本MSAA渲染
技术介绍
本申请大体涉及图形处理。在图形处理中,光栅化流水线创建对对象的描绘。到光栅化流水线的输入由要被渲染的图元(通常是三角形)的顶点组成。顶点位置用于确定图元将可见的像素。出现的一个问题叫做沿着边缘的“混叠(aliasing)”。混叠通常出现在直线看起来像锯齿状边缘的地方。因此,已经开发出抗混叠技术来抵消混叠。一种这样的技术是多采样、抗混叠(MSAA)。通常,可以通过过采样或超级采样(即以比旨在获得的输出的速率更高的速率进行采样)来减少混叠。多采样、抗混叠(MSAA)涉及对m个样本的超级采样(mxMSAA),其中m个样本被称为子样本,因为每个像素具有多个样本。在MSAA中,并不总是为每个子样本执行像素着色器。相反,它对图元覆盖至少一个子样本的每个像素仅执行一次。这称为以像素频率执行。以像素频率运行的MSAA执行每像素一个像素着色器线程,并将像素输出存储在由图元覆盖的每个子样本位置处。压缩方案将允许冗余子样本被最低限度地写出到存储器。以样本频率运行的MSAA将针对由图元覆盖的每个子样本运行像素着色器,并将数据从对应像素着色器调用写出到每个子样本。然后在MSAA和在常规的光栅化流水线中,像素着色器使用被内插到像素中心的顶点属性来获取纹理并执行照明。一些三维(3D)图形应用以样本频率执行某一像素着色。这意味着,绘制将对由覆盖着像素的图元所覆盖的每个子样本执行一个像素着色器线程。附图说明参照以下附图描述一些实施例:图1是一个实施例的系统架构;图2是一个实施例的流程图;图3是另一实施例的流程图;图4是根据一个实施例的处理系统的框图;图5是根据一个实施例的处理器的框图;图6是根据一个实施例的图形处理器的框图;图7是根据一个实施例的图形处理器引擎的框图;图8是图形处理器的另一实施例的框图;图9是根据一个实施例的对线程执行逻辑的描绘。图10是根据一些实施例的图形处理器指令格式的框图;图11是图形处理器的另一实施例的框图;图12A是根据一些实施例的图形处理器命令格式的框图;图12B是根据一些实施例的示出了图形处理器命令序列的框图;图13是根据一些实施例的对示例性图形软件架构的描绘;图14是根据一些实施例的示出了IP核开发系统的框图;以及图15是根据一些实施例的示出了示例性芯片上系统集成电路的框图。具体实施方式存在针对单个像素的样本频率线程将针对渲染的子样本中的两个或更多个产生相同的结果的时候。当未在子样本位置之间内插子样本输入时、或者被内插的像素着色器输入不影响最终结果时、或者输入对于多个子样本而言是相同时,发生此情况。可以减少或消除与产生重复结果的子样本线程相关的额外工作。在一些实施例中,减少这项工作可以导致性能的改善和降低的功耗。存在两种像素着色器执行模式。像素频率着色器执行意味着针对实际将呈现在显示屏上的每个像素仅运行一个执行线程。样本频率意味着对于每像素的多个子样本中的每一个样本存在一个执行线程。在多采样中,通过在像素着色器中每像素使用附加样本来校正混叠的锯齿状边缘。因此,在以每样本模式操作的4xMSAA中,每个像素通常有四个线程,每个线程用于四个样本中的每一个。然后,在解析(resolve)步骤中,确定将如何使用来自该像素的每个样本的数据来绘制像素。在执行样本频率绘制时由图形处理单元(GPU)执行的冗余工作被减少。这可以通过使编译器、硬件、固件或图形驱动器评估正被执行的像素着色器来完成,包括在着色器编译时或之后,在运行时分析子样本的性质。在此步骤期间,编译器或其他实体首先确定图形处理器是否要以样本频率运行代码。如果是,则该实体确定子样本之间是否存在可能的冗余。如果实体识别出可以被优化的情况,则可以使用各种方法来消除或减少不需要的工作,包括以下内容:1)机会检测器可以识别涉及不需要的工作的实例,然后指示线程分派单元使用样本频率线程分派选择器来选择哪些线程要分派。2)着色器编译器编译要以像素频率执行的着色器的专用版本,然后为了获得正确的结果,对像素内的每个唯一或非冗余样本运行额外代码。作为示例,假设图元边缘将像素区域分成两部分,使得在4xMSAA中,边缘的一侧上的两个样本是白色的,并且边缘的另一侧上的两个样本是黑色的。然后,对于白色样本仅执行一个线程(不是两个线程),并且对于黑色样本仅执行一个线程(不是两个线程)。因此,仅在需要时才进行额外的样本级别工作。在替代实施例中,取决于表面是如何被压缩的,对于白色样本仅执行一个线程,但是对于黑色样本实现两个线程。这是因为压缩技术可能只能压缩相同的值,而不能压缩多组相同的值。可以使用任何类型的压缩技术(梯度、重复的相同值等)。3)着色器编译器编译像素着色器的一版本,该版本将在检测到时立即跳过冗余子样本的工作。对于8xMSAA的每样本绘制分派,在现有方法中,执行八个工作线程。在一些实施例中,所有子样本相同的常见情况可以执行少至一个工作线程-在最佳情况下,实现绘制级别的高达8倍的工作减少。在一些实施例中,这可以改善性能并降低功耗。图1中所示的计算系统10可以是任何基于处理器的系统,包括,举几个例子,膝上型计算机、平板电脑、蜂窝电话、台式计算机或导航设备。它可以包括耦合到一个或多个图形处理单元(GPU)14的一个或多个中央处理单元(CPU)12。一个或多个CPU12可以包括一个或多个图形设备驱动器22。每个设备驱动器可以包括着色器编译器16和控制表面更新器24。着色器编译器16包括样本频率着色器机会检测器18和样本频率着色器优化器20。CPU或多个CPU被耦合到存储器26。存储器存储经优化编译的样本频率着色器28和多样本表面的经压缩控制表面30。控制表面是绘图表面或区域的压缩表示,其通常用于减少存储器带宽。在一个实施例中,它的使用现在可被扩展成使用位级编码方案来保持跟踪哪些子样本是唯一的。对于给定样本(例如,样本0),编码告知像素的其他样本是相同还是不同。图形处理单元14还包括控制表面更新器32。线程分派逻辑34被耦合到存储器26。逻辑34包括样本频率线程分派选择器36和控制更新器38。在一些实施例中,仅使用控制表面更新器24和38中的一个。线程分派逻辑34被耦合到图形处理单元14的执行单元40。控制表面更新器必要时更新位级编码。在一些实施例中,它使目的地渲染目标被尽可能地压缩。源渲染目标是像素着色器所接收的,并且目的地渲染目标是着色器的输出。然后,当引用更新的控制表面时,它具有关于唯一性(或不唯一)或每个样本的所有正确信息。例如,源资源可能具有样本级别的冗余。如果没有记录保存在控制面更新器中,则存储器将仍然需要存储关于冗余样本的细节的数据。具体地,更新目的地控制表面,以便以压缩形式指示哪些样本相同,而不是存储每个样本的所有着色器数据。然后,冗余样本数据可以简单地由一个或多个位来指示,该一个或多个位指示数据是否与先前样本的数据相同。样本频率着色器机会检测器20负责识别满足优化标准的像素着色器。在一个实施例中,样本频率着色器机会检测器识别以样本频率执行的着色器,并将后续的优化步骤应用于所有这些情况。在扩展实施例中,在如下不会提供益处的情况下,检测器可以选择性地选择不应用优化。如果着色器使用是由光栅化器生成的被声称是样本频率的坐标的输本文档来自技高网...

【技术保护点】
1.一种方法,包括:确定是否要以样本频率运行着色器;以及如果要以样本频率运行所述着色器,则确定两个或更多个子样本之间是否存在冗余。

【技术特征摘要】
【国外来华专利技术】2016.03.29 US 15/083,7711.一种方法,包括:确定是否要以样本频率运行着色器;以及如果要以样本频率运行所述着色器,则确定两个或更多个子样本之间是否存在冗余。2.如权利要求1所述的方法,包括:确定样本频率着色器中的所述子样本之间是否存在冗余;确定使用至少两种优化技术中的哪一种来减少冗余;以及使用所选择的技术来消除冗余着色器线程。3.如权利要求1所述的方法,包括在编译期间确定是否存在冗余。4.如权利要求2所述的方法,包括识别具有非冗余数据的子样本,并且仅针对具有非冗余数据的样本分派线程。5.如权利要求2所述的方法,包括编译以像素频率执行的着色器。6.如权利要求1所述的方法,包括存储关于像素内的一个或多个子样本是否具有相同的颜色值的信息。7.如权利要求6所述的方法,包括如果两个子样本是相同值,则存储一个子样本的颜色信息,并且仅指示另一子样本具有相同的信息而不存储相同的信息两次。8.如权利要求1所述的方法,包括识别混合像素的所述源和目的地中都存在冗余的情况,并使用经压缩的输入和输出像素数据,减少不必要的混合工作和存储器带宽,以及维持最大压缩状态。9.如权利要求8所述的方法,包括重新压缩具有相同值的混合像素以节省带宽。10.一种或多种非瞬态计算机可读介质,存储用于执行包括以下各项操作的序列的指令:确定是否要以样本频率运行着色器;以及如果要以样本频率运行所述着色器,则确定两个或更多个子样本之间是否存在冗余。11.如权利要求10所述的介质,进一步存储用于执行包括以下操作的序列的指令:确定样本频率着色器中的所述子样本之间是否存在冗余;确定使用至少两种优化技术中的哪一种来减少冗余;以及使用所选择的技术来消除冗余着色器线程。12.如权利要求11所述的介质,进一步存储用于执行包括以下操作的序列的指令:在编译期间确定是否存在冗余。13.如权利要求11所述的介质,进一步存储用于执行包括以下操作的序列的指令:识别具有非冗余数据...

【专利技术属性】
技术研发人员:J·G·杰拉齐T·T·施吕斯列尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1