CN113196333A - 可变比率着色和超样本着色的集成 - Google Patents
可变比率着色和超样本着色的集成 Download PDFInfo
- Publication number
- CN113196333A CN113196333A CN201980084278.2A CN201980084278A CN113196333A CN 113196333 A CN113196333 A CN 113196333A CN 201980084278 A CN201980084278 A CN 201980084278A CN 113196333 A CN113196333 A CN 113196333A
- Authority
- CN
- China
- Prior art keywords
- quadrilaterals
- shading
- shading rate
- rate
- modified
- 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
Links
- 230000010354 integration Effects 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 46
- 238000009877 rendering Methods 0.000 claims description 20
- 238000005070 sampling Methods 0.000 claims description 9
- 238000004040 coloring Methods 0.000 claims description 7
- 239000012634 fragment Substances 0.000 description 52
- 230000006870 function Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 239000003086 colorant Substances 0.000 description 7
- 238000010186 staining Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000002156 mixing Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本文提供一种用于以解耦分辨率执行光栅化和像素着色的技术。所述技术涉及正常执行光栅化以生成四边形。所述四边形被累积到图块缓冲器中。为所述图块缓冲器的所述内容确定着色率。如果所述着色率是子采样着色率,则对所述图块缓冲器中的所述四边形进行下采样,这减小了像素着色器要执行的工作量。然后所述着色的下采样四边形恢复到渲染目标的分辨率。如果所述着色率是超采样着色率,则所述图块缓冲器中的所述四边形被上采样。所述着色的下采样或上采样四边形的所述结果被写入所述渲染目标。
Description
相关申请的交叉引用
本申请要求2018年12月20日提交的美国非临时专利申请号16/228,692的权益,其内容在此通过引用并入本文。
背景技术
三维(“3D”)图形处理流水线执行一系列步骤来将输入几何图形转换成二维(“2D”)图像以在屏幕上显示。步骤中的一些包括光栅化和像素着色。光栅化涉及识别哪些像素(或子像素样本)被光栅化器之前的流水线级提供的三角形覆盖。光栅化的输出包括四边形(一个2x2像素的块)和覆盖范围数据,所述覆盖范围数据指示哪些样本被四边形的像素覆盖。像素着色器对四边形的像素进行着色,然后将四边形的像素写入帧缓冲器。因为像素着色非常耗费资源,所以不断开发技术来提高像素着色的效率。
附图说明
从通过结合附图的示例的方式给出的下面的描述中可以获得更详细的理解,在附图中:
图1是能够实现本公开的一个或多个特征的示例性装置的框图;
图2示出了根据示例的图1的装置的细节;
图3是示出图2中示出的图形处理流水线的另外的细节的框图;以及
图4A-图4D示出了根据示例用于以不同于像素着色的分辨率执行光栅化的技术。
具体实施方式
本文提供一种用于以解耦分辨率执行光栅化和像素着色的技术。所述技术涉及正常执行光栅化以生成四边形。所述四边形被累积到图块缓冲器中。为所述图块缓冲器的所述内容确定着色率。如果所述着色率是子采样着色率,则对所述图块缓冲器中的所述四边形进行下采样,这减小了像素着色器要执行的工作量。然后所述着色的下采样四边形恢复到渲染目标的分辨率。如果所述着色率是超采样着色率,则所述图块缓冲器中的所述四边形被上采样。所述着色的下采样或上采样四边形的所述结果被写入所述渲染目标。
图1是其中能够实现本公开的一个或多个特征的示例性装置100的框图。装置100可以是例如计算机、游戏装置、手持式装置、机顶盒、电视机、移动电话、平板计算机或其他计算装置中的一个但不限于此。所述装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。所述装置100还包括一个或多个输入驱动器112和一个或多个输出驱动器114。输入驱动器112中的任何一个体现为硬件、硬件和软件的组合、或软件,并且用于控制输入装置112的目的(例如,控制操作,从输入驱动器112接收输入,以及向输入驱动器112提供数据)。类似地,输出驱动器114中的任何一个体现为硬件、硬件和软件的组合、或软件,并且用于控制输出装置114的目的(例如,控制操作,从输出驱动器114接收输入,以及将数据提供给所述输出驱动器114)。应理解,装置100可以包括图1未示出的另外的部件。
在各种替代方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一管芯上的CPU和GPU、或一个或多个处理器核,其中每个处理器核可能是CPU或GPU。在各种替代方案中,存储器104与处理器102定位在同一管芯上,或者与处理器102分开地定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定的或可移除的存储装置,例如但不限于硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110包括但不限于显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112和输出驱动器114包括一个或多个硬件、软件和/或固件部件,所述一个或多个硬件、软件和/或固件部件被配置成分别与输入装置108和输出装置110介接并驱动所述输入装置108和输出装置110。输入驱动器112与处理器102和输入装置108通信,并且容许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且容许处理器102将输出发送到输出装置110。输出驱动器114包括加速处理装置(“APD”)116,所述加速处理装置116耦接到显示装置118,在一些示例中,所述显示装置118是使用远程显示协议来示出输出的物理显示装置或模拟装置。APD 116被配置为接受来自处理器102的计算命令和图形渲染命令,以处理那些计算命令和图形渲染命令,并且向显示装置118提供像素输出用于显示。如下面进一步详细描述的,APD 116包括一个或多个并行处理单元,所述一个或多个并行处理单元被配置成根据单指令多数据(“SIMD”)范例执行计算。因此,虽然本文中将各种功能描述为由APD 116执行或结合APD 116来执行,但是在各种替代方案中,被描述为由APD 116执行的功能另外地或替代地由具有类似功能的其他计算装置执行,所述其他计算装置未被主机处理器(例如,处理器102)驱动并且未被配置成向显示装置118提供图形输出。例如,可以设想的是,根据SIMD范例执行处理任务的任何处理***可被配置成执行本文所描述的功能。替代地,可以设想的是,不根据SIMD范例执行处理任务的计算***执行本文所描述的功能。
图2示出了根据示例的装置100和APD 116的细节。处理器102(图1)执行操作***120、驱动器122和应用126,并且还可替代地或另外地执行其他软件。操作***120控制装置100的各种方面,诸如管理硬件资源、处理服务请求、调度和控制过程执行以及执行其他操作。APD驱动器122控制APD 116的操作,将诸如图形渲染任务或其他工作的任务发送给APD116以进行处理。APD驱动器122还包括即时编译器,所述即时编译器编译程序以由APD 116的处理部件(诸如,在下面进一步详细讨论的SIMD单元138)来执行。
APD 116执行有关选定功能的命令和程序,诸如可适合于进行并行处理的图形操作和非图形操作。APD 116可用于基于从处理器102接收的命令执行图形流水线操作,诸如像素操作、几何计算,以及将图像渲染到显示装置118。APD 116还基于从处理器102接收的命令执行与图形操作不直接相关的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,所述计算单元132包括一个或多个SIMD单元138,所述一个或多个SIMD单元138被配置为根据SIMD范例以并行方式在处理器102(或另一个单元)的请求下执行操作。SIMD范例是这样一种范例:多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够用不同的数据执行该程序。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行同一指令,但是可以以不同的数据执行该指令。如果并非所有通道都需要执行给定指令,则可以利用断言关闭通道。断言也可用于执行具有发散控制流的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流是基于由单个通道执行的计算,与当前未执行的控制流路径相对应的通道的断言以及不同控制流路径的串行执行允许任意控制流。
计算单元132中的基本执行单元是工作项。每个工作项代表将在特定通道中并行执行的程序的单个实例。能够在单个SIMD处理单元138上将工作项同时(或部分同时和部分顺序地)作为“波前”来执行。一个或多个波前包括在“工作组”中,所述工作组包括被指定来执行同一程序的工作项集合。能够通过执行构成工作组的波前中的每个来执行工作组。在替代方案中,在单个SIMD单元138上或在不同SIMD单元138上执行波前。波前能够被视为能够在单个SIMD单元138上同时(或伪同时)执行的最大工作项集合。在波前大于SIMD单元138中的通道数量的情况下,发生“伪同时”执行。在这种情况下,波前在多个周期内执行,而工作项的不同集合在不同周期内执行。APD调度器136被配置成执行与在计算单元132和SIMD单元138上调度各种工作组和波前有关的操作。
由计算单元132提供的并行性适合于与图形有关的操作,诸如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,从处理器102接受图形处理命令的图形流水线134将计算任务提供给计算单元132以并行执行。
计算单元132还用于执行与图形无关或不作为图形流水线134的“正常”操作的一部分执行的计算任务(例如,补充为图形流水线134的操作而执行的处理所执行的自定义操作)。在处理器102上执行的应用126或其他软件将定义这种计算任务的程序传输给APD 116以执行。
图3是示出图2中示出的图形处理流水线134的另外的细节的框图。图形处理流水线134包括级,每个执行图形处理流水线134的特定功能。每个级都部分或完全实现为在可编程计算单元132中执行的着色器程序,或者部分或完全实现为计算单元132外部的固定功能的非可编程硬件。
输入汇编器级302从用户填充的缓冲器(例如,在由处理器102执行的软件(诸如,应用126)的请求下填充的缓冲器)中读取图元数据,并且将数据组装成图元,以供流水线的剩余部分使用。输入汇编器级302能够基于包括在用户填充的缓冲器中的图元数据而生成不同类型的图元。输入汇编器级302使汇编后的图元格式化,以供流水线的其余部分使用。
顶点着色器级304处理由输入汇编器级302汇编的图元的顶点。顶点着色器级304执行各种每顶点操作,诸如变换、蒙皮、变形和每顶点照明。变换操作包括各种变换顶点坐标的操作。这些操作包括修改顶点坐标的建模变换、查看变换、投影变换、透视图划分和视口变换中的一个或多个,以及修改非坐标属性的其他操作。
顶点着色器级304被部分或完全实现为将在一个或多个计算单元132上执行的顶点着色器程序。顶点着色器程序由处理器102提供,并且基于由计算机程序员预先编写的程序。驱动器122对这种计算机程序进行编译,以生成具有适于在计算单元132内执行的格式的顶点着色器程序。
外壳着色器级306、镶嵌器级308和域着色器级310一起协作以实现镶嵌,所述镶嵌通过将图元细分来将简单的图元转换成更复杂的图元。外壳着色器级306基于输入图元而生成用于镶嵌的补丁。镶嵌器级308生成用于补丁的一组样本。域着色器级310计算各顶点的对应于补丁的样本的顶点位置。外壳着色器级306和域着色器级310能够被实现为将在计算单元132上执行的着色器程序,与顶点着色器级304一样,所述着色器程序由驱动器122进行编译。
几何着色器级312在逐个图元的基础上执行顶点操作。几何着色器级312能够执行多种不同类型的操作,包括操作诸如点精灵扩展、动态粒子***操作、毛-翼片生成、阴影体积生成、单程渲染到立方体贴图、每图元材料交换和每图元材料设置。在一些实例中,由驱动器122编译并在计算单元132上执行的几何着色器程序执行有关几何着色器级312的操作。
光栅化器级314接受并光栅化从光栅化器级314上游生成的简单图元(三角形)。光栅化包括确定特定图元覆盖哪些屏幕像素(或子像素样本)。光栅化由固定功能硬件执行。
像素着色器级316基于上游生成的图元和光栅化的结果而计算屏幕像素的输出值。像素着色器级316可应用来自纹理存储器的纹理。像素着色器级316的操作由像素着色器程序执行,所述像素着色器程序由驱动器122编译并且在计算单元132上执行。
输出合并器级318接受来自像素着色器级316的输出,并将这些输出合并到帧缓冲器中,从而执行诸如z测试和α混合等操作,以确定屏幕像素的最终颜色。
在一种操作模式中,由光栅化器级314执行的光栅化以与由像素着色器级316执行的像素着色相同的分辨率完成。作为背景,光栅化器级314接受来自较早级的三角形,并且对三角形执行扫描转换以生成片段。片段是用于渲染目标的各个像素的数据,并且包括诸如位置、深度和覆盖范围数据的信息,以及稍后在像素着色器级之后的诸如颜色的着色数据。渲染目标是正在进行渲染(即,正在写入颜色或其他值)的目标图像。
通常,片段被分组为四边形,每个四边形包括对应于四个相邻像素位置的片段(也就是说,2x2片段)。三角形的扫描转换涉及为三角形覆盖的每个像素位置生成一个片段。如果渲染目标是多样本图像,则每个像素都有多个样本位置,所述多个样本位置中的每个样本位置都经过覆盖范围测试。所述片段记录所述片段的样本的覆盖范围数据。由光栅化器级314生成的片段被传输到像素着色器级316,所述像素着色器级316对片段进行着色(确定那些片段的颜色值),并且还可以确定其他值。
以相同的分辨率执行光栅化和像素着色意味着对于光栅化器生成的每个片段,像素着色器316执行计算以确定所述片段的颜色。换句话说,由像素占据的屏幕空间的面积是与确定颜色所用的精度相同的面积。在一个示例中,在计算单元132的基于SIMD的硬件中,由光栅化器级314生成的每个片段由不同的工作项着色。因此,在生成的片段和为对那些片段进行着色而生成的工作项之间存在一对一的对应关系。注意,光栅化器级314通常执行深度测试,以剔除先前渲染的片段所遮挡的片段。因此,尽管可以产生另外的工作项来渲染最终被丢弃的四边形的辅助片段,但是在所述深度剔除中幸存的片段和为给那些幸存的片段着色而产生的工作项之间存在一对一的对应关系。辅助片段是未被三角形覆盖的片段,但无论如何都是作为四边形的一部分生成的,以辅助计算纹理采样的导数。理解以与着色相同的分辨率执行光栅化的操作模式的另一个方式是,可以限定三角形边缘的分辨率等效于可以限定该三角形颜色的分辨率。
上述操作模式的一个问题是,对于具有固定颜色或低频颜色变化的三角形,光栅化以与像素着色相同的分辨率发生。对于此类三角形,对附近片段的像素着色操作产生相同或类似的颜色,并且实际上是冗余的。因此,可以用少得多数量的像素着色器操作来执行类似的结果。因此,根据本文称为可变比率着色(“VRS”)的技术,相对于光栅化分辨率减小着色分辨率是有利的。此类技术的优点是减小了正在执行的像素着色器操作的数量,从而减小了处理负载并且提高了性能。VRS的细节在下面详细描述。
VRS的一个问题是所述技术与超样本防混叠(“SSAA”)的集成问题。SSAA是其中每个渲染目标像素具有多个覆盖范围和颜色样本的技术。更具体地,在所述技术中,图形处理流水线134以高于渲染目标的分辨率的分辨率光栅化和着色两者,以生成超采样图像。然后,图形处理流水线134通过防混叠技术“解析”所述超采样图像,以生成渲染目标的分辨率的图像。
在能够执行VRS和SSAA两者的***中出现问题。具体地,在一个实现方式中,可以打开VRS和SSAA两者,使得VRS操作相对于渲染目标的分辨率减小着色的分辨率,而SSAA操作相对于渲染目标的分辨率增加着色的分辨率。所述操作模式可能会产生未限定或意外的结果,并且因此可能不理想。因此,本文提出了用于将SSAA和VRS紧密地集成到图形处理流水线134中的技术。
图4示出了根据示例的用于使用SSAA、VRS中的一者或两者都不使用来光栅化、着色和输出渲染图像的技术。所述技术开始于步骤402处,其中光栅化器级314光栅化从图形处理流水线134的较早级接收的三角形,以确定被覆盖的样本并且生成包括那些被覆盖的样本的指示的片段。光栅化为渲染目标中被三角形覆盖的每个像素生成一个片段。片段是对应于单个像素的一组数据,并且具有诸如样本覆盖范围、每个样本的颜色数据(在像素着色器级之后)、每个样本的深度数据以及可能的其他类型的数据的信息。在输出合并器级318中,片段被用于对帧缓冲器的像素进行着色。样本是屏幕像素内的点,可以针对所述点单独确定诸如覆盖范围信息、深度信息和颜色信息的信息。在一些操作模式下,每个渲染目标像素有多个样本。通常,每个渲染目标像素具有多个样本的目的是执行防混叠,这改善了图像中硬边缘的视觉外观。在其他操作模式下,每个渲染目标像素仅一个样本。
在步骤402中,光栅化器级314确定哪些样本被接收的图元覆盖,并且哪些样本未被覆盖。通常,光栅化器级314从图形处理流水线134的较早级接收三角形,并且光栅化那些三角形以生成片段。光栅化三角形包括:如果每个像素有多个样本,则确定渲染目标的哪些像素被三角形覆盖,以及那些被覆盖的像素内的哪些样本被三角形覆盖。可以使用用于光栅化三角形的任何技术上可行的技术。为覆盖一个样本的每个像素生成片段。
光栅化器级314也在步骤402执行深度测试。在一个示例中,深度测试涉及检查三角形覆盖的每个样本的深度值,并且将那些深度值与存储已处理三角形的深度值的深度缓冲器进行比较。将特定样本的深度值与存储在深度缓冲器中与特定样本相同位置的深度值进行比较。如果深度缓冲器指示样本被遮挡,则所述样本被标记为未被覆盖,并且如果深度缓冲器指示样本未被遮挡,则所述样本幸存。指示哪些样本位置被覆盖并且未被遮挡的数据被传递到图形处理流水线134的其他部分,用于稍后的处理,如本说明书中其他地方所描述的。在本文中,术语“被覆盖”在应用于样本时是指样本被三角形覆盖并且通过深度测试,且术语“未被覆盖”或“未覆盖”是指样本未被三角形覆盖或被三角形覆盖但未通过深度测试。
光栅化输出2x2组的片段(称为四边形)。更具体地,对于具有至少一个被三角形覆盖的样本的渲染目标的每个像素,光栅化器级314生成片段。光栅化器314从这些片段创建四边形。四边形包括2x2像素的相邻部段的片段,即使一个或多个此类片段未被三角形完全覆盖(其中“完全未被覆盖”意味着没有片段的样本被三角形覆盖并且未被遮挡)。完全未被覆盖的片段称为辅助片段。像素着色器级316使用辅助片段来计算用于着色的空间导数。通常,这些空间导数用于纹理的mipmap选择和过滤,但是空间导数可以用于其他目的。
同样在步骤402处,光栅化器级314确定三角形样本的一个或多个着色率。着色率可以是子样本着色率、一对一着色率或超样本着色率中的一个。子采样着色率意味着像素着色的分辨率低于渲染目标的分辨率(但不是样本的分辨率)。一对一的着色率意味着像素着色的分辨率与渲染目标的分辨率相同。超样本着色率意味着像素着色的分辨率高于渲染目标的分辨率。注意,即使在超样本着色率下,像素着色的分辨率也可能不同于光栅化(覆盖范围确定)的分辨率。具体地,光栅化器可以确定每像素特定数量的样本的样本覆盖范围,然后以比所述数量的样本更低的比率发生像素着色。例如,对于每个片段的四个样本,光栅化可能发生,但是对于每片段,像素着色仅发生两次。
像素着色的分辨率(也称为着色率)限定在像素着色器级316中一起着色的片段的数量。更具体地,对于子采样,像素着色的分辨率确定了渲染目标中有多少像素位置被赋予由像素着色器级316中的单个工作项确定的颜色。例如,如果着色率是四分之一,则像素着色器级316中的工作项为渲染目标中的四个像素位置确定颜色。对于超采样,像素着色的分辨率确定了给定片段的多少个样本被赋予由单个工作项确定的颜色。例如,如果像素着色的分辨率是“4x”,则四个不同的工作项确定由光栅化器级314生成的每片段的四个不同样本的颜色。
可以在每三角形基础上、每着色率图块基础上、或者在对于各个三角形的每着色率图块基础上确定着色率。对于在每三角形基础上的着色,像素着色器上游的图形处理流水线134中的单元确定发送到光栅化器级314的三角形的着色率。在示例中,顶点着色器级304确定由所述级处理的三角形的着色率。在另一个示例中,几何着色器级312确定由所述级发出的三角形的着色率。对于在每着色率图块基础上的着色,光栅化器级314确定渲染目标的不同着色率图块的着色率。渲染目标被分成着色率图块,每个着色率图块包括渲染目标的多个像素。更具体地,渲染目标被“图块化”成着色率图块,图块中的每个可以具有不同的着色率。可以使用任何技术上可行的技术来确定着色率图块的着色率。在一个示例中,使用着色率图块图像。着色率图块图像具有用于渲染目标的不同着色率图块的信息,所述信息指示那些着色率图块的着色率。着色率图像可由应用明确地或算法地指定。
对于在各个三角形的每着色率图块基础上的着色,每着色率图块和每三角形信息的组合用于确定任何给定四边形的着色率。具体地,每个三角形与限定三角形不同部分的着色率的三角形着色率图像相关联。
着色率图块的大小可能与图块缓冲器覆盖的渲染目标像素的数量的大小相同,或者大于所述缓冲器。但是,在任何特定时间点,图块缓冲器的内容将具有相同的着色率。
在步骤404处,光栅化器级314将作为步骤402中光栅化的结果而生成的四边形累积到图块缓冲器510中。图块缓冲器可以存储任何技术上可行数量的四边形。在一个示例中,图块缓冲器以2x2阵列存储四个相邻的四边形。图块缓冲器中的四边形对应于渲染目标的邻接部分。当使用VRS时,这允许在较少数量的四边形中对四边形进行下采样。在将四边形累积到图块缓冲器中之后,光栅化器级314触发步骤406。注意,所述触发可在图块缓冲器510的至少某一部分为空的情况下发生。更具体地,图块缓冲器510存储来自屏幕空间的邻接部分、来自相同三角形的四边形。即使在所述邻接部分的不同部分有覆盖范围,在所述邻接部分的至少一些中也可能没有特定三角形的覆盖范围。在此类情况下,将在步骤406中使用非全图块缓冲器510(基于着色率生成修改比率的四边形)。
在步骤406处,光栅化器级314检查图块缓冲器510的内容,并且基于着色率生成修改比率的四边形。有三种可能的方式可能会发生所述情况。如上所描述的,对于图块缓冲器的内容的任何特定示例,为所有那些内容限定着色率。所述着色率可以是子采样率、1:1比率或超采样率中的一个。如果着色率是子采样率,则光栅化器级314对图块缓冲器510的四边形进行下采样,以生成修改比率的四边形。产生的下采样四边形包括比渲染目标的像素大的粗略片段。下采样四边形的目的是减小为着色片段而产生的像素着色器工作项的数量。具体地,因为像素着色器为每片段启动一个工作项,所以使得片段更大会导致产生更少的工作项,从而更快地完成着色工作负载。
用子采样着色率,下采样四边形中可用的覆盖信息量可能不足以代表图块缓冲器510中的四边形的覆盖范围数据的全部分辨率。如果是这种情况,则下采样还包括压缩覆盖范围数据。
如果着色率是1:1的比率,则光栅化器级314简单地输出未修改的图块缓冲器510的四边形,作为修改比率的四边形。
如果着色率是超采样率,则光栅化器级314对图块缓冲器510的四边形进行上采样,以生成修改比率的四边形。所得到的上采样四边形包括比图块缓冲器510中的四边形更多的四边形。四边形数量增加的因子等于超采样率。
在步骤408处,光栅化器级314为四边形的片段分配形心位置。这样做的方式取决于若干因素,包括着色率、图块缓冲器四边形中样本的数量和位置、以及可能的其他因素。形心是评估像素属性(诸如纹理坐标)的位置。
在步骤410处,像素着色器级316对四边形的片段进行着色。如本文其他地方所描述的,每片段产生一个工作项。像素着色器使用在步骤408处确定的形心对片段进行着色。像素着色器还可以通过例如将片段的一个或多个样本从被覆盖切换到未被覆盖或从未被覆盖切换到被覆盖来修改任何特定片段的覆盖范围。在示例中,像素着色器确定对应于特定被覆盖样本的alpha值是完全透明的(例如,alpha值为0),因此将所述样本设置为未被覆盖。应理解,前述仅是一个示例,并且可由应用开发者编写的像素着色器程序可以以任何技术上可行的方式潜在地修改覆盖范围。
在步骤412处,如果对四边形进行下采样,则输出合并器级318恢复那些四边形的原始分辨率,这包括应用来自光栅化器级314的精细覆盖范围数据。关于图4D提供另外的细节。
在步骤414处,输出合并器级318执行后期像素操作,并且将四边形的样本写入帧缓冲器。如果着色的四边形被下采样(即,如果使用了VRS),则输出合并器级318写入来自在步骤412恢复的四边形的数据。如果着色的四边形被上采样,或者如果使用1∶1的着色率,则由像素着色器316输出的来自四边形的数据被用于对渲染目标进行着色。
图4B示出了根据示例基于超采样着色率的图块缓冲器510的内容来生成修改的着色率四边形的操作。换句话说,图4B代表针对超采样着色率的步骤406的操作。图块缓冲器510被示出处于已经累积了由光栅化器级314生成的四边形(步骤404)之后的状态。为图块缓冲器的内容确定的着色率是超样本着色率,这意味着像素着色以高于渲染目标的分辨率的分辨率发生。在图4B的示例中,着色率是4x,但是本文的教导适用于任何超样本着色率。
如所示出的,图块缓冲器510具有3个四边形(四边形1的空间为空,因为所述四边形没有被覆盖的样本),所述四边形中的每个具有四个片段。图块缓冲器510中的每个片段具有四个覆盖范围样本。为了生成修改的着色率四边形422,对于图块缓冲器510中覆盖了至少一个样本的每个四边形,光栅化器级314生成等于着色率的多个四边形。生成的四边形中的每个片段都具有图块缓冲器510中的片段的样本的子集。
图块缓冲器510中的片段的样本数量与生成的片段的样本数量之比等于着色率。对于4x着色率,图块缓冲器510中的片段具有的样本数量是修改的着色率片段的四倍。任何特定生成的四边形中的片段具有来自图块缓冲器中对应四边形的片段的相同样本位置的样本。在示例中,生成的四边形中的每个片段在所示的像素模板420的位置“样本a”处具有样本。在所述示例中,对于具有至少一个被覆盖样本的每个四边形,会生成四个四边形-每个样本一个四边形,使得每个生成的四边形包括其中样本位于相同样本位置的片段,并且分配给不同四边形的样本是不同的。在示出的示例中,四边形1为空,且不会导致任何修改的着色率四边形。四边形2导致生成四边形2a、2b、2c和2d。四边形2a的片段具有来自四边形2的片段的样本a。四边形2b的片段具有来自四边形2的片段的样本b。四边形2c的片段具有来自四边形2的片段的样本c。四边形2d的片段具有来自四边形2的片段的样本d。四边形3a-3d和4a-4d以类似的方式从四边形3和四边形4导出它们的样本。注意,每片段的覆盖范围样本数可能不同于着色率。在这种情况下,修改的着色率四边形的片段从图块缓冲器中的四边形获得多个样本。
如关于图4A所描述的,在生成修改的着色率四边形422之后,在步骤408中分配四边形的片段的形心。形心是评估属性(诸如纹理坐标)的位置。基于分配给片段的样本的位置来分配所述片段的形心。例如,四边形2a、3a和4a的片段在样本a的位置处获得形心。类似地,四边形2b、3b和4b的片段在样本b的位置处获得形心,四边形2c、3c和4c在样本c的位置获处得形心,并且四边形2d、3d和4d在样本d的位置处获得形心。如果修改的着色率四边形422具有多个样本,则形心定位在代表那些样本的位置处。在示例中,形心在被覆盖的样本中的一个的位置处,在被覆盖的样本之间的中间或在代表样本的任何其他位置处。
同样如关于图4A所描述的,在步骤410中对修改的着色率四边形422进行着色。使用不同的工作项对每个修改的着色率四边形422的每个片段进行着色,并且因此可以给源自图块缓冲器510中的单个片段的样本赋予不同的颜色。像素着色器级316还可以例如通过将被覆盖的样本标记为未被覆盖来修改覆盖范围。在步骤414处,输出合并器级318将着色的片段写入渲染目标。将着色样本写入渲染目标的细节通常是已知的,且本文不再详细描述。通常,此操作包括执行z测试以确定样本是否被较旧的样本遮挡,且如果启用了混合,则将样本的颜色与渲染目标中的颜色混合。也可以执行其他操作。
图4C示出了根据示例当使用子采样着色率(VRS)时与图块缓冲器510中的下采样四边形相关的操作。下采样操作包括将图块缓冲器510的四边形转换成更小数量的一个或多个修改的着色率四边形440。生成的四边形的数量等于图块缓冲器510中的四边形的数量乘以着色率(尽管如果图块缓冲器510没有完全填充四边形或者如果存在没有覆盖范围的生成四边形,则可以生成更小的数量)。在示例中,着色率是1/4,图块缓冲器510中的四边形的数量是四个,并且从这些四边形生成的四边形的数量是一个(4*1/4=1)。
每个生成的四边形包括四个片段。分配给每个此类片段的覆盖范围是分配给图块缓冲器510中的四边形的片段的覆盖范围的合并。在一些情况下,此类合并将导致修改的着色率四边形440的片段具有过多的覆盖范围数据。更具体地,图形处理流水线134可以对可以用于指定片段的覆盖范围数据的位数具有限制。在所述情况下,当覆盖范围数据被合并到生成的四边形的片段的覆盖范围数据中时,所述数据的保真度减小(被压缩)。剩余的覆盖范围数据将在几何上代表图块缓冲器510中的四边形的片段的覆盖范围。
在图4C的示例中,图块缓冲器510中的四边形的每个片段具有四个样本。而且,着色率是1/4,这意味着在像素着色器级316中将图块缓冲器510中的片段的四个片段作为单个片段一起进行着色。另外,像素着色硬件对每片段可以处理的样本数量具有限制,并且所述限制是八个。由于这些因素,下采样操作442以下列方式生成修改的着色率四边形440。1/4的着色率导致图块缓冲器510中的每个四边形被转换成修改的着色率四边形440中的单个片段。具体地,因为每个四边形具有四个片段,并且着色率是1/4,所以四边形的四个片段被转换成单个片段。因为图块缓冲器510具有四个四边形,所以图块缓冲器510的内容被转换成单个四边形。四边形的每个粗略片段对应于图块缓冲器510的四个片段。
此外,因为像素着色器316仅能处理每片段8个样本,所以图块缓冲器510中的每个四边形的十六个样本被压缩为每个粗略片段的八个样本。每个样本在几何上代表图块缓冲器510中的两个样本。此外,所述压缩操作是保守的,因为如果对应于压缩样本的任一个或两个样本被覆盖在图块缓冲器510中,则粗略片段的样本也被覆盖,但是如果两个样本都未被覆盖,则粗略片段中的样本未被覆盖。在图4C的示例中,在修改的着色率四边形440中提供虚线,以示出图块缓冲器510中的片段的对应区域。可以看出,那些对应区域中的每个样本对应于图块缓冲器510中的两个样本。而且,对应于“精细片段”的粗略片段的部分中的左上角样本对应于所述精细片段的两个顶部样本,并且对应于精细片段的粗略片段的部分中的右下角样本对应于所述精细片段的两个底部样本。请注意,如果要合并到单个粗略片段中的样本数量不超过所述片段的样本限制,则不会发生压缩。还应注意,还示出了1/4的着色率,可以使用其他着色率诸如1/2水平(图块缓冲器510中的一行两个片段在修改的着色率四边形中形成粗略片段)、1/2竖直(图块缓冲器510中的一列两个片段在修改的着色率四边形中形成粗略片段)或任何其他比率。
在步骤406之后,形心被分配给生成的四边形的片段。以任何技术上可行的方式设置每个粗略片段的形心。在一个示例中,形心代表粗略片段的被覆盖的样本的位置。在另一个示例中,选择片段中的一个的位置。在又一个示例中,粗略片段的中心被用作形心。如上所描述的,形心被用作像素着色器级316计算诸如纹理坐标的属性的位置。
在步骤410处,像素着色器级316对生成的四边形的片段进行着色。具体地,每个粗略片段启动一个工作项,并且为每个粗略片段确定的颜色(和其他属性)被应用于所述片段的每个被覆盖样本。像素着色器级316还可以修改粗略片段的覆盖范围,诸如通过将被覆盖的样本设置为未被覆盖或将未被覆盖的样本设置为被覆盖。
在步骤412处,输出合并器级318将来自光栅化器级314的精细覆盖范围数据应用于着色的四边形,以生成渲染目标的分辨率的片段。图4D示出了所述操作的示例。首先,输出合并器级318对着色的粗略四边形进行上采样,以生成着色的上采样四边形。为此,输出合并器级318基于着色率将粗略片段中的每个分成上采样片段。对于1/4的着色率,每个粗略片段被转换成四个上采样片段。每个上采样片段的样本获得那些样本所源自的粗略片段的颜色。另外,如果样本最初被压缩,则样本分辨率被恢复,其中每个恢复的样本获得粗略片段的对应样本的颜色。每个恢复样本的覆盖范围(被覆盖或未被覆盖)与粗略片段的对应样本的覆盖范围相同。
在图4D中,上采样按如下进行。粗略片段1没有覆盖范围。因此,将从所述片段生成的四边形没有覆盖范围,并且将其丢弃。粗略片段2具有颜色1,并且具有六个被覆盖的片段,如图中示出的。对应的上采样四边形(四边形2)具有三个片段,其中每个片段覆盖四个样本,和没有被覆盖的样本的一个片段。四边形2的每个样本都具有粗略片段2的颜色。类似地,粗略片段3和粗略片段4的覆盖范围和颜色用于生成四边形3和四边形4。
此时,由光栅化级314生成的原始覆盖范围数据被用于调制在上采样操作中生成的覆盖范围数据。调制是“与”操作,其中如果样本的两个副本都在原始覆盖范围数据和来自上采样操作的覆盖范围数据中被覆盖,则输出样本被认为是被覆盖的,并且如果原始覆盖范围数据中的一个或两个样本未被覆盖,则输出样本被认为是未被覆盖的。结果是一组四边形,具有调制的覆盖范围和由像素着色器316生成的颜色。按照通常的方式将四边形写入渲染目标(例如,执行深度测试、混合和其他操作,以将这些输出四边形的颜色与渲染目标中的颜色相组合)。
应理解,基于本文的公开内容,许多变型是可能的。虽然上面以特定的组合描述了特征和要素,但是每个特征或要素能够单独使用而无需其他特征和要素,或者以具有或不具有其他特征和要素的各种组合使用。一个示例是用于填充上述图块缓冲器510的替代技术。更具体地,在上述技术中,光栅化器级314首先生成四边形,然后将那些四边形累积到图块缓冲器510中。在另一个技术中,光栅化器级314直接在图块缓冲器510中生成四边形,并且不需要执行生成四边形然后将那些四边形累积到图块缓冲器510中的两个单独步骤。
所提供的方法可在通用计算机、处理器或处理器核中实现。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。能够通过以下方式制造这种处理器:使用处理后的硬件描述语言(HDL)指令的结果和其他中间数据(包括网表)(这种指令能够存储在计算机可读介质上)来配置制造过程。这种处理的结果可能是遮罩,所述遮罩然后被用于半导体制造过程中以制造实现本公开的特征的处理器。
本文提供的方法或流程图能够在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实现,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质以及诸如CD-ROM盘和数字通用光盘(DVD)等光学介质。
Claims (19)
1.一种用于以不同分辨率执行像素着色和光栅化的方法,所述方法包括:
将第一组四边形存储到图块缓冲器中;
从所述第一组四边形以子采样率生成第一组修改的着色率四边形;
将第二组四边形存储到所述图块缓冲器中;
从所述第二组四边形以超采样率生成第二组修改的着色率四边形;以及
对所述第一修改的着色率四边形和所述第二组修改的着色率四边形进行着色。
2.如权利要求1所述的方法,其还包括:
确定第三组四边形将以一对一的着色率进行着色;以及
在不为所述第三组四边形生成一组修改的着色率四边形的情况下对所述第三组四边形进行着色。
3.如权利要求1所述的方法,其还包括:
基于在每三角形的基础上、在每着色率图块基础上、或在对于各个三角形的每着色率图块基础上中的一个,确定所述第一组修改的着色率四边形具有子采样着色率,并且所述第二组修改的着色率四边形具有超采样着色率。
4.如权利要求3所述的方法,其中:
在每三角形基础上执行确定所述第一组修改的着色率四边形具有所述子采样着色率或者所述第二组修改的着色率四边形具有所述超采样着色率,其包括:
识别三角形的着色率;
光栅化所述三角形以生成所述第一组四边形或所述第二组四边形;以及
将所述三角形的所述着色率分配给所述第一组四边形或所述第二组四边形。
5.如权利要求3所述的方法,其中:
在每着色率图块基础上执行确定所述第一组修改的着色率四边形具有所述子采样着色率或者所述第二组修改的着色率四边形具有所述超采样着色率,其包括:
识别对应于所述第一组四边形或所述第二四边形的着色率图块的着色率;以及
将所述着色率图块的所述着色率分配给所述第一组四边形或所述第二组四边形。
6.如权利要求5所述的方法,其中识别所述着色率图块的所述着色率包括在着色率图块图像中执行查找。
7.如权利要求3所述的方法,其中:
在对于各个三角形的每着色率图块基础上执行确定所述第一组修改的着色率四边形具有所述子采样着色率或者所述第二组修改的着色率四边形具有所述超采样着色率,其包括:
识别三角形的着色率;
光栅化所述三角形以生成所述第一组四边形或所述第二组四边形;以及
识别所述三角形内的对应于所述第一组四边形或所述第二四边形的着色率图块的着色率;以及
将所述着色率图块的所述着色率分配给所述第一组四边形或所述第二组四边形。
8.如权利要求1所述的方法,其还包括:
将所述着色的第二组修改的着色率四边形写入渲染目标。
9.如权利要求1所述的方法,其还包括:
对所述着色的第一组修改的着色率四边形进行上采样,并且调制得到的上采样四边形。
10.一种用于以不同分辨率执行像素着色和光栅化的图形处理流水线,所述图形处理流水线包括:
图块缓冲器;
光栅化器级,其被配置为:
将第一组四边形存储到所述图块缓冲器中;
从所述第一组四边形以子采样率生成第一组修改的着色率四边形;
将第二组四边形存储到所述图块缓冲器中;
从所述第二组四边形以超采样率生成第二组修改的着色率四边形;以及
像素着色器级,其被配置为:
对所述第一修改的着色率四边形和所述第二组修改的着色率四边形进行着色。
11.如权利要求10所述的图形处理流水线,其中所述光栅化器级还被配置为:
确定第三组四边形将以一对一的着色率进行着色;以及
在不为所述第三组四边形生成一组修改的着色率四边形的情况下对所述第三组四边形进行着色。
12.如权利要求10所述的图形处理流水线,其中所述光栅化器级还被配置为:
基于在每三角形的基础上、在每着色率图块基础上、或在对于各个三角形的每着色率图块基础上中的一个,确定所述第一组修改的着色率四边形具有子采样着色率,并且所述第二组修改的着色率四边形具有超采样着色率。
13.如权利要求12所述的图形处理流水线,其中:
在每三角形基础上执行确定所述第一组修改的着色率四边形具有所述子采样着色率或者所述第二组修改的着色率四边形具有所述超采样着色率,其包括:
识别三角形的着色率;
光栅化所述三角形以生成所述第一组四边形或所述第二组四边形;以及
将所述三角形的所述着色率分配给所述第一组四边形或所述第二组四边形。
14.如权利要求12所述的图形处理流水线,其中:
在每着色率图块基础上执行确定所述第一组修改的着色率四边形具有所述子采样着色率或者所述第二组修改的着色率四边形具有所述超采样着色率,其包括:
识别对应于所述第一组四边形或所述第二四边形的着色率图块的着色率;以及
将所述着色率图块的所述着色率分配给所述第一组四边形或所述第二组四边形。
15.如权利要求14所述的图形处理流水线,其中识别所述着色率图块的所述着色率包括在着色率图块图像中执行查找。
16.如权利要求12所述的图形处理流水线,其中:
在对于各个三角形的每着色率图块基础上执行确定所述第一组修改的着色率四边形具有所述子采样着色率或者所述第二组修改的着色率四边形具有所述超采样着色率,其包括:
识别三角形的着色率;
光栅化所述三角形以生成所述第一组四边形或所述第二组四边形;以及
识别所述三角形内的对应于所述第一组四边形或所述第二四边形的着色率图块的着色率;以及
将所述着色率图块的所述着色率分配给所述第一组四边形或所述第二组四边形。
17.如权利要求10所述的图形处理流水线,其还包括:
输出合并器级,其被配置为将所述着色的第二组修改的着色率四边形写入渲染目标。
18.如权利要求10所述的图形处理流水线,其还包括:
输出合并器级,其被配置为对所述着色的第一组修改的着色率四边形进行上采样,并且调制得到的上采样四边形。
19.一种加速处理装置(“APD”),其包括:
处理单元,其被配置为执行像素着色器程序;以及
图形处理流水线,其用于以不同分辨率执行像素着色和光栅化,所述图形处理流水线包括:
图块缓冲器;
光栅化器级,其被配置为:
将第一组四边形存储到所述图块缓冲器中;
从所述第一组四边形以子采样率生成第一组修改的着色率四边形;
将第二组四边形存储到所述图块缓冲器中;
从所述第二组四边形以超采样率生成第二组修改的着色率四边形;以及
像素着色器级,其被配置为执行所述像素着色器程序以:
对所述第一修改的着色率四边形和所述第二组修改的着色率四边形进行着色。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/228,692 US11276211B2 (en) | 2018-12-20 | 2018-12-20 | Integration of variable rate shading and super-sample shading |
US16/228,692 | 2018-12-20 | ||
PCT/US2019/066500 WO2020131679A1 (en) | 2018-12-20 | 2019-12-16 | Integration of variable rate shading and super-sample shading |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113196333A true CN113196333A (zh) | 2021-07-30 |
Family
ID=71097730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980084278.2A Pending CN113196333A (zh) | 2018-12-20 | 2019-12-16 | 可变比率着色和超样本着色的集成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11276211B2 (zh) |
EP (1) | EP3899858A4 (zh) |
JP (1) | JP2022512082A (zh) |
KR (1) | KR20210095914A (zh) |
CN (1) | CN113196333A (zh) |
WO (1) | WO2020131679A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022678A (zh) * | 2022-05-30 | 2022-09-06 | 中国电信股份有限公司 | 图像处理方法、***、装置、设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US11257273B2 (en) * | 2019-12-19 | 2022-02-22 | Advanced Micro Devices, Inc. | Data output rate with variable rate shading |
US11127109B1 (en) * | 2020-03-23 | 2021-09-21 | Samsung Electronics Co., Ltd. | Methods and apparatus for avoiding lockup in a graphics pipeline |
GB2603156B (en) * | 2021-01-28 | 2023-05-10 | Advanced Risc Mach Ltd | Tile-based graphics processing systems |
US20220414950A1 (en) * | 2021-06-29 | 2022-12-29 | Advanced Micro Devices, Inc. | Per-pixel variable rate shading controls using stencil data |
US11763521B2 (en) | 2021-08-13 | 2023-09-19 | Samsung Electronics Co., Ltd. | Method and apparatus for the automation of variable rate shading in a GPU driver context |
US20230298133A1 (en) * | 2022-03-17 | 2023-09-21 | Advanced Micro Devices, Inc. | Super resolution upscaling |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170293995A1 (en) * | 2016-04-08 | 2017-10-12 | Qualcomm Incorporated | Per-vertex variable rate shading |
US20180061122A1 (en) * | 2016-08-30 | 2018-03-01 | Intel Corporation | Multi-resolution deferred shading using texel shaders in computing environments |
US20180240268A1 (en) * | 2017-02-17 | 2018-08-23 | Microsoft Technology Licensing, Llc | Variable rate shading |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6943805B2 (en) | 2002-06-28 | 2005-09-13 | Microsoft Corporation | Systems and methods for providing image rendering using variable rate source sampling |
US8547395B1 (en) * | 2006-12-20 | 2013-10-01 | Nvidia Corporation | Writing coverage information to a framebuffer in a computer graphics system |
CN101772962A (zh) | 2007-06-01 | 2010-07-07 | 汤姆森特许公司 | 用于像素数据转换的图像处理装置和方法 |
US8044956B1 (en) * | 2007-08-03 | 2011-10-25 | Nvidia Corporation | Coverage adaptive multisampling |
KR20090040515A (ko) | 2007-10-22 | 2009-04-27 | 삼성전자주식회사 | 적응적 탐색 기법을 이용한 이미지 공간 기반의 음영 처리장치 및 방법 |
US8605087B2 (en) * | 2008-07-03 | 2013-12-10 | Nvidia Corporation | Hybrid multisample/supersample antialiasing |
US9299125B2 (en) * | 2013-05-03 | 2016-03-29 | Advanced Micro Devices Inc. | Variable acuity rendering using multisample anti-aliasing |
US9355483B2 (en) | 2013-07-19 | 2016-05-31 | Nvidia Corporation | Variable fragment shading with surface recasting |
US9569883B2 (en) * | 2013-12-12 | 2017-02-14 | Intel Corporation | Decoupled shading pipeline |
US9569886B2 (en) * | 2013-12-19 | 2017-02-14 | Intel Corporation | Variable shading |
US9905046B2 (en) * | 2014-04-03 | 2018-02-27 | Intel Corporation | Mapping multi-rate shading to monolithic programs |
US10262455B2 (en) * | 2015-12-04 | 2019-04-16 | Intel Corporation | Merging fragments for coarse pixel shading using a weighted average of the attributes of triangles |
US10706616B2 (en) * | 2017-04-21 | 2020-07-07 | Intel Corporation | Fragment compression for coarse pixel shading |
US10235799B2 (en) * | 2017-06-30 | 2019-03-19 | Microsoft Technology Licensing, Llc | Variable rate deferred passes in graphics rendering |
US10510185B2 (en) * | 2017-08-25 | 2019-12-17 | Advanced Micro Devices, Inc. | Variable rate shading |
-
2018
- 2018-12-20 US US16/228,692 patent/US11276211B2/en active Active
-
2019
- 2019-12-16 CN CN201980084278.2A patent/CN113196333A/zh active Pending
- 2019-12-16 JP JP2021530935A patent/JP2022512082A/ja active Pending
- 2019-12-16 KR KR1020217019698A patent/KR20210095914A/ko unknown
- 2019-12-16 WO PCT/US2019/066500 patent/WO2020131679A1/en unknown
- 2019-12-16 EP EP19897802.5A patent/EP3899858A4/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170293995A1 (en) * | 2016-04-08 | 2017-10-12 | Qualcomm Incorporated | Per-vertex variable rate shading |
US20180061122A1 (en) * | 2016-08-30 | 2018-03-01 | Intel Corporation | Multi-resolution deferred shading using texel shaders in computing environments |
US20180240268A1 (en) * | 2017-02-17 | 2018-08-23 | Microsoft Technology Licensing, Llc | Variable rate shading |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022678A (zh) * | 2022-05-30 | 2022-09-06 | 中国电信股份有限公司 | 图像处理方法、***、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200202594A1 (en) | 2020-06-25 |
JP2022512082A (ja) | 2022-02-02 |
EP3899858A4 (en) | 2022-09-21 |
EP3899858A1 (en) | 2021-10-27 |
KR20210095914A (ko) | 2021-08-03 |
WO2020131679A1 (en) | 2020-06-25 |
US11276211B2 (en) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196333A (zh) | 可变比率着色和超样本着色的集成 | |
CN111066066B (zh) | 可变比率着色 | |
EP3559914B1 (en) | Foveated rendering in tiled architectures | |
US11657560B2 (en) | VRS rate feedback | |
US20220414950A1 (en) | Per-pixel variable rate shading controls using stencil data | |
US11030791B2 (en) | Centroid selection for variable rate shading | |
US20230298212A1 (en) | Locking mechanism for image classification | |
US20220414939A1 (en) | Render target compression scheme compatible with variable rate shading | |
US20230186523A1 (en) | Method and system for integrating compression | |
US11257273B2 (en) | Data output rate with variable rate shading | |
US11972518B2 (en) | Hybrid binning | |
US20220319091A1 (en) | Post-depth visibility collection with two level binning | |
US20240257435A1 (en) | Hybrid binning | |
US20230298133A1 (en) | Super resolution upscaling | |
CN115769264A (zh) | 用于多采样抗锯齿的加载指令 | |
CN115803770A (zh) | 分箱硬件中的细粒度重放控制 |
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 |