CN114902274A - 混合分箱 - Google Patents

混合分箱 Download PDF

Info

Publication number
CN114902274A
CN114902274A CN202180007909.8A CN202180007909A CN114902274A CN 114902274 A CN114902274 A CN 114902274A CN 202180007909 A CN202180007909 A CN 202180007909A CN 114902274 A CN114902274 A CN 114902274A
Authority
CN
China
Prior art keywords
image
tiles
tile
fine
level tiling
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
CN202180007909.8A
Other languages
English (en)
Inventor
米卡·托米
基亚·卡利奥
吴锐进
阿尼鲁德·R·阿查里亚
维妮特·戈埃尔
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN114902274A publication Critical patent/CN114902274A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing 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)
  • Polymers With Sulfur, Phosphorus Or Metals In The Main Chain (AREA)
  • Formation Of Insulating Films (AREA)

Abstract

提供了一种对图像进行平铺渲染以供显示的处理装置和方法。处理装置包括存储器和处理器。处理器被配置为接收包括一个或多个三维(3D)对象的图像,将图像划分为多个图块,对图像的图块执行粗略级别平铺并且对图像的图块执行精细级别平铺。处理装置还包括用于执行粗略级别平铺和精细级别平铺的相同的固定功能硬件。处理器还被配置为确定图块中的第一图块的可见性信息。可见性信息被划分为图像的每个其余图块的绘制调用可见性信息和三角形可见性信息。

Description

混合分箱
相关申请的交叉引用
本申请要求于2020年1月20日提交的标题为“HYBRID BINNING(混合分箱)”的美国临时申请号62/963,414以及于2020年9月25日提交的标题为“HYBRID BINNING(混合分箱)”的美国非临时申请号17/033,259的权益,所述申请通过引用并入本文,就如同在本文中全面阐述的一样。
背景技术
图形处理包括将三维(3D)场景渲染到二维(2D)屏幕上。3D场景经由包括不同处理阶段的图形流水线渲染在显示屏幕上。(例如,从应用程序)接收命令流的图形处理命令,并且(例如,向加速的处理装置,诸如GPU)提供计算任务以执行任务。
使用图元(例如,三角形、四边形或其他几何形状)在显示屏上渲染图形。图形处理命令包括例如图元的数量、每个图元的位置以及要渲染在显示屏上的每个图元的属性。
附图说明
可以从下面结合附图以举例的方式给出的描述中获得更详细的理解,在附图中:
图1是其中可以实施本公开的一个或多个特征的示例性装置的框图;
图2是图1的装置的框图,其示出了另外的细节;
图3是示出根据一个示例的图形处理流水线的框图;
图4是示出根据本公开的特征的渲染图像以供显示的示例性方法的流程图;
图5是示出根据本公开的特征的渲染图像以供显示的示例的示意图;
图6是示出根据本公开的特征的渲染图像的第一图块以供显示的示例性方法的流程图;以及
图7是示出根据本公开的特征的渲染图像的下一个图块以供显示的示例性方法的流程图。
具体实施方式
图形流水线可以被简化为包括前端几何部分和后端部分。例如,流水线的前端几何部分包括几个着色器阶段(例如,顶点着色器阶段、外壳着色器阶段、曲面细分器阶段、域着色器阶段和几何着色器阶段)。在着色器阶段期间,图元被接收作为3D对象并且被变换为2D对象以渲染至2D屏幕上。后端部分包括光栅器阶段和像素着色器阶段。在光栅器阶段期间,确定要投影到2D屏幕上的每个图元的屏幕上的位置。例如,在光栅化期间,加速的处理装置(例如,GPU)针对每个图元确定哪些像素(或子像素样本)对应于要渲染至2D屏幕上的每个图元。在像素着色器阶段期间,针对对应于图元的像素,计算值(例如,亮度和颜色)。
通过重新使用本地存储的先前处理的数据(例如,存储在GPU的高速缓存中的数据)而不是使用远程存储器(例如,主存储器)处理数据,数据被更有效地处理(例如,由GPU处理)。与一次渲染整个帧相比,平铺(或分箱)是一种减少用于渲染帧的本地存储器(例如,高速缓存)和带宽的量的技术。平铺将帧分割成多个部段(例如,图块或仓箱)并且先渲染帧的一个图块,再渲染帧的另一图块。例如,如果帧(或图像)被分割成四个相等的图块(即,左上象限、右上象限、左下象限和右下象限),则先渲染第一图块(例如,左上象限),再继续渲染接下来的图块中的一个。然后,先渲染其他图块中的一个(例如,右上象限),再继续渲染最后两个图块中的一个,依此类推,直到渲染帧的图块中的每一个。
常规的平铺技术包括粗略级别平铺(即,每帧具有较大的图块和较少数量的图块或仓箱)和精细级别平铺(即,每帧具有较小的图块和较大数量的图块或仓箱)。因为每帧具有较少数量的图块,所以粗略级别平铺产生比精细级别平铺更少的平铺(分箱)开销,但包括比精细级别平铺更低的总体高速缓存命中率。精细级别平铺包括比粗略级别平铺更高的高速缓存命中率,但产生比精细级别平铺更高的平铺开销。
本申请公开了以独特且有效的方式使用粗略级别平铺和精细级别平铺两者来提供有效图块渲染的设备和方法。本申请先对一个粗略图块执行粗略级别平铺并且对所述粗略图块的精细图块执行精细级别平铺,再继续进行到下一个粗略图块以执行粗略级别平铺和精细级别平铺。本申请使用相同的固定功能硬件来执行粗略级别平铺和精细级别平铺,从而提供由粗略级别平铺和精细级别平铺所提供的优点,而无需额外的硬件成本。
本申请提供了一种对图像进行平铺渲染以供显示的方法。所述方法包括接收包括一个或多个三维(3D)对象的图像、将图像划分为多个图块、对图像的图块执行粗略级别平铺以及对图像的图块执行精细级别平铺。
本申请提供了一种用于对图像进行平铺渲染以供显示的处理装置。处理装置包括存储器和处理器。处理器被配置为接收包括一个或多个三维(3D)对象的图像,将图像划分为多个图块,对图像的图块执行粗略级别平铺并且对图像的图块执行精细级别平铺。
本申请提供了一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括用于使计算机执行对图像进行平铺渲染以供显示的方法的指令,该方法包括:接收包括一个或多个三维(3D)对象的图像,将图像划分为多个图块,对图像的图块执行粗略级别平铺以及对图像的图块执行精细级别平铺。
图1是其中可以实施本公开的一个或多个特征的示例性装置100的框图。装置100可以包括例如计算机、游戏装置、手持式装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100还可以任选地包括输入驱动器112和输出驱动器114。应理解,装置100可以包括图1中未示出的附加部件。
在各种替代方案中,处理器102包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一裸片上的CPU和GPU,或者一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。在各种替代方案中,存储器104与处理器102位于同一裸片上,或者与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。
存储装置106包括固定或可移除存储装置,例如硬盘驱动器、固态驱动器、光盘或快闪驱动器。输入装置108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、传声器、加速计、陀螺仪、生物特征扫描仪或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110包括但不限于显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且容许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且容许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选部件,并且装置100在不存在输入驱动器112和输出驱动器114的情况下将以相同方式操作。输出驱动器116包括耦合到显示装置118的加速的处理装置(“APD”)116。APD从处理器102接受计算命令和图形渲染命令,处理那些计算命令和图形渲染命令,并且将像素输出提供给显示装置118以进行显示。如下面进一步详细描述,APD 116包括一个或多个并行处理单元以根据单指令多数据(“SIMD”)范例执行计算。因此,虽然本文中将各种功能描述为由APD 116执行或与其结合来执行,但是在各种替代方案中,被描述为由APD 116执行的功能另外或替代地由具有不由主机处理器(例如,处理器102)驱动的类似能力的其他计算装置执行并且向显示装置118提供图形输出。例如,可以设想,根据SIMD范例执行处理任务的任何处理系统可以执行本文所描述的功能。替代地,可以设想,不根据SIMD范例执行处理任务的计算系统执行本文描述的功能。
图2是装置100的框图,示出了与在APD 116上执行处理任务有关的另外的细节。处理器102在系统存储器104中维持一个或多个控制逻辑模块以供处理器102执行。控制逻辑模块包括操作系统120、内核模式驱动器122和应用程序126。这些控制逻辑模块控制处理器102和APD 116的操作的各种特征。例如,操作系统120直接与硬件通信,并且为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过例如向处理器102上执行的软件(例如,应用程序126)提供应用程序编程接口(“API”)以访问APD 116的各种功能来控制APD 116的操作。内核模式驱动器122还包括即时编译器,所述即时编译器编译程序以供APD 116的处理部件(诸如在下面进一步详细论述的SIMD单元138)执行。
APD 116执行有关选定功能的命令和程序,诸如可能适合于进行并行处理的图形操作和非图形操作。APD 116可以用于基于从处理器102接收的命令执行图形流水线操作,诸如像素操作、几何计算,以及将图像渲染到显示装置118。APD 116还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,所述计算单元包括一个或多个SIMD单元138,所述一个或多个SIMD单元根据SIMD范例以并行方式在处理器102的请求下执行操作。SIMD范例是这样一种范例:多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够用不同的数据执行该程序。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行同一指令,但是可以以不同的数据执行该指令。如果并非所有通道都需要执行给定指令,则可以利用断言关闭通道。断言也可以用于执行具有发散控制流的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流是基于由单个通道执行的计算,对与当前未执行的控制流路径相对应的通道的断言以及对不同控制流路径的串行执行允许有任意控制流。
计算单元132中的基本执行单元是工作项。每个工作项表示将在特定通道中并行执行的程序的单个实例。可以在单个SIMD处理单元138上将工作项同时作为“波前”执行。一个或多个波前包括在“工作组”中,所述工作组包括被指定来执行同一程序的工作项集合。可以通过执行构成工作组的波前中的每一者来执行工作组。在替代方案中,波前在单个SIMD单元138上顺序地执行,或者在不同的SIMD单元138上部分地或完全地并行执行。波前可以被视为可以在单个SIMD单元138上同时执行的最大工作项集合。因此,如果从处理器102接收到的命令指示特定程序将被并行化到所述程序无法同时在单个SIMD单元138上执行的程度,则该程序被分解成在两个或更多个SIMD单元138上并行化的或在同一SIMD单元138上串行化的(或根据需要并行化和串行化的)波前。调度器136执行与在不同的计算单元132和SIMD单元138上调度各种波前相关的操作。
由计算单元132提供的并行性适合于图形相关操作,诸如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,从处理器102接受图形处理命令的图形流水线134向计算单元132提供计算任务以并行执行。
计算单元132还用于执行与图形无关或不作为图形流水线134的“正常”操作的一部分而执行的计算任务(例如,被执行以补充为了图形流水线134的操作而执行的处理的自定义操作)。在处理器102上执行的应用程序126或其他软件将定义此类计算任务的程序传输给APD 116以供执行。
APD 116被配置为通过执行多个功能来实施本公开的特征,如下文更详细描述的。例如,APD 116被配置为接收包括一个或多个三维(3D)对象的图像,将图像划分为多个图块,对图像的图元执行可见性检验(visibility pass),将图像划分为图块,对图像的图块执行粗略级别平铺,将图块划分为精细图块并且执行图像的精细级别平铺。任选地,被确定为在图块中的第一个中的图元的前端几何处理可以与可见性检验同时执行。
图3是示出图2所示的图形处理流水线134的附加细节的框图。图形处理流水线134包括各自执行具体功能的阶段。所述阶段表示图形处理流水线134的功能的细分。每个阶段被部分地或完全地实施为在可编程处理单元202中执行的着色器程序,或者被部分地或完全地实施为在可编程处理单元202外部的固定功能、不可编程的硬件。
阶段302至313表示图形处理流水线134的前端几何处理部分。阶段314到318表示图形处理流水线134的后端像素处理部分。
输入汇编器阶段302从用户填充的缓冲器(例如,在由处理器102执行的软件(诸如应用程序126)的请求下填充的缓冲器)中读取图元数据,并且将数据汇编成图元以供流水线的其余部分使用。输入汇编器阶段302可以基于包括在用户填充的缓冲器中的图元数据而生成不同类型的图元。输入汇编器阶段302将汇编的图元格式化以供流水线的其余部分使用。
顶点着色器阶段304处理由输入汇编器阶段302汇编的图元的顶点。顶点着色器阶段304执行各种逐顶点操作,诸如变换、蒙皮、变形和逐顶点照明。变换操作包括用于变换顶点坐标的各种操作。这些操作包括建模变换、查看变换、投影变换、透视除法和视口变换中的一者或多者。在本文中,这种变换被认为是修改执行变换的顶点的坐标或“位置”。顶点着色器阶段304的其他操作修改除坐标之外的属性。
顶点着色器阶段304被部分地或完全地实施为将在一个或多个计算单元132上执行的顶点着色器程序。顶点着色器程序由处理器102提供,并且基于由计算机程序员预先编写的程序。驱动器122对这种计算机程序进行编译,以生成具有适于在计算单元132内执行的格式的顶点着色器程序。
外壳着色器阶段306、曲面细分器阶段308和域着色器阶段310一起协作以实施曲面细分,这通过将图元细分来将简单的图元转换成更复杂的图元。外壳着色器阶段306基于输入图元来生成用于曲面细分的补片。曲面细分器阶段308生成补片的一组样本。域着色器阶段310计算对应于补片的样本的顶点的顶点位置。外壳着色器阶段306和域着色器阶段310可以实施为要在可编程处理单元202上执行的着色器程序。
几何着色器阶段312逐个图元地执行顶点操作。多种不同类型的操作可以由几何着色器阶段312执行,包括诸如点精灵扩展、动态粒子系统操作、皮鳍生成、阴影体生成、单程渲染到立方体贴图、逐图元材料交换和逐图元材料设置等操作。在一些情况下,在可编程处理单元202上执行的着色器程序执行几何着色器阶段312的操作。
分箱器(平铺器)阶段313是前端处理的最后一个阶段。分箱器阶段执行粗略的光栅化以确定帧(或图像)的图块(或仓箱)是否与图元重叠。例如,分箱器阶段包括针对确定为在每个图块中的图元的可见性检查(即,可见性检验)和图块遍历。分箱器阶段313由固定功能硬件执行。
如上所述,阶段314至318表示图形处理流水线134的后端处理。光栅化阶段314接受并且光栅化上游生成的简单图元。光栅化包括确定哪些屏幕像素(或子像素样本)被特定图元覆盖。例如,光栅化阶段314将图元(例如,三角形)转换为屏幕空间像素,从而测试哪个像素被图元覆盖。光栅化由固定功能硬件执行。
像素着色器阶段316基于在上游生成的图元和光栅化的结果来计算屏幕像素的输出值。像素着色器阶段316可以应用来自纹理存储器的纹理。用于像素着色器阶段316的操作由在可编程处理单元202上执行的着色器程序执行。
输出合并器阶段318接受来自像素着色器阶段316的输出,并且合并那些输出,从而执行诸如z测试和α混合等操作,以确定屏幕像素的最终颜色。
定义纹理的纹理数据由纹理单元320存储和/或访问。纹理是在图形处理流水线134中的各个点处使用的位图图像。例如,在一些情况下,像素着色器阶段316将纹理应用到像素以提高外观渲染的复杂性(例如,提供更“逼真”的外表),而不增加要渲染的顶点数量。
在一些情况下,顶点着色器阶段304使用来自纹理单元320的纹理数据来修改图元以增加复杂性,例如,通过创建或修改顶点以获得改善的美学而进行。在一个示例中,顶点着色器阶段304使用存储在纹理单元320中的高度图来修改顶点的位移。例如,通过修改用于渲染水的顶点的位置和数量,与仅在像素着色器阶段316中使用纹理相比,这种类型的技术可以用于生成看起来更逼真的水。在一些情况下,几何着色器阶段312访问来自纹理单元320的纹理数据。
图4是示出根据本公开的特征的渲染图像以供显示的示例性方法的流程图。用于示出图4的方法的图5是示出根据本公开的特征的渲染图像500以供显示的示例的示意图。
如框402所示,方法400包括接收包括一个或多个3D对象的图像。例如,图像由APD116接收。图像可以包括要变换以在2D显示屏幕上渲染的任意数量的对象。
如框404所示,方法400包括将图像划分为多个图块。为了简化说明,图5所示的示例包括被分割成四个相等的图块(即,左上象限、右上象限、左下象限和右下象限)的图像(或帧)500。然而,图像(或帧)可以被分割成任意数量的图块(例如,32个图块)以进行粗略级别平铺。图块的数量与屏幕分辨率无关。
如框406所示,方法400包括执行图像的第一图块(仓箱)的粗略级别平铺(分箱)。粗略级别平铺经由固定功能硬件执行。即,使用每个图块的可见性信息(即,来自对帧执行的可见性检验)经由固定功能硬件对第一图块(图块0)执行渲染指令(例如,来自存储在命令缓冲器中的应用程序或程序的指令)。在渲染图块0期间生成粗略级别平铺可见性信息。针对像素粒度对图块进行处理并且在光栅化期间(例如,由加速的处理器,诸如GPU)确定对应于图元的像素是否位于图块中。例如,针对图块0生成的粗略级别图块可见性信息指示三角形(Tri 1)位于图块0中。
如框408所示,在对下一个图块(即,图5中的图块1)执行粗略级别平铺之前,对图块0执行精细级别平铺。即,如图5所示,将图块0划分为多个精细(较小的)图块。可以使用任意数量的精细图块来实施本申请的特征。精细级别平铺(例如,图元批量平铺)经由用于执行粗略级别平铺(如下面关于图6更详细描述的)的相同的固定功能硬件执行,其利用本地存储器(例如,片上高速缓存)来累积一批图元(例如,三角形)并且一次渲染一个精细图块的图元。
如框410所示,确定图像(帧)是否包括下一个图块。当确定图像包括下一个图块时,方法400返回到框406以对下一个图块执行粗略级别平铺,并且随后对下一个图块执行精细级别平铺。例如,使用图5所示的示例,当确定图像500包括下一个图块(图块1)时,在框406对图块1执行粗略级别平铺,并且随后对图块1执行精细级别平铺。然后,所述方法继续对图像中的每个其余图块执行粗略级别平铺和精细级别平铺。例如,使用图5所示的示例,方法400继续对图块2执行粗略级别平铺和精细级别平铺,并且随后对图块3执行粗略级别平铺和精细级别平铺。
当在框410处确定图像不包括下一个图块时,所述方法进行到框412以处理下一个图像(帧)。例如,使用图5所示的示例,当在框410处确定图像500不包括下一个图块时(即,在对图块3执行粗略级别平铺和精细级别平铺之后,方法400进行到框412以渲染下一个图像(帧)。
图6是示出根据本公开的特征的渲染图像的第一图块以供显示的示例性流程的示例性装置的部件的框图。图6示出了例如对图5所示的图像500的第一图块(图块0)执行粗略级别平铺和精细级别平铺。
如图6所示,由处理器604(例如,GPU)经由命令流602接收指令以执行对图像的图块的渲染。例如,指令存储在命令缓冲器(未示出)中。处理器604向几何引擎(GE)606提供要渲染的图元(例如,三角形)的属性。
GE 606例如从索引缓冲器608接收索引信息,并且将由处理器604提供的属性信息传送到着色器(非固定功能硬件)以进行处理。例如,三角形的顶点存储在本地(例如,存储在顶点缓冲器中)。对于每个三角形而言,索引信息指示存储在顶点缓冲器中的顶点中的哪3个点是三角形的顶点。即,索引信息描述顶点的连接性。例如,2个不共享边的三角形由6个顶点组成,而2个共享边的三角形由4个顶点组成。对于由6个顶点组成的2个三角形而言,2个三角形的索引可以是(0,1,2)(3,4,5),并且对于由4个顶点组成的2个三角形而言,2个三角形的索引可以是(0,1,2)(1,2,3)。GE可以以硬件(例如,固定功能硬件)、软件或硬件和软件的组合来实施。
着色器610接收图元作为3D对象并且将图元变换为2D对象以渲染至2D屏幕上。例如,着色器610确定帧中三角形的顶点的位置。位置信息被提供给图元汇编器612。附加信息(例如,颜色和纹理信息)也被提供给本地存储器的图元高速缓存部分616。
图元汇编器612使用由着色器610确定的位置信息来组合顶点并且根据每个三角形的顶点位置确定帧中每个三角形的位置。然后将位置信息提供给图元平铺器和光栅器614以及图元高速缓存部分616。
图元平铺器和光栅器614表示执行两个不同功能的固定功能硬件框。即,使用相同的固定功能硬件来执行粗略级别平铺和精细级别平铺。图元平铺器和光栅器614将图像(帧)划分为粗略图块并且将粗略图块划分为精细图块。图元平铺器和光栅器614执行粗略级别平铺(即,粗略级别光栅化)以确定每个图元(例如,三角形)位于哪个粗略图块中。即,针对每个粗略图块,图元平铺器和光栅器614确定在粗略图块中每个三角形的可见性。例如,使用图5所示的示例,图元平铺器和光栅器614确定三角形(TRI 1)位于图块0中。位置信息存储在本地存储器(例如,高速缓存存储器)中作为可见性信息618。图元平铺器和光栅器614还执行精细级别平铺,所述精细级别平铺利用本地存储器(例如,片上高速缓存)来累积一批图元(例如,三角形),并且一次渲染一个精细图块的图元。
图元平铺器和光栅器614确定要投影到2D屏幕上的每个图元的屏幕上的位置。例如,在光栅化期间,加速的处理装置(例如,GPU)针对每个图元确定哪些像素(或子像素样本)对应于要渲染至2D屏幕上的每个图元。在像素着色器阶段期间,针对对应于图元的像素,计算值(例如,亮度和颜色)并且将值提供给像素管道620。
图7是示出根据本公开的特征的渲染图像的其他图块(即,除第一图块之外的其余图块)中的每一个以供显示的示例性方法的流程图。图7示出了例如对图5所示的图像500的图块1、图块2和图块3执行粗略级别平铺和精细级别平铺。
当渲染其余图块中的每一个时,处理器404执行与用于图块0的指令相同的指令,但是如图6所示的存储在本地存储器中的可见性信息418用于减少对其余图块的数据(例如,图元)的处理(例如,不必要的处理)。例如,使用图5所示的示例,在处理图块0期间,确定图5中所示的三角形1(Tri 1)不位于图块1中。因此,当处理图块1时,避免处理Tri 1。
如图7所示,所存储的可见性信息418被划分为两种类型的可见性信息,即绘制调用可见性信息702和三角形可见性信息704。可见性信息418指示针对每个图块的绘制(每一个绘制包括一个或多个图元,诸如三角形)。绘制调用可见性信息702指示对于所处理的图块包括哪些绘制,并且三角形可见性信息704指示每个绘制的哪个三角形包括在所处理的图块中。
例如,使用图5中包括2个三角形(Tri 1和Tri 2)的示例性图像500,指令可能是“绘制1:Tri 1,Tri 2”。即,所述指令指示绘制(例如,绘制1)和绘制内部的三角形(例如,绘制1包括Tri 1和Tri 2)。处理器604为每个图块接收相同指令。例如,假设只有1个绘制指令,则在处理第一图块(图块0)时,图块0的可见性信息618被确定为Tri 1在图块0中可见,但Tri 2在图块0中不可见。当处理第二图块(图块1)时,绘制调用可见性信息702指示绘制1包括1个三角形,并且图块1的三角形可见性信息704被确定为Tri 2,这是因为在处理图块0期间确定了Tri 1不在图块1中。
当处理图块2时,绘制调用可见性信息702再次指示绘制1仅包括1个三角形并且图块2的三角形可见性信息704被确定为Tri 1。当处理图块3时,绘制调用可见性信息702再次指示绘制1仅包括1个三角形,并且图块3的三角形可见性信息704被确定为Tri 2。因此,避免了不必要的处理(例如,图块2、图块2和图块3中的第二三角形)。图7中的其余图块610至620随后执行与上面关于图6所述的相同的功能。
应理解,基于本文的公开内容,许多变型是可能的。尽管上文以特定组合描述了特征和要素,但是每个特征或要素均可以单独使用而无需其他特征和要素,或者以具有或不具有其他特征和要素的各种组合使用。
图中所示和/或本文所描述的各种功能单元(包括但不限于处理器102、输入驱动器112、输入装置108、输出驱动器114、输出装置110、APD 116、调度器136、图形处理流水线134、计算单元132、SIMD单元138)可以被实施为通用计算机、处理器或处理器核心,或者被实施为程序、软件或固件,存储在非暂时性计算机可读介质或另一种介质中,可由通用计算机、处理器或处理器核心执行。所提供的方法可以在通用计算机、处理器或处理器核心中实施。合适的处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可以通过使用处理后的硬件描述语言(HDL)指令的结果和包括网表的其他中间数据(此类指令能够存储在计算机可读介质上)配置制造工艺来制造此类处理器。此种处理的结果可以是掩模作品,然后在半导体制造工艺中使用所述掩模作品来制造实施本公开的特征的处理器。
本文提供的方法或流程图可以在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实施,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移除磁盘)、磁光介质以及光学介质(诸如CD-ROM盘以及数字通用光盘(DVD))。

Claims (20)

1.一种对图像进行平铺渲染以供显示的方法,其包括:
接收包括一个或多个三维(3D)对象的所述图像;
将所述图像划分为多个图块;
对所述图像的所述图块执行粗略级别平铺;以及
对所述图像的所述图块执行精细级别平铺。
2.如权利要求1所述的方法,其中对所述图像的所述图块执行精细级别平铺包括将每个图块划分为更小的精细图块。
3.如权利要求1所述的方法,其中先对每个图块执行所述精细级别平铺,再对所述图像的所述图块中的下一个图块执行粗略级别平铺。
4.如权利要求1所述的方法,其中针对所述图块中的第一图块确定图元的可见性信息,并且所述可见性信息被划分为所述图像的每个其余图块中的绘制调用可见性信息和三角形可见性信息。
5.如权利要求4所述的方法,其中,对于所处理的所述其余图块中的每一个图块而言,所述绘制调用可见性信息指示包括哪些绘制,并且所述三角形可见性信息指示在所处理的所述图块中包括每个绘制的哪个三角形。
6.如权利要求1所述的方法,其中所述粗略级别平铺和所述精细级别平铺使用相同的固定功能硬件来执行。
7.如权利要求6所述的方法,其中经由所述相同的固定功能硬件执行所述粗略级别平铺和所述精细级别平铺还包括:
执行所述粗略级别平铺以确定多个图元中的每一个位于哪个图块中;以及
通过利用本地高速缓存存储器来累积一批图元并且一次渲染一个精细图块的图元来执行所述精细级别平铺。
8.一种用于渲染图像以供显示的处理装置,其包括:
存储器;以及
处理器,所述处理器被配置为:
接收包括一个或多个三维(3D)对象的所述图像;
将所述图像划分为多个图块;
对所述图像的所述图块执行粗略级别平铺;
对所述图像的所述图块执行精细级别平铺;并且
渲染所述图像以供显示。
9.如权利要求8所述的处理装置,其中所述处理器还被配置为通过将每个图块划分为更小的图块来对所述图像的所述图块执行精细级别平铺。
10.如权利要求8所述的处理装置,其中所述处理器还被配置为先对每个图块执行精细级别平铺,再对所述图像的所述图块中的下一图块执行粗略级别平铺。
11.如权利要求8所述的处理装置,其还包括用于执行所述粗略级别平铺和所述精细级别平铺的相同的固定功能硬件。
12.如权利要求11所述的处理装置,其中所述相同的固定功能硬件还被配置为:
执行所述粗略级别平铺以确定多个图元中的每一个位于哪个图块中;并且
通过利用本地高速缓存存储器来累积一批图元并且一次渲染一个精细图块的图元来执行所述精细级别平铺。
13.如权利要求8所述的处理装置,其中所述处理器还被配置为:
确定所述图块中的第一图块的可见性信息;并且
所述可见性信息被划分为所述图像的所述其余图块中的每一个图块的绘制调用可见性信息和三角形可见性信息。
14.如权利要求13所述的处理装置,其中,对于所处理的所述其余图块中的每一个图块而言,所述绘制调用可见性信息指示包括哪些绘制,并且所述三角形可见性信息指示在所处理的所述图块中包括每个绘制的哪个三角形。
15.如权利要求14所述的处理装置,其中所述处理器还被配置为接收所述图像的所述其余图块中每一个图块的所述绘制调用可见性信息,并且向几何引擎提供要渲染的图元的属性。
16.如权利要求15所述的处理装置,其中所述几何引擎是固定功能硬件。
17.如权利要求15所述的处理装置,其中所述几何引擎接收所述三角形可见性信息和存储的索引信息,并且传送根据所述三角形可见性信息被确定为在所处理的所述图像中的每个三角形的所述图元的所述属性。
18.一种非暂时性计算机可读介质,其包括用于使计算机执行对图像进行平铺渲染以供显示的方法的指令,所述方法包括:
接收包括一个或多个三维(3D)对象的所述图像;
将所述图像划分为多个图块;
对所述图像的所述图块执行粗略级别平铺;以及
对所述图像的所述图块执行精细级别平铺。
19.如权利要求18所述的计算机可读介质,其中对所述图像的所述图块执行精细级别平铺包括将每个图块划分为更小的图块。
20.如权利要求18所述的计算机可读介质,其中先对每个图块执行所述精细级别平铺,再对所述图像的所述图块中的下一个图块执行粗略级别平铺。
CN202180007909.8A 2020-01-20 2021-01-06 混合分箱 Pending CN114902274A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062963414P 2020-01-20 2020-01-20
US62/963,414 2020-01-20
US17/033,259 2020-09-25
US17/033,259 US11972518B2 (en) 2020-01-20 2020-09-25 Hybrid binning
PCT/US2021/012365 WO2021150372A1 (en) 2020-01-20 2021-01-06 Hybrid binning

Publications (1)

Publication Number Publication Date
CN114902274A true CN114902274A (zh) 2022-08-12

Family

ID=76858231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180007909.8A Pending CN114902274A (zh) 2020-01-20 2021-01-06 混合分箱

Country Status (6)

Country Link
US (2) US11972518B2 (zh)
EP (1) EP4094230A4 (zh)
JP (1) JP2023510164A (zh)
KR (1) KR20220130706A (zh)
CN (1) CN114902274A (zh)
WO (1) WO2021150372A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230377086A1 (en) * 2022-05-18 2023-11-23 Advanced Micro Devices, Inc. Pipeline delay elimination with parallel two level primitive batch binning

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4851049B2 (ja) * 2000-06-08 2012-01-11 イマジネイション テクノロジーズ リミテッド 三次元イメージレンダリングのためのタイリング及び圧縮
JP4467267B2 (ja) 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
US7505036B1 (en) 2004-07-30 2009-03-17 3Dlabs Inc. Ltd. Order-independent 3D graphics binning architecture
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
GB0823254D0 (en) 2008-12-19 2009-01-28 Imagination Tech Ltd Multi level display control list in tile based 3D computer graphics system
US8619085B2 (en) 2010-03-08 2013-12-31 Broadcom Corporation Method and system for compressing tile lists used for 3D rendering
US8830246B2 (en) * 2011-11-30 2014-09-09 Qualcomm Incorporated Switching between direct rendering and binning in graphics processing
US9495781B2 (en) * 2012-06-21 2016-11-15 Nvidia Corporation Early sample evaluation during coarse rasterization
US10438314B2 (en) * 2012-10-26 2019-10-08 Nvidia Corporation Two-pass cache tile processing for visibility testing in a tile-based architecture
US10169906B2 (en) 2013-03-29 2019-01-01 Advanced Micro Devices, Inc. Hybrid render with deferred primitive batch binning
US10957094B2 (en) 2013-03-29 2021-03-23 Advanced Micro Devices, Inc. Hybrid render with preferred primitive batch binning and sorting
US9928565B2 (en) * 2014-04-21 2018-03-27 Qualcomm Incorporated Flex rendering based on a render target in graphics processing
US10089790B2 (en) 2015-06-30 2018-10-02 Ariadne's Thread (Usa), Inc. Predictive virtual reality display system with post rendering correction
WO2018038523A1 (ko) 2016-08-25 2018-03-01 엘지전자 주식회사 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치
US10049426B2 (en) * 2017-01-03 2018-08-14 Qualcomm Incorporated Draw call visibility stream
US10147227B2 (en) * 2017-02-17 2018-12-04 Microsoft Technology Licensing, Llc Variable rate shading

Also Published As

Publication number Publication date
WO2021150372A1 (en) 2021-07-29
KR20220130706A (ko) 2022-09-27
US20210225060A1 (en) 2021-07-22
JP2023510164A (ja) 2023-03-13
EP4094230A4 (en) 2024-02-21
EP4094230A1 (en) 2022-11-30
US20240257435A1 (en) 2024-08-01
US11972518B2 (en) 2024-04-30

Similar Documents

Publication Publication Date Title
US12118656B2 (en) VRS rate feedback
CN111066066A (zh) 可变比率着色
CN112189215B (zh) 用于在图形流水线中实现存储器使用减少的编译器辅助技术
KR20210095914A (ko) 가변 레이트 셰이딩과 슈퍼 샘플 셰이딩의 통합
US20180211434A1 (en) Stereo rendering
US20240257435A1 (en) Hybrid binning
WO2018140223A1 (en) Stereo rendering
US12067649B2 (en) Per-pixel variable rate shading controls using stencil data
US11741653B2 (en) Overlapping visibility and render passes for same frame
US20230186523A1 (en) Method and system for integrating compression
US20220319091A1 (en) Post-depth visibility collection with two level binning
US11880924B2 (en) Synchronization free cross pass binning through subpass interleaving
US11900499B2 (en) Iterative indirect command buffers
US20240104685A1 (en) Device and method of implementing subpass interleaving of tiled image rendering
US20240087078A1 (en) Two-level primitive batch binning with hardware state compression
US20210398349A1 (en) Fine grained replay control in binning hardware
US20240169641A1 (en) Vertex index routing through culling shader for two level primitive batch binning

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