CN112017103A - 插值方法、图形管线和图形处理器 - Google Patents

插值方法、图形管线和图形处理器 Download PDF

Info

Publication number
CN112017103A
CN112017103A CN202010466039.8A CN202010466039A CN112017103A CN 112017103 A CN112017103 A CN 112017103A CN 202010466039 A CN202010466039 A CN 202010466039A CN 112017103 A CN112017103 A CN 112017103A
Authority
CN
China
Prior art keywords
primitive
attributes
interpolation
determined
constant
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.)
Pending
Application number
CN202010466039.8A
Other languages
English (en)
Inventor
德里克·蓝兹
叶夫根尼·乌尔登科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US16/559,616 external-priority patent/US11080924B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN112017103A publication Critical patent/CN112017103A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

提供了插值方法、图形管线和图形处理器。所述图形管线可通过当在着色器程序中已经指定线性透视插值技术时确定图元的每个顶点的齐次坐标是否在1的预定阈值内,并且基于图元的每个顶点的齐次坐标在1的预定阈值内而使用线性插值技术确定元素的一个或多个属性,来在GPU硬件已被编程或设置为执行线性透视插值时减少倒数、乘法或加法计算用于插值计算的次数。

Description

插值方法、图形管线和图形处理器
技术领域
在此公开的主题涉及图形处理器(GPU)。更具体地讲,在此公开的主题涉及当GPU硬件已被编程为执行线性透视插值时可减少倒数、乘法和/或加法计算用于插值计算的次数的系统和方法。
背景技术
像素/片段着色器程序通常处理称为“属性”的多个输入数据元素。通常,针对单个样本执行的每个着色器程序线程可处理十六个或更多个不同的属性,尽管也可处理更少的属性。可通过插值计算来处理属性。通常,每个元素可独立于其他元素。
对于大多数应用编程接口(API),像素/片段着色器数据的插值可使用三种插值模式(平面插值模式、线性插值模式或线性透视插值模式)中的一种。对于将被使用的平面插值模式,给定图元(primitive)的所有样本的所有值是相同的。对于将被使用的线性插值模式,计算给定图元的所有样本的所有值,就像所述值位于平面上一样。对于将被使用的线性透视插值模式,给定图元的所有样本的所有值以平面方式和应用的透视校正(称为“透视扭曲”)来计算。计算上最昂贵的插值模式是线性透视插值,并且透视校正的计算不是线性的。
在图形管线(pipeline)中,图像内的位置信息可使用四个坐标(X(图像中的水平位置)、Y(图像中的垂直位置)、Z(图像中的距眼睛的深度或距离)和W(齐次坐标))来表示。齐次坐标可用于执行透视校正插值。图像中的图元的每个顶点具有位置(X,Y,Z,W)以及与该顶点相关联的其他属性的零个值或者更多个值。
一种常用的API不向应用程序员提供线性插值模式选项。为了提供线性插值,程序员选择线性透视模式,并将图元的所有顶点的W坐标的值设置为等于1.0。这样做提供了线性插值,但也使用了与线性透视插值相关联的全部计算成本。完全线性透视插值的最大单笔成本可以是1/W的插值,从使用倒数处理的1/W对W的后续运算,随后是W和线性插值结果的乘法。
典型的GPU可具有针对插值和特别是针对倒数计算提供的有限区域。结果,用于插值的倒数、乘法或除法计算可存在性能瓶颈。
发明内容
示例实施例提供了一种对在图形管线中渲染的图元的元素的一个或多个属性进行插值的方法,所述方法可包括:基于已经指定用于渲染图元的线性透视插值技术,确定元素的齐次坐标是否在以1为中心的预定阈值范围内;基于元素的齐次坐标在以1为中心的预定阈值范围内,使用线性插值技术对元素的属性进行插值;以及基于元素的齐次坐标在以1为中心的预定阈值范围外,使用线性透视插值技术对元素的属性进行插值。在一个实施例中,确定图元的齐次坐标是否在以1为中心的预定阈值范围内的步骤还可包括:确定图元的每个顶点的齐次坐标是否等于1。在另一实施例中,元素的属性还可与图元的顶点相关联。在又一实施例中,图元可以是三角形或线。
示例实施例提供一种图形管线,所述图形管线可包括:输入部、比较器和插值器。输入部可接收图元的一个或多个属性。比较器可将图元的属性的齐次坐标的值与1进行比较,以基于已经指定用于渲染图元的线性透视插值技术来确定齐次坐标的值是否在以1为中心的预定阈值范围内。插值器可基于齐次坐标的值被确定为在以1为中心的预定阈值范围内,使用线性插值技术来对图元的属性进行插值,并且可基于齐次坐标的值被确定为在以1为中心的预定阈值范围外,使用线性透视插值技术来对图元的属性进行插值。在一个实施例中,比较器还可基于已经指定用于渲染图元的线性透视插值技术来确定图元的齐次坐标的值是否是不等于1的常数,插值器还可基于齐次坐标的值被确定为是不等于1的常数,使用线性透视插值技术对图元的属性进行插值,并且基于齐次坐标的值被确定为是等于1的常数,使用线性插值技术对图元的属性进行插值。在另一实施例中,比较器还可确定图元的属性的平面方程的系数是否是常数,插值器还可基于平面方程的系数被确定为不是常数来对图元的属性进行插值,并且可基于平面方程的系数被确定为常数而省略对图元的属性进行插值。
示例实施例提供一种图形处理器,所述图形处理器可包括图形管线和着色器单元。图形管线可包括:输入部、比较器和插值器。输入部可接收图元的一个或多个属性。比较器可基于已经指定用于渲染图元的线性透视插值技术来确定图元的齐次坐标的值是否是不等于1的常数。插值器可基于齐次坐标的值被确定为是不等于1的常数,使用线性透视插值技术对图元的属性进行插值,并且可基于齐次坐标的值是被确定为是等于1的常数,使用线性插值技术对图元的属性进行插值。着色器可接收插值器的输出并且可渲染图元。在一个实施例中,比较器还可将图元的属性的齐次坐标的值与1进行比较,以基于已经指定用于渲染图元的线性透视插值技术来确定齐次坐标的值是否在以1为中心的预定阈值范围内,插值器还可基于齐次坐标的值被确定为在以1为中心的预定阈值范围内,使用线性插值技术来对图元的属性进行插值,并且可基于齐次坐标的值被确定为在以1为中心的预定阈值范围外,使用线性透视插值技术来对图元的属性进行插值。在另一实施例中,比较器还可确定图元的属性的平面方程的系数是否是常数,插值器还可基于平面方程的系数被确定为不是常数来对图元的属性进行插值,并且可基于平面方程的系数被确定为常数而省略对图元的属性进行插值。
附图说明
在下面的部分中,将参照附图中示出的示例性实施例来描述在此公开的主题的方面,其中:
图1A描绘可从人的眼睛观看的3D空间中的示例对象;
图1B描绘投影到2D屏幕上的图1A的示例对象;
图2A描绘在观看者的视锥体(未显示)内远离观看者倾斜的示例平面对象的透视图;
图2B描绘投影到2D屏幕(未示出)上的图2A的示例;
图3描绘根据在此公开的主题的示例GPU的可包含平面W优化的插值管线部分的框图;
图4描绘根据在此公开的主题的可被配置为包含平面W优化的插值单元的示例实施例的框图;
图5描绘示出根据在此公开的主题的在裁剪-剔除-视口单元的输入处的示例位置的框图,在该示例位置中检测齐次系数W是否等于或几乎等于1.0可以是有效的;
图6描绘示出根据在此公开的主题的在设置单元内的示例位置的框图,在该示例位置中检测齐次系数是否等于或几乎等于1.0可以是有效的;
图7描绘根据在此公开的主题的在已经在例如着色器程序中指定线性透视插值技术的情况下对与在图形管线中渲染的图元相关联的元素的一个或多个属性进行插值的方法的流程图;
图8描绘根据在此公开的主题的可使用的在齐次系数W是否等于或几乎等于1.0的确定过程之后的优化的示例实施例的流程图;
图9描绘包括图形管线的电子装置,当GPU硬件已被例如编程为执行线性透视插值时,该图形管线可减少倒数、乘法或除法计算用于插值计算的次数。
具体实施方式
在下面的具体实施方式中,阐述大量具体细节以提供公开的全面理解。然而,本领域的技术人员将理解,可在没有这些具体细节的情况下实践公开的方面。在其他实例中,公知的方法、过程、组件和电路未被详细描述,以免使在此公开的主题模糊。
贯穿本说明书对“一个实施例”或者“实施例”的引用表示结合实施例描述的特定特征、结构或特性可包括在在此公开的至少一个实施例中。因此,在贯穿本说明书的各个位置出现的短语“在一个实施例中”或“在实施例中”或者“根据一个实施例”(或者具有类似含义的其他短语)可不必全部表示相同的实施例。此外,在一个或多个实施例中,特定特征、结构或特性可以以任何适合的方式组合。在这个方面,如在此使用的,词“示例性”表示“用作示例、实例或说明”。在此描述的如“示例性”的任何实施例不被解释为必然优选或优于其他实施例。此外,在一个或多个实施例中,特定特征、结构或特性可以以任何适合的方式组合。此外,根据在此讨论的上下文,单数术语可包括对应的复数形式,复数术语可包括对应的单数形式。类似地,用连字符连接的词(例如,“二维(two-dimensional)”、“预定(pre-determined)”、“像素特定(pixel-specific)”等)可与对应的非连字符版本(例如,“二维(two dimensional)”、“预定(predetermined)”、“像素特定(pixel specific)”等)偶尔可互换地使用,并且大写条目(例如,“计数器时钟(Counter Clock)”、“行选择(RowSelect)”、“像素输出(PIXOUT)”等)可与对应的非大写版本(例如,“计数器时钟(counterclock)”、“行选择(row select)”、“像素输出(pixout)”等)可互换地使用。这样的偶尔可互换的使用不应被视为彼此不一致。
还应注意,在此示出和讨论的各种附图(包括组件图)仅用于说明性目的,并且未按比例绘制。类似地,仅出于说明性目的示出了各种波形和时序图。例如,为了清楚,一些元件的尺寸可能相对于其他元件被夸大。此外,如果认为适合,在附图中重复参考标号以指示对应的和/或类似的元件。
在此使用的术语仅是为了描述一些示例实施例的目的,并不意图限制所要求保护的主题。如在此使用的,除非上下文明确另有指示,否则单数形式也意图包括复数形式。还将理解,当在本说明书中使用术语“包括”及其变型时,指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。
如在此使用的术语“第一”、“第二”等被用作它们之后的名词的标签,并且除非这样清楚地定义,否则不暗示任何类型(例如,空间、时间、逻辑等)的排序。此外,可在两个或更多个附图中使用相同的参考标号来表示具有相同或类似功能的部件、组件、块、电路、单元或模块。然而,这样的使用仅为了说明的简单和便于讨论;它并不暗示这样的组件或单元的结构或构造细节在所有实施例中相同,或者这样共同参考的部件/模块是实现在此公开的多个示例实施例中的一些示例实施例的唯一方式。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不以理想化或过于形式化的含义来解释。
如在此使用,术语“模块”表示被配置为结合模块提供在此描述的功能的软件、固件和/或硬件的任何组合。软件可被实现为软件包、代码和/或指令集或者指令,如在此描述的任何实施方式中使用的术语“硬件”可包括例如单个或者以任何组合的硬接线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可共同地或单独地被实现为形成较大系统(诸如,但不限于集成电路(IC)、片上系统(SoC)等)的部分的电路。在此公开的各种组件和/或功能块可被实现为模块,该模块可包括结合各种组件和/或功能块提供在此描述的功能的软件、固件和/或硬件。
在此公开的主题提供一种平面W优化,所述平面W优化在GPU硬件可能已经被编程为执行线性透视插值时可减少倒数、乘法和/或加法计算用于插值计算的次数。当已经通过API指定线性透视插值并且可修改计算以便使用线性计算时,可检测可使用线性插值的条件。确定是否可使用在此公开的优化的一种方法是确定图元的顶点的W值是否全部等于1.0。确定是否可使用在此公开的优化的另一方法是确定从图元的顶点计算的W平面方程系数或重心因子(barycentric factor)是否等于1.0。在此公开的优化的应用可节省GPU内的面积和/或可提高图形管线的性能。还可节省能量,并且可进一步优化PPA(功率、性能和面积)。
在此公开的主题可在图形管线中的多个位置中的一个位置中实现。在一个示例实施例中,优化可在实际执行大部分插值计算的最终插值阶段实现。
两种算法(平面方程插值算法和重心插值算法)主要用于对数据进行插值。这两种算法通常包括相似的计算并生成相同的结果。下面的讨论集中于平面方程插值,然而,同样的原理适用于重心插值。考虑图1A中的从人的眼睛观看的三维(3D)空间中的示例对象100。如图1A中所描绘,这样的视图被称为视椎体101。例如,如果对象100在3D空间中远离观看者(或朝向观看者)倾斜,则来自眼睛视点的对象100的形状如在对象的位置处的图像数据一样改变。当对象100被投影到二维(2D)屏幕102上(诸如,图1B中所描绘)时,必须以考虑3D倾斜(被称为透视扭曲)的方式来计算表示对象100的数据。应以透视校正的方式计算数据。
图2A描绘在观看者的视椎体(未示出)内远离观看者倾斜的平面对象200的透视图。如图2B中所描绘,如果对象200与观看者的视点垂直,则平面对象200的例如表面201处的数据可在其表面上进行线性地(平面)插值。
根据在此公开的主题,线性插值可用于线性插值和线性透视插值两者的插值计算。将首先描述线性插值,随后描述可对线性插值进行修改以执行线性透视插值。
方程(1)阐述可用于线性插值的平面方程。Attributej的值可从方程(1)中的三个平面方程系数来计算。
Attributej[x,y]=Aj×x+Bj×y+Cj, (1)
其中,系数Aj是属性j在x维度中的梯度。系数Bj是属性j在y维度中的梯度,系数Cj是属性j在(x,y)=(0,0)处的值。
可修改方程(1)以确保:如果系数C在(0,0)处的值不是良好的数(诸如,无穷大或IEEE浮点“不是数(NaN)”),或者在插值硬件的动态范围之外,则提供正确的结果。种子(seed)位置通常被选择为在图元内部(诸如,多个顶点中的一个顶点)。可如方程(2)中所示对方程(1)进行修改。对于修改的方程(2),系数C是在种子位置处的属性的值。
Attributej[x,y]=Aj×(x-seed·x)+Bj×(y-seed·y)+Cj (2)
其中,seed.x是种子位置的x坐标,seed.y是种子位置的y坐标。
可从图元顶点位置和插值的属性值来计算系数。例如,对于三角形(在大多数GPU中渲染的最基本图元),使用三个顶点。平面方程系数(Aj,Bj,Cj)(和重心等同物)的计算是已知的并且在此不详细描述。
线性透视插值算法可通过修改用于计算平面方程系数(Aj,Bj,Cj)的属性值和在平面方程已经被评价之后应用校正来改变方程(1)和方程(2)的线性插值。例如,下面的处理或步骤可用于修改线性插值方程(1)和(2)。
首先,可在平面方程系数的计算之前通过将顶点属性值除以每个顶点处的W坐标来修改顶点属性值,这被称为预插值校正计算。作为第二步,1/W[X,Y](1/W[X,Y]是平面的)可被线性地插值,并且可在每个插值位置[X,Y]处执行倒数计算。作为第三步骤,可通过在样本点处乘以W的插值后校正计算来修改在每个样本点处的插值结果。
可在第二步骤期间在每个顶点处计算W的倒数(即,1/W)。将用透视校正进行插值的顶点处的属性值乘以1/W,从而得到在顶点处的Attributej/W值,并且从这些值而不是图元顶点Attributej值来计算平面方程。因此,可实际上使用线性插值来对Attributej/W进行插值。W可以不是平面的,并且W实际上通过如上所述对平面的1/W进行线性插值来计算。W可通常地从顶点处的深度值(Z值)来计算。
光栅化(rasterization)在被渲染(即,生成)的图像中生成样本位置。基于图元顶点的位置,样本位置在图元的边界内部。在图元的光栅化期间,可生成比图元的顶点的数量多得多的样本位置。此外,与每个样本位置对应的属性被插值。例如,可被定义为具有三个顶点的三角形的图元可覆盖从图元生成的10个、50个、1000个或更多个样本位置(通常被称为像素)。例如,图元可包括三角形和线中的一个。
上述修改线性插值以执行线性透视插值(即,修改方程(1)和(2))的第一步骤可被可选择地优化,虽然益处可能仅是通过在修改线性插值的第二步骤处进行优化所提供的益处的约5%。益处的差异可基于由结合第二步骤发生的光栅化造成的扩展。因此,可限制优化修改线性插值的第一步骤的成本/益处,并且在第一步骤期间的优化的应用可不影响在第二步骤期间的优化的应用。第一步骤的优化可被认为是可选的另外的原因是:如果在计算平面方程系数之前第一步骤将属性预乘以1/W,并且如果W=1.0,则1/W=1.0。将属性预乘以1.0不改变平面方程系数。然而,第一步骤可被优化,在这种情况下,可针对每个图元的每个顶点执行一次优化。修改的第二步骤的优化可提供最大的益处。可针对每个图元重复地执行在修改的第二步骤处的优化。
根据在此公开的主题的允许优化的条件的检测和优化的实现可在图形管线中的不同位置处执行,并且可以以硬件、软件或硬件和软件的组合来实现。例如,可在图形管线中的相对较早的阶段处(诸如,在裁剪、剔除和视口(CCV)阶段或单元处,或者在图元设置(SU)阶段或单元处)执行检测和实现。条件检测和实现也可在执行最终插值和校正后计算的插值管线阶段或单元处执行。利用在此公开的优化的大部分任何潜在的益处可能是在插值管线阶段中。
如果在计算平面方程系数(或重心因子)的设置计算之前(即,在图形管线中的相对较早的阶段)检测到优化的条件,则顶点的W值可被测试以确定图元的顶点的W值是否正好为1.0。可选地,图元的顶点的W值可被确定为在1.0的预定阈值内(诸如,1.0±0.001)。如果图元的所有顶点的W值等于1.0(或在以1.0为中心的预定阈值范围内),则不需要线性透视插值计算,并且可应用在此公开的优化。
如果在已经计算平面方程系数之后(即,在图形管线中的相对较晚的阶段)检测到优化的条件,则平面方程系数(或重心因子)可被测试以确定针对属性的W值是否正好为1.0。也就是说,平面方程的系数A和B被确定为0.0(或在预定阈值内),并且系数C可被测试以确定其是否正好为1.0(或在预定阈值内)。在一个实施例中,系数A和B的预定阈值可±0.001,并且系数C的预定阈值可±0.001。
图形管线架构中的多个阶段可受益于在此公开的优化。例如,CCV单元可受益于具有功率的相应降低的减少的线性透视插值计算工作。SU单元可受益于减少的计算工作和相应的功率降低。IPA单元可减少计算工作(功率降低、性能提高)。
图3描绘根据在此公开的主题的示例图形处理器(GPU)300的可包含平面W优化的插值管线部分的框图。图3中描绘的GPU 300的示例实施例的部分可包括处理元件(PE)Quad301和硬件插值器(HWInterp)单元310。PE Quad 301可包括一个或多个PE 302a、302b、302c和302d、一个或多个加载存储单元(LSU)303a和303b、以及一个或多个WARP序列器(WSQ)304。硬件插值器(HWInterp)单元310可包括着色器处理控制器(SPC)311、一或多个光栅和Z单元(RASTZ)312、一或多个插值单元(IPA)313a至313b、以及一或多个插值设置(ISetup)单元314。着色器处理控制器311可包括一个或多个像素着色器构造器(PSC)315和一个或多个WARP调度器(WS)316。应理解,形成图3中所描绘的插值管线的部分的各个组件可以是模块,模块可以是被配置为结合组件或模块提供在此描述的功能的软件、固件和/或硬件的任何组合。
通常,插值操作的控制流程可如下。在一个实施例中,RASTZ 312向SPC311的PSC315发送具有诸如,X坐标、Y坐标、像素或样本掩码、图元ID、图元和绘制结束信息的信息的像素四边形。在一个示例中,PSC 315构造可例如包含八个四边形的像素着色器(PS)扭曲(warp),并且向WS 316做出请求。WS 316可分配扭曲ID,并且供应用于PS扭曲的其它控制信息,并且将分配回传给PSC 315。WS 316还可通知PE四边形301中的WSQ 304准备执行扭曲。PSC 315可将像素四边形的扭曲ID、X坐标、Y坐标、掩模和图元信息传递到例如IPA 313a或IPA 313b。IPA 313a(或IPA 313b)基于例如状态寄存器403(图4)中的属性掩码和插值模式开始插值。IPA 313a(或IPA313b)执行插值。
在一个实施例中,IPA 313a可通过加载存储单元(LSU,303(303a或303b))将插值结果发送到PE四边形301的处理元件(PE,302(302a、302b、302c或302d))中的向量寄存器文件(RF)。LSU 303在将用于扭曲的最后属性数据写入向量RF之后通知WSQ 304,使得WSQ 304可更新扭曲的状态,并且使扭曲准备好用于着色器执行。在一个实施例中,当IPA 313a(或IPA 313b)完成图元的插值时,IPA 313a(或IPA 313b)将图元完成信号传递到PSC 315。当PSC 315从IPA 313a和313b中的任一个或两者接收到图元的图元完成信号时,PSC 315向ISetup单元314返回最终的图元完成信号。ISetup单元314还可包括平面方程表(PET)317,平面方程表(PET)317将属性平面方程和三角形种子位置供应给IPA内的共享块插值器和倒数单元(SBR)。平面方程可由ISetup单元314生成并存储在PET 317中。平面方程可在与图元相关联的所有插值完成之后被释放。
图4描绘根据在此公开的主题的可被配置为包含平面W优化的IPA 313的示例实施例的框图。在一个实施例中,IPA 313可包括用于PSC 315、ISetup单元314、总线1和总线2的接口,所述接口分别是用于控制数据和用于通过例如着色器程序进行插值的请求的互连总线。在一个实施例中,IPA 313可包括一个或多个块插值器401a至401b、一个或多个四像素插值器(quad pixelinterpolator)402a至402b、状态寄存器403、请求缓冲器404、调度器405、位置属性管理器406、W缓冲器407、透视校正乘法器(PCM)408、共享块和倒数单元(RCP前端)409和输出缓冲器410。形成IPA 313的其它数量的模块是可行的。应理解,形成图4中描绘的IPA 313的示例实施例的各种组件可以是模块,该模块可以是被配置为结合组件或模块提供在此描述的功能的软件、固件和/或硬件的任何组合。
在一个实施例中,请求缓冲器404可存储来自图3中的PE 302的请求,该请求可包含与插值精度、透视划分使能标志、插值位置、开始属性槽号和分量掩码、有效通道掩码、可编程像素偏移和样本索引有关的信息,并且请求着色器扭曲的每个像素的同步标志。插值可被分成两个步骤(8×8块插值和像素插值)。对于相同的8×8块内的像素,可重复使用块结果,从而允许块插值器401(包括块插值器401a和401b)用于倒数计算。块插值器401可接收属性平面方程、三角形种子位置以及输入像素四边形位于其中的8×8块的X坐标、Y坐标,并且可执行块插值。块插值的结果可被转发到四像素插值器402(包括四像素插值器402a和402b),并且用作四像素插值的基础。块插值器401还可执行在透视校正中使用的W值的倒数计算。
在一个实施例中,IPA 313可在每个像素或子样本处处理变化的属性插值,以及像素着色器输入的像素屏幕坐标的合并。变化的属性插值可在两个阶段中执行,第一阶段可以是使用块插值器401中的一个或多个块插值器在8×8像素块的中心处的块级基础插值,并且第二阶段可以是使用一个或多个四像素插值器402中的一个或多个四像素插值器在8×8像素块内的像素级插值。一旦IPA 313接收到例如2×2像素四边形的XY屏幕坐标,并且在输出缓冲器410中存在可用空间,IPA 313就可开始处理像素块。
如果图元在8×8像素块中覆盖不止一个2×2四边形,则IPA 313可执行优化以重复使用现有的8×8插值结果而不重新计算结果,以及避免任何不必要的平面方程读取,这可减少资源(例如,处理能力、物理硬件面积等)消耗。PAM 406可接收PSC 315的像素四边形信息,并且可将四边形位置、像素和样本掩模以及图元ID打包成扭曲数据结构。PAM 406还可从ISetup单元314中的PET 317请求属性平面方程和三角形种子位置,并且将该信息传递到块插值器单元401以执行插值。
四像素插值器402可基于属性平面方程、8×8块插值结果和8×8块内的像素的X、Y偏移来执行四像素插值。在一个示例中,W缓冲器407可存储来自四像素插值器402的插值的W值以及来自块插值器401的W的倒数,并且可将插值的W值发送到RCP前端409以用于倒数计算,并将W的倒数发送到PCM 408以用于最终乘法。
调度器405可在每个扭曲的基础上调度插值请求,并且还可对块插值器401和四像素插值器402的请求进行排序以用于块、像素插值和W的倒数计算。PCM 408可在选择的插值位置处执行W的倒数与每个插值的属性值的乘法。输出缓冲器410可在透视校正之后收集插值结果的最终输出。输出缓冲器410可补偿插值管线的时延,并且可帮助平滑到互连总线的输出业务。
图4至图6描绘根据在此公开的主题的在此公开的示例图形管线中的示例位置,在该示例位置中检测齐次系数W是否等于或几乎等于1.0可以是有效的。确定W是否等于或几乎等于1.0可在概念上被认为是测试各个顶点或测试各个图元的顶点。可通过例如一个或多个比较器以硬件、以软件、以固件或者以硬件、软件和/或固件的组合执行确定W是否等于或几乎等于1.0。此外,确定W是否等于或几乎等于1.0的结果可沿图形管线向下传递以供在以后阶段使用。
当测试W的各个顶点等于或几乎等于1.0时,图形管线中的有效位置可在裁剪-剔除-视口(CCV)单元的输入处和/或在ISetup单元314的输入处。当测试各个图元的顶点时,图形管线中的有效位置可在图形管线中的IPA单元313中的位置属性管理器模块406的输入处。可选地,可使用测试各个顶点及测试各个图元的顶点两者来实现用于应用在此公开的优化的条件的检测。由在此公开的优化提供的计算节省可从CCV单元增加到ISetup单元314并且再次在IPA 313增加。
在逐个图元的基础上确定W是否等于或几乎等于1.0可位于图4中描绘的示例IPA单元313的位置属性管理器模块406的输入处(在411处指示)。此外,可确定X梯度和Y梯度是否等于或几乎等于0,而偏移C等于或几乎等于1。在IPA单元313内确定W是否等于或几乎等于1.0可允许在每个像素或每个样本的基础上跳过用于在每个像素或样本位置处对1/W(x,y)进行线性插值并将W计算为
Figure BDA0002512679580000121
的操作。此外,还可跳过输出属性校正(即,Interpolated.Attribute[x,y]×W(x,y))。操作的确定和跳过可应用于所有的图块渲染通道(pass)。
图5描绘示出根据在此公开的主题的在CCV单元500的输入处的示例位置的框图,在该示例位置中检测齐次系数W是否等于或几乎等于1.0可以是有效的。CCV单元500可包括顶点管线模块501、命令处理器模块502、图元处理器模块503、裁剪器模块504和输出控制模块505。形成CCV单元500的各个模块组件可被实现为被配置为结合CCV单元500提供在此描述的功能的软件、固件和/或硬件的任何组合。应理解,CCV单元500可包括图5中未示出的附加组件、模块和/或功能块。
顶点管线模块501可从流输出(stream-out,SO)单元506接收输入数据,命令处理器模块502可从SO单元506接收命令。顶点管线模块501的输出可被输入到图元处理器模块503。命令处理器模块502可基于从SO单元506接收的命令来控制顶点管线模块501和图元处理器模块503。图元处理器模块503还可被裁剪器模块504控制。图元处理器模块503的输出可被输入到输出控制模块505。输出控制模块505可将处理后的图元输出到ISetup单元314和合并(BIN)单元507。
针对各个顶点确定W是否等于或几乎等于1.0可位于CCV单元500的输入处。更具体地,确定W是否等于或几乎等于1.0可位于顶点管线模块501的输入处(如在508处所指示)。可通过例如一个或多个比较器以硬件、以软件、以固件或者以硬件、软件和/或固件的组合执行确定W是否等于或几乎等于1.0。
在CCV单元500的输入处确定W是否等于或几乎等于1.0可允许跳过用于计算其中W等于或几乎等于1.0的每个顶点的属性的操作。此外,可跳过涉及归一化的装置坐标(NDC)位置计算(诸如,Xclip×1/W、Yclip×1/W、和Zclip×1/W)的操作。操作的确定和跳过可应用于所有的处理(包括合并)通道和所有的图块渲染通道。
图6描绘示出根据在此公开的主题的在ISetup单元314内的示例位置的框图,在该位置中检测齐次系数W是否等于或几乎等于1.0可以是有效。ISetup单元314可包括CCV位置输入接口模块601、CCV属性输入接口模块602、位置输入和缓冲模块603、光栅化设置模块604、属性输入和队列模块605、平面方程(Peqn)设置模块606、光栅(rast)输出接口模块607和平面方程表317(图3)。形成ISetup单元314的各个模块组件可被实现为被配置为结合ISetup单元314提供在此描述的功能的软件、固件和/或硬件的任何组合。应理解,ISetup单元314可包括图6中未示出的附加组件、模块和/或功能块。
针对各个顶点确定W是否等于或几乎等于1.0可位于位置输入和缓冲模块603的输入处(在608处所指示)和/或位于属性输入和队列模块605的输入处(在609处所指示)。可通过例如一个或多个比较器以硬件、以软件、以固件或者以硬件、软件和/或固件的组合执行确定W是否等于或几乎等于1.0。在ISetup单元314内确定W是否等于或几乎等于1.0可允许跳过用于计算其中W等于或几乎等于1.0的每个顶点的属性的操作。具体地,可允许跳过的操作可包括针对未裁剪的图元或在Peqn设置606处裁剪的图元,在属性输入和队列605处将顶点属性透视预乘以1/W(即,yertex.Attribute[Vertex.N]×1/w)。平面方程不是必须被创建并被存储在平面方程表317中以用于1/W。操作的确定和跳过可应用于所有图块渲染通道。
图7描绘根据在此公开的主题的在已经在例如着色器程序中指定线性透视插值技术的情况下对与在图形管线中渲染的图元相关联的元素的一个或多个属性进行插值的方法700的流程图。应理解,线性透视插值技术可被指定用于对与在以不同于着色器程序的方式渲染的图元相关联的元素的属性进行插值。该过程在701处开始,可能从图8中的810到达。在702处,确定线性透视插值技术是否已经被指定用于对图元的元素的属性进行插值。如果是,则流程继续到703,否则流程继续到704,在704中,按照针对属性指定的方式进行插值。流程继续到707,在707中,方法700结束。
在703处,确定图元状态W=1是否被设置。如果是,则流程继续到705,在705中,可使用线性插值技术来确定与图元相关联的元素的一个或多个属性。流程继续到707,例如,在707中,着色器程序继续执行。如果在703处,图元状态W=1未被设置,则流程继续到706,在706中,可使用线性透视插值技术来确定与图元相关联的元素的一个或多个属性。流程继续到707,在707中,着色器程序继续执行。
图8描绘根据在此公开的主题的可使用的在齐次系数W是否等于或几乎等于1.0的确定过程之后的优化的示例实施例的流程图800。该过程在801处开始。在802处,从ISetup单元314接收平面方程。可接收针对图元的1/W或针对图元的属性的平面方程。通过IPA 313的计算数据路径被1/W插值和常规属性插值共享。在803处,确定平面方程是否针对1/W。如果是,则流程继续到804,在804中确定图元状态是否是1/W==1(或几乎等于1)?如果是,则流程继续到805,在805中,设置W=1的图元状态。流程继续到809,在809中,1/W的插值完成。
如果在804处确定图元状态1/W不等于1(或不几乎等于1),则流程继续到806,在806中,清除图元状态1/W。流程继续到807,在807中,1/W被提交到IPA管线。在808处,执行倒数运算以计算W值。流程继续到809,在809中,1/W的插值完成。
如果在803处,确定平面方程不是针对1/W,则流程继续到810(图7),在810中,对与正被渲染的图元相关联的一个或多个元素进行插值。流程继续到809,在809中,插值操作完成。
如果W是平面的并且不等于1.0,则因为不存在透视扭曲,所以不需要通过W进行预乘或通过W进行后乘。然而,如果在ISetup单元314中应用了通过平面1/W的预乘,则在插值期间仍然需要后乘。如果W是平面的,则预乘和后乘都可被去除,但是两个乘法必须一起去除,或者两个乘法都不能被去除。只有当W==1.0时,才能去除其中一个乘法。也就是说,只有当W==1.0时,预乘或后乘才能被去除。
在可选的实施例中,可检测使得可使用在此公开的平面优化的附加条件包括检测属性的平面方程的系数是否是常数(即,Aj=0,Bj=0,Cj=常数)。对于被确定为常数的属性不需要插值,并且对于常数属性不需要生成平面方程。这将Aj×(x-seed.x)+Bj×(y-seed.y)+Cj转换为Cj传播。也就是说,Cj值可作为属性值通过插值管线从平面方程表317传播。在又一可选实施例中,如果图元的所有顶点相同但不等于1.0,则可使用在此公开的平面W优化。
图9描绘包括GPU 960的电子系统900,GPU 960包括图形管线,当GPU960已经例如被编程为执行线性透视插值时,图形管线可减少倒数、乘法或加法计算用于插值计算的次数。电子系统900可用于但不限于计算装置、个人数字助理(PDA)、膝上型计算机、移动计算机、网络平板、无线电话、蜂窝电话、智能电话、数字音乐播放器或者有线或无线电子装置。电子系统900可包括通过总线950彼此结合的控制器910、输入/输出装置920(诸如,(但不限于)小键盘、键盘、显示器、触摸屏显示器、相机和/或图像传感器)、存储器装置930和接口940。控制器910可包括例如至少一个微处理器、至少一个数字信号处理、至少一个微控制器等。存储器装置930可被配置为存储将由控制器910使用的命令代码或用户数据。电子系统900和GPU 960的各种系统组件可包括图形管线,当GPU 960已经被编程为执行线性透视插值时,图形管线可减少倒数、乘法或除法计算用于插值计算的次数。接口940可被配置为包括无线接口,无线接口被配置为使用RF信号向无线通信网络发送数据或从无线通信网络接收数据。无线接口940可包括例如天线、无线收发器等。电子系统900还可用于通信系统的通信接口协议中,诸如,但不限于:码分多址(CDMA)、全球移动通信系统(GSM)、北美数字通信(NADC)、扩展时分多址(E-TDMA)、宽带CDMA(WCDMA)、CDMA2000、Wi-Fi、市政Wi-Fi(Muni Wi-Fi)、蓝牙、数字增强无线电话系统(DECT)、无线通用串行总线(无线USB)、使用无缝切换正交频分复用的快速低时延访问(Flash-OFDM)、IEEE 802.20、通用分组无线服务(GPRS)、iBurst、无线宽带(WiBro)、WiMAX、高级WiMAX、通用移动电信服务时分双工(UMTS-TDD)、高速封包访问(HSPA)、演进数据优化(EVDO)、先进长期演进(LTE-Advanced)、多信道多点分配服务(MMDS)等。
在本说明书中描述的操作和主题的实施例可以以数字电子电路实现,或以计算机软件、固件或硬件实现,或以它们中的一个或多个的组合来实现,计算机软件、固件或硬件包括本说明书中公开的结构及其结构等同物。本说明书中描述的主题的实施例可被实现为被编码在计算机存储介质上以用于由数据处理设备执行或控制数据处理设备的操作的一个或多个计算机程序(即,计算机程序指令的一个或多个模块)。可选地或此外,程序指令可被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,人工生成的传播信号被生成以对信息进行编码以用于传输到适合的接收器设备,以供数据处理设备执行。计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置或者它们的组合,或者可被包括在计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置或者它们的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储装置),或者被包括在一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储装置)中。
本说明书中描述的操作可被实现为由数据处理设备对存储在一个或多个计算机可读存储装置上的数据或从其他源接收的数据执行的操作。
术语“数据处理设备”包含用于处理数据的所有种类的设备、装置和机器(包括例如可编程处理器、计算机、片上系统或者前述项的多个或组合)。设备可包括专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。除了硬件之外,设备还可包括创建用于计算机程序的执行环境的代码(例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们的组合的代码)。设备和执行环境可实现各种不同的计算模型基础架构(诸如,web服务、分布式计算和网格计算基础架构)。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言、声明或过程语言)编写,并且可以以任何形式(包括作为独立程序或作为模块、组件、子例程、对象或适合于在计算环境下使用的其他单元)部署。计算机程序可以但不必对应于文件系统中的文件。程序可被存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(coordinated file)(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可被部署为在一个计算机上或者在位于一个站点处或跨多个站点分布并且通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且数据处理设备也可被实现为专用逻辑电路。
适合于执行计算机程序的处理器包括例如通用微处理器和专用微处理器,以及任何种类的数字计算机的任何一个处理器或多个处理器。通常,处理器可从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或操作地结合以从用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)接收数据或向用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)传送数据或者两者。然而,计算机不需要具有这样的装置。此外,计算机可嵌入在另一装置(例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置(例如,通用串行总线(USB)闪存驱动器),仅举几例)中。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括例如,半导体存储器装置(例如,EPROM、EEPROM和闪存装置)、磁盘(例如,内部硬盘或可移动磁盘)、磁光盘、以及CDROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或包含在专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可在具有用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可利用其向计算机提供输入的键盘和指示装置(例如,鼠标或轨迹球)的计算机上实现。也可使用其他种类的装置来提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈),并且来自用户的输入可以以任何形式(包括声学、语音或触觉输入)接收。
本说明书中描述的主题的实施例可在计算系统中实现,所述计算系统包括后端组件(例如,如数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可通过其与本说明书中描述的主题的实现交互的图形用户界面或Web浏览器的用户计算机),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或任何介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)以及点对点网络(例如,自组织点对点网络)。
计算系统可包括用户和服务器。用户和服务器通常彼此远离并且通常通过通信网络交互。用户和服务器的关系借助于在各个计算机上运行并且彼此具有用户-服务器关系的计算机程序而产生。
虽然本说明书包含许多具体实施细节,但这些细节不应被解释为对任何发明或可要求保护的范围的限制,而应被解释为对特定于特定发明的特定实施例的特征的描述。在本说明书中在单独的实施例的上下文中描述的特定特征也可在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可在多个实施例中单独地实现或以任何适合的子组合实现。此外,尽管特征可在上面被描述为在特定组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可从组合中去除,并且所要求保护的组合可针对子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘操作,但这不应被理解为要求以所示出的特定顺序或以连续顺序执行这些操作,或者执行所有所示的操作以实现期望的结果。在特定情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各种系统组件的分开不应被理解为在所有实施例中都需要这样的分开,应理解,所描述的程序组件和系统通常可一起集成在单个软件产品中或封装到多个软件产品中。
因此,已经描述了主题的特定实施例。其它实施例在所附权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行,并且仍然实现期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定实施方式中,多任务和并行处理可以是有利的。
如本领域的技术人员将认识到的,在此描述的创新构思可在申请的大的范围内进行修改和改变。因此,所要求保护的主题的范围不应限于上面讨论的任何特定示例性教导,而是由所附权利要求限定。

Claims (20)

1.一种对在图形管线中渲染的图元的元素的一个或多个属性进行插值的方法,所述方法包括:
基于已经指定用于渲染图元的线性透视插值技术,确定元素的齐次坐标是否在以1为中心的预定阈值范围内;
基于元素的齐次坐标在以1为中心的预定阈值范围内,使用线性插值技术对元素的属性进行插值;以及
基于元素的齐次坐标在以1为中心的预定阈值范围外,使用线性透视插值技术对元素的属性进行插值。
2.根据权利要求1所述的方法,其中,元素的属性与图元的顶点相关联。
3.根据权利要求1所述的方法,其中,确定元素的齐次坐标是否在以1为中心的预定阈值范围内的步骤包括:确定图元的每个顶点的齐次坐标是否等于1。
4.根据权利要求1所述的方法,其中,图元包括三角形和线中的一个。
5.根据权利要求1所述的方法,其中,确定元素的齐次坐标是否在以1为中心的预定阈值范围内的步骤包括:在图形管线的输入和输出中的一个处确定元素的齐次坐标是否在以1为中心的预定阈值范围内。
6.根据权利要求5所述的方法,其中,图形管线包括:裁剪-剔除-视口单元、设置单元和插值单元中的一个。
7.根据权利要求1所述的方法,所述方法还包括:
基于已经指定用于渲染图元的线性透视插值技术,确定图元的齐次坐标的值是否是不等于1的常数;
基于齐次坐标的值被确定为是不等于1的常数,使用线性透视插值技术对图元的属性进行插值;以及
基于齐次坐标的值被确定为是等于1的常数,使用线性插值技术对图元的属性进行插值。
8.根据权利要求1所述的方法,所述方法还包括:
确定图元的属性的平面方程的系数是否是常数;
基于平面方程的系数被确定为不是常数,对图元的属性进行插值;以及
基于平面方程的系数被确定为是常数,省略对图元的属性进行插值。
9.一种图形管线,包括:
输入部,接收图元的一个或多个属性;
比较器,基于已经指定用于渲染图元的线性透视插值技术,将图元的属性的齐次坐标的值与1进行比较来确定齐次坐标的值是否在以1为中心的预定阈值范围内;以及
插值器,基于齐次坐标的值被确定为在以1为中心的预定阈值范围内,使用线性插值技术来对图元的属性进行插值,并且基于齐次坐标的值被确定为在以1为中心的预定阈值范围外,使用线性透视插值技术来对图元的属性进行插值。
10.根据权利要求9所述的图形管线,其中,图元的属性与图元的顶点相关联。
11.根据权利要求9所述的图形管线,其中,属性与图元的顶点相关联,并且
其中,图元包括三角形和线中的一个。
12.根据权利要求9所述的图形管线,其中,比较器还基于已经指定用于渲染图元的线性透视插值技术来确定图元的齐次坐标的值是否是不等于1的常数,并且
其中,插值器还基于齐次坐标的值被确定为是不等于1的常数,使用线性透视插值技术对图元的属性进行插值,并且基于齐次坐标的值被确定为是等于1的常数,使用线性插值技术对图元的属性进行插值。
13.根据权利要求9所述的图形管线,其中,比较器还确定图元的属性的平面方程的系数是否是常数,并且
其中,插值器还基于平面方程的系数被确定为不是常数,对图元的属性进行插值,并且基于平面方程的系数被确定为是常数,省略对图元的属性进行插值。
14.根据权利要求9所述的图形管线,其中,图形管线包括:裁剪-剔除-视口单元、设置单元和插值单元中的一者。
15.一种图形处理器,包括:
图形管线,包括:
输入部,接收图元的一个或多个属性;
比较器,基于已经指定用于渲染图元的线性透视插值技术来确定图元的齐次坐标的值是否是不等于1的常数;以及
插值器,基于齐次坐标的值被确定为是不等于1的常数,使用线性透视插值技术对图元的属性进行插值,并且基于齐次坐标的值被确定为是等于1的常数,使用线性插值技术对图元的属性进行插值;以及
着色器,接收插值器的输出并且渲染图元。
16.根据权利要求15所述的图形处理器,其中,比较器还基于已经指定用于渲染图元的线性透视插值技术将图元的属性的齐次坐标的值与1进行比较,来确定齐次坐标的值是否在以1为中心的预定阈值范围内,并且
其中,插值器还基于齐次坐标的值被确定为在以1为中心的预定阈值范围内,使用线性插值技术来对图元的属性进行插值,并且基于齐次坐标的值被确定为在以1为中心的预定阈值范围外,使用线性透视插值技术来对图元的属性进行插值。
17.根据权利要求15所述的图形处理器,其中,图元包括三角形和线中的一个。
18.根据权利要求15所述的图形处理器,其中,元素的属性与图元的顶点相关联。
19.根据权利要求15所述的图形处理器,其中,比较器还确定图元的属性的平面方程的系数是否是常数,并且
其中,插值器还基于平面方程的系数被确定为不是常数,对图元的属性进行插值,并且基于平面方程的系数被确定为是常数,省略对图元的属性进行插值。
20.根据权利要求15所述的图形处理器,其中,图形管线包括:裁剪-剔除-视口单元、设置单元和插值单元中的一个。
CN202010466039.8A 2019-05-31 2020-05-28 插值方法、图形管线和图形处理器 Pending CN112017103A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962855872P 2019-05-31 2019-05-31
US62/855,872 2019-05-31
US16/559,616 US11080924B2 (en) 2019-05-31 2019-09-03 Optimized computation of perspective interpolants
US16/559,616 2019-09-03

Publications (1)

Publication Number Publication Date
CN112017103A true CN112017103A (zh) 2020-12-01

Family

ID=73506631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010466039.8A Pending CN112017103A (zh) 2019-05-31 2020-05-28 插值方法、图形管线和图形处理器

Country Status (1)

Country Link
CN (1) CN112017103A (zh)

Similar Documents

Publication Publication Date Title
US9842428B2 (en) Dynamically optimized deferred rendering pipeline
JP4938850B2 (ja) 拡張型頂点キャッシュを備えたグラフィック処理装置
CN103946789B (zh) 图形处理单元中的再现模式选择
JP2018537755A (ja) 中心窩ジオメトリテッセレーション
US20130093766A1 (en) Interpolation of vertex attributes in a graphics processor
KR102048885B1 (ko) 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법
EP3353746B1 (en) Dynamically switching between late depth testing and conservative depth testing
US8836700B2 (en) System, method, and computer program product for a tessellation engine using a geometry shader
JP5907930B2 (ja) 複数の画素をテクスチャ処理するための画像処理方法、プログラム及びグラフィック装置
US9830740B2 (en) Graphic processing unit, system and anti-aliasing method to perform rendering based on image information
US11080924B2 (en) Optimized computation of perspective interpolants
EP3422709A1 (en) Stereo rendering
WO2018140223A1 (en) Stereo rendering
EP3355275A1 (en) Out of order pixel shader exports
CN112017103A (zh) 插值方法、图形管线和图形处理器
KR102673649B1 (ko) 원근(투영) 보간 함수들의 최적화된 연산
US11741653B2 (en) Overlapping visibility and render passes for same frame
US20210225060A1 (en) Hybrid binning
US11880924B2 (en) Synchronization free cross pass binning through subpass interleaving
US11741626B2 (en) Surface projection determination of a multidimensional object in a viewport space
KR101345380B1 (ko) 3차원 그래픽스 데이터를 처리하는 장치에 공급하는전원의 전압을 제어하는 방법 및 이를 이용하는 3차원그래픽스 데이터 처리 장치

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