CN116018620A - 调用深度剔除的着色器核心指令 - Google Patents
调用深度剔除的着色器核心指令 Download PDFInfo
- Publication number
- CN116018620A CN116018620A CN202180053555.0A CN202180053555A CN116018620A CN 116018620 A CN116018620 A CN 116018620A CN 202180053555 A CN202180053555 A CN 202180053555A CN 116018620 A CN116018620 A CN 116018620A
- Authority
- CN
- China
- Prior art keywords
- culling
- shader core
- unit
- cull
- shader
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- 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/10—Geometric effects
- G06T15/40—Hidden part removal
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Abstract
本文公开了用于执行着色器核心指令以调用深度剔除的系统、设备和方法。着色器核心在完成对应的绘制调用之前执行指令以针对一个或多个实体在深度剔除单元上调用剔除函数。该着色器核心向该深度剔除单元提供模式和坐标作为执行该指令的结果。该深度剔除单元实现剔除函数以访问实时深度缓冲区,从而确定对应于该实体的一个或多个图元是否被遮挡。该剔除单元将有关处理该一个或多个图元的结果的指示返回到该着色器核心。例如,如果该结果指示图元被遮挡,则着色器核心取消对该图元的绘制调用。
Description
背景技术
相关技术描述
图形处理器通常用于计算机图形处理系统内,以从几何模型创建计算机生成的图像。几何模型定义虚拟场景的各种对象、细节、照明源和其他元素。计算系统基于几何模型和来自软件应用程序的其他输入来确定如何渲染给定场景。这些输入包括图形对象,诸如点、线、多边形、网格模型子集(meshlet)、三维实体对象和其他对象。这些对象可以更一般地称为″图元″。
图形处理单元(GPU)或其他类型的处理器对这些输入和几何模型进行处理,以生成表示期望图像或视频帧的像素色值的二维或三维阵列。帧的每个像素具有与之相关联的多个属性,包括颜色和纹理。通常,着色器用于对每个像素的属性执行算术和逻辑运算以实现表示该像素的最终值。着色器可为程序、固定功能硬件、控制逻辑部件或者这些和/或其他处理元件的任何组合。当该像素被驱动到显示装置时,最终值被置于帧缓冲器中并被使用。
当多个图元被渲染并投影到屏幕上的相同像素时,渲染引擎需要确定哪个图元是可见的以及哪些图元被遮盖。用于解决遮挡问题的一种技术涉及用深度缓冲区执行深度测试。对于屏幕上的每个像素,从视点的角度到最邻近对象的距离被存储在深度缓冲区中。当图元被投影到屏幕空间的给定像素时,执行深度测试以确定所渲染的图元是否比先前渲染的最邻近图元更接近屏幕(即,视点)。如果该图元比先前渲染的图元更接近视点,则该图元通过测试。否则,如果该图元比任何先前渲染的图元更远离视点,则该图元未通过测试。该视点由表示用户的视点或视角的虚拟相机来定义。
虽然以下公开内容涉及以上上下文,但应当理解,本文所述的方法和机制也可用于其他上下文以增加吞吐量、提高性能、降低功耗并实现其他优点。
附图说明
通过结合附图参考以下描述,可更好地理解本文描述的方法和机制的优点,在附图中:
图1是计算系统的一个具体实施的框图。
图2是计算系统的另一个具体实施的框图。
图3是计算系统的另一个具体实施的框图。
图4是示出用于执行着色器核心指令以调用深度剔除的方法的一个具体实施的一般化流程图。
图5是示出用于执行着色器核心指令以调用深度剔除的方法的一个具体实施的一般化流程图。
图6是示出用于将绘制调用转换为剔除函数查询的方法的一个具体实施的一般化流程图。
图7是示出用于在生成用于剔除单元的查询时合成实体的方法的一个具体实施的一般化流程图。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域普通技术人员应当认识到,可在没有这些具体细节的情况下实践各种具体实施。在一些情况下,未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免模糊本文描述的方法。应当了解,为了简单和清楚说明,附图中所示的元件不一定按比例绘制。例如,这些元件中的一些元件的尺寸可相对于其它元件被放大。
本文公开了用于执行着色器核心指令以调用深度剔除的各种系统、设备和方法。在一个具体实施中,着色器核心在完成对应的绘制调用之前执行指令以针对一个或多个实体(例如,图元、屏幕空间矩形)在深度剔除单元上调用剔除函数。着色器核心向深度剔除单元提供模式和坐标作为执行该指令的结果。在一个具体实施中,深度剔除单元实现剔除函数以访问实时深度缓冲区,从而确定一个或多个图元是否被遮挡。剔除单元将有关处理该一个或多个实体的结果的指示返回到着色器核心。响应于接收到有关剔除函数结果的指示,着色器核心决定是修改、取消还是继续进行绘制调用。例如,在一个具体实施中,如果来自剔除单元的结果指示图元被遮挡,则着色器核心取消对图元的绘制调用。着色器核心可根据剔除单元生成的结果而采取其他类型的操作。因此,图形处理流水线避免了与绘制调用相关联的任何不必要的处理任务,从而提高了图形处理流水线的性能。
现在参考图1,示出了计算系统100的一个具体实施的框图。在一个具体实施中,计算系统100至少包括处理器105A-105N、输入/输出(I/O)接口120、总线125、存储器控制器130、网络接口135、存储器装置140、显示控制器150以及显示器155。在其它具体实施中,计算系统100包括其它部件并且/或者计算系统100以不同方式布置。处理器105A-105N表示包括在系统100中的任何数量的处理器。
在一个具体实施中,处理器105A是通用处理器,诸如中央处理单元(CPU)。在该具体实施中,处理器105A执行驱动器110(例如,图形驱动器)以用于与系统100中的一个或多个其他处理器通信和/或控制该系统中的该一个或多个其他处理器的操作。应当注意,根据具体实施,驱动器110可使用硬件、软件和/或固件的任何合适的组合来实现。在一个具体实施中,处理器105N是具有高度并行架构的数据并行处理器。数据并行处理器包括图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。在一些具体实施中,处理器105A-105N包括多个数据并行处理器。在一个具体实施中,处理器105N是向显示控制器150提供像素以便驱动到显示器155的GPU。
存储器控制器130表示可由处理器105A-105N访问的任何数量和类型的存储器控制器。虽然存储器控制器130被示出为与处理器105A-105N分离,但应当理解,这仅仅表示一个可能的具体实施。在其它具体实施中,存储器控制器130可嵌入处理器105A-105N中的一个或多个处理器内,并且/或者存储器控制器130可位于与处理器105A-105N中的一个或多个处理器相同的半导体芯片上。存储器控制器130耦接到任何数量和类型的存储器装置140。存储器装置140表示任何数量和类型的存储器装置。例如,存储器装置140中的存储器的类型包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、NAND闪存存储器、NOR闪存存储器、铁电随机存取存储器(FeRAM)等。
I/O接口120表示任何数量和类型的I/O接口(例如,外围部件互连(PCI)总线、PCI-扩展(PCI-X)、PCIE(PCI高速)总线、吉比特以太网(GBE)总线、通用串行总线(USB))。各种类型的外围装置(未示出)耦接到I/O接口120。此类外围装置包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、操纵杆或其它类型的游戏控制器、媒体记录装置、外部存储装置、网络接口卡等。网络接口135能够通过网络接收和发送网络消息。
在各种具体实施中,计算系统100是计算机、膝上型计算机、移动装置、游戏控制台、服务器、流式传输装置、可穿戴装置或各种其它类型的计算系统或装置中的任一种。应当注意,计算系统100的部件的数量因具体实施而异。例如,在其它具体实施中,存在比图1所示的数量更多或更少的每种部件。还应当注意,在其它具体实施中,计算系统100包括图1中未示出的其它部件。另外,在其它具体实施中,计算系统100以不同于图1所示的方式构造。
现在转向图2,其示出了计算系统200的另一个具体实施的框图。在一个具体实施中,系统200包括GPU 205、系统存储器225和本地存储器230。系统200还可包括其他未示出的部件以避免使附图模糊。GPU 205至少包括命令处理器235、控制逻辑部件240、调度单元250、计算单元255A-N、存储器控制器220、全局数据共享270、一级(L1)高速缓存265和二级(L2)高速缓存260。在其他具体实施中,GPU 205包括其他部件,省略示出部件中的一个或多个部件,具有部件的多个实例(即使图2中仅示出一个实例),并且/或者以其他合适的方式组织。在一个具体实施中,GPU 205的电路包括在(图1的)处理器105N中。
在各种具体实施中,计算系统200执行各种类型的软件应用程序中的任一种。作为执行给定软件应用程序的一部分,计算系统200的主机CPU(未示出)启动要在GPU 205上执行的工作。在一个具体实施中,命令处理器235接收来自主机CPU的绘制调用,并且命令处理器235使用调度单元250向计算单元255A-N发出绘制调用。响应于发起针对给定网格模型子集的绘制调用,计算单元255A-N调用针对给定网格模型子集的深度剔除函数以确定是取消、修改还是执行针对给定网格模型子集的绘制调用。该给定网格模型子集可包括任何数量的顶点。有关这些技术和其他技术的更多细节将贯穿本公开的其余部分而提供。
现在参考图3,其示出了计算系统300的另一个具体实施的框图。在一个具体实施中,计算系统300至少包括控制单元305、高速缓存/存储器子系统310、着色器核心320、光栅化器330、剔除单元340和深度缓冲区345。控制单元305协调由系统300的各种单元执行的处理,作为渲染一个或多个帧或帧的一个或一个以上部分的一部分。控制单元305可以使用软件和/或硬件的任何适当组合来实现。需注意,控制单元305也可被称为控制逻辑部件305。此外,控制单元305的一部分可位于着色器核心320和剔除单元340内,并且控制单元305的一部分可位于着色器核心320和剔除单元340外部。可以实现遍及整个系统300的控制单元305的逻辑部件的任何合适的布置。计算系统300可包括未示出的任何数量的其他部件(例如,存储器装置、帧缓冲器、显示器)以避免使附图模糊。
着色器核心320包括从1到N的任何数量的着色器单元325A-N,其中N为大于1的正整数。需注意,着色器单元325A-N也可被称为着色器级325A-N。着色器单元325A-N可包括任何数量和类型的着色器,诸如顶点着色器、外壳着色器、镶嵌器、光着色器、像素着色器、几何形状着色器、网格着色器、放大着色器、域着色器、片段着色器、计算着色器,等等。不同具体实施中的不同着色器核心320可具有各个着色器单元325A-N的不同组合和布置。着色器核心320在本文中也可称为着色器流水线320。另外,剔除单元340在本文中也可被称为深度剔除单元340。
在一个具体实施中,控制单元305针对一个或多个图元向着色器核心320发出绘制调用。响应于接收到该绘制调用,着色器核心320从高速缓存/存储器子系统310检索对应图元。在一个具体实施中,着色器核心320在绘制调用期间执行访问剔除单元340的指令。在一个具体实施中,该指令从着色器核心320的对应着色器325A-N访问给定接口322A-N。虽然示出了多个接口322A-N,但这些接口旨在表示能够从任何着色器325A-N访问剔除单元340。换句话说,在一些具体实施中,接口322A-N实际上可以由单个接口组成。此外,剔除单元340包括接口342,用以接收来自着色器核心320的指令和对应参数。
由着色器核心320执行的指令允许着色器核心320查询剔除单元340以在着色过程期间执行剔除测试。在一个具体实施中,该查询包括与一个或多个图元相关联的一个或多个参数。在另一个具体实施中,该查询包括定义具有范围的屏幕空间矩形的参数。在一个具体实施中,响应于接收到该查询,剔除单元340通过访问深度缓冲区345来执行剔除函数。需注意,响应于由着色器核心320执行的指令而访问的深度缓冲区345是实时深度缓冲区345而非实际深度缓冲区的副本。深度缓冲区345可以存储在高速缓存中、存储器中或另一位置中。
在一个具体实施中,剔除单元340将剔除函数的结果返回到着色器核心320,并且着色器核心320基于剔除函数的结果来确定是否和/或如何继续进行绘制调用。例如,在一个具体实施中,如果剔除单元340向着色器核心320返回不应剔除图元的指示符,则着色器核心320继续进行对该图元的绘制调用。在完成对图元的绘制调用之后,着色器核心320将几何形状导出到光栅化器330,该光栅化器生成用于帧缓冲器(未示出)的经着色像素。在另一个具体实施中,光栅化器330将像素传送回着色器核心320以进行额外处理。如果剔除单元340向着色器核心320返回给定图元被遮挡的指示符,则着色器核心320取消对该给定图元的绘制调用。需注意,着色器核心320可向剔除单元340发出重叠剔除请求并且具有多个待决剔除请求。着色器核心320在接收到对已发送到深度剔除单元的多个未完成剔除请求的响应之前对这些请求进行跟踪。一旦已接收到针对给定剔除请求的响应,便由着色器核心320收回该给定剔除请求。
现在转向图4,其示出了用于执行着色器核心指令以调用深度剔除的方法400的一个具体实施。出于讨论的目的,以顺序的次序示出该具体实施中以及图5至图7的那些具体实施中的步骤。然而,应当注意,在所描述方法的各种具体实施中,同时地执行、以与所示不同的次序执行、或完全省略所描述元素中的一个或多个元素。还根据需要执行其它另外的元素。本文所述的各种系统或设备中的任一者被配置为实现方法400。
着色器核心接收绘制调用(框405)。在一个具体实施中,绘制调用是针对一个或多个图元或其一部分。在接收到绘制调用之后,着色器核心执行指令以在深度剔除单元上调用剔除函数(框410)。接下来,深度剔除单元执行由着色器核心指令调用的剔除函数(框415)。在一个具体实施中,剔除函数确定图元的像素、子像素、片段或其他部分是最接近观测器还是被另一图元的先前渲染像素遮盖。需注意,″剔除函数″也可被称为″深度测试″或″遮挡剔除函数″。在其他具体实施中,可采用其他剔除函数,诸如截头剔除、背面剔除、小图元剔除、深度界限剔除或用于执行其他类型的剔除操作的功能。一般来说,″剔除函数″被定义为在确定图元将对呈现给用户的最终图像没有影响或具有相对较小影响(例如,将不可见)的情况下用于从后续着色操作中移除或删除该图元的过程。
接下来,深度剔除单元将剔除函数的结果发送回着色器核心(框420)。对于每个查询,如果深度剔除单元指示应进行剔除(条件框425,″是″分支),则着色器核心修改或取消绘制调用(框430)。在框430中,着色器核心还可丢弃与绘制调用相关联的任何图元。这有助于减少通过着色器核心并且由该着色器核心处理的图元的数量。否则,如果深度剔除单元指示不应进行剔除(条件框430,″是″分支),则着色器核心继续进行绘制调用(框435)。应注意,深度剔除单元可基于任何可见图元针对具有新深度值的那些屏幕像素更新深度缓冲区。在框430和435之后,方法400结束。
现在参考图5,其示出了用于执行着色器核心指令以调用深度剔除的方法500的一个具体实施。着色器核心执行指令以针对一个或多个实体(例如,图元、屏幕空间矩形)通过深度剔除单元调用剔除函数(框505)。作为执行该指令的一部分,着色器核心至少将一个或多个实体的模式和坐标发送至深度剔除单元(框510)。例如,在一个具体实施中,着色器核心指令包括传递到深度剔除单元的以下参数:geometry_cull_quad<output>,<screen minXY><screen max XY><depth min><depth max>。在另一个具体实施中,着色器核心指令包括传递到深度剔除单元的以下参数:geometry_cull_triangle<output>,<vertex 0 XYZ>,<vertex 1 XYZ>,<vertex 2 XYZ>。在其他具体实施中,着色器核心指令包括其他参数并且/或者以其他合适方式格式化。
接下来,深度剔除单元访问实时深度缓冲区以确定对应于实体的一个或多个图元是否被遮挡(框515)。然后,深度剔除单元针对每个图元将指示是否应剔除该图元的结果(例如,布尔结果、覆盖值结果)返回到着色器核心(框520)。在一个具体实施中,深度剔除单元返回部分覆盖值,该部分覆盖值对选择不同的细节程度很有用。例如,如果图元大部分被遮盖,则可能发生这种情况。在框520之后,方法500结束。在一个具体实施中,着色器核心将使用深度剔除单元所提供的结果来确定是否修改、取消或继续进行对一个或多个图元的绘制调用。
现在转向图6,其示出了用于将绘制调用转换为剔除函数查询的方法600的一个具体实施。由控制单元(例如,图3的控制单元305)接收绘制调用(框605)。该控制单元可使用硬件和/或软件的任何适当组合来实现。响应于接收到绘制调用,控制单元发出剔除函数查询作为绘制调用的一部分(框610)。接下来,在剔除单元(例如,图3的剔除单元340)上执行剔除函数(框615)。基于查询的结果,可在整个流水线的其余部分中丢弃或以不同方式处理绘制调用或绘制调用的一部分(框620)。换句话说,如果剔除函数的结果指示应剔除或以不同方式处理一个或多个图元(或其一部分),则着色器核心针对该一个或多个图元相应地修改绘制调用。例如,放大着色器可基于剔除查询的结果而取消绘制调用的一部分。又如,网格着色器可基于剔除查询的结果而丢弃各个图元。否则,如果剔除查询的结果指示不应剔除这些图元,则着色器核心针对这些图元以未经修改的形式执行绘制调用。在框620之后,方法600结束。
现在参考图7,其示出了用于在生成用于剔除单元的查询时合成实体的方法700的一个具体实施。将绘制调用从图形驱动器传送到着色器核心(框705)。在一个实施方案中,″绘制调用″被定义为渲染一个或多个图元的请求,其中该请求与图形应用编程接口(API)兼容。接下来,着色器核心合成(即,计算)用于查询剔除单元的实体(框710)。在一个实施方案中,该实体是具有范围的屏幕空间矩形。例如,在一个实施方案中,放大着色器合成屏幕空间边界框,该屏幕空间边界框封装绘制调用所引用的一个或多个图元。然后,着色器核心向剔除单元发送查询,其中该查询包括或引用由着色器核心合成的实体(框715)。在一个具体实施中,当该实体是屏幕空间边界框时,该查询指定屏幕空间边界框的最小值和最大值。
剔除单元响应于接收到该查询而执行对该实体的一个或多个测试(框720)。例如,在一个具体实施中,当查询所定义的实体是图元时,剔除单元对照Z平面(即,深度平面)检查该图元。在另一个具体实施中,当查询所定义的实体是屏幕空间矩形时,剔除单元对照分级图块(HTile)检查该矩形。HTile存储像素块(例如,8x8像素块)的深度信息。接下来,剔除单元将一个或多个测试的结果发送到着色器核心(框725)。然后,着色器核心基于该一个或多个测试的结果做出剔除决策(框730)。例如,在一个具体实施中,着色器核心基于从剔除单元接收到的结果来做出有关是修改绘制调用的一部分还是全部的决策。在一个具体实施中,计算着色器可基于结果决定在执行间接绘制时停止整个绘制调用。在另一个具体实施中,几何形状、外壳、放大或计算着色器可剔除各个图元。在另外的具体实施中,几何形状、外壳或放大着色器可决定产生较少图元或不产生图元。例如,在该具体实施中,如果着色器正在渲染被识别为由阈值量(例如,90%)覆盖的地形图块,则使用相对少量的三角形来执行近似而非生成完整网格。在其他具体实施中,对剔除单元结果进行响应的其他方式是可能的并且可以设想。在框730之后,方法700结束。
在各种具体实施中,软件应用程序的程序指令用于实现本文所描述的方法和/或机制。例如,设想到可由通用处理器或专用处理器执行的程序指令。在各种具体实施中,此类程序指令由高级编程语言表示。在其它具体实施中,将程序指令从高级编程语言编译成二进制、中间或其它形式。另选地,写入描述硬件的行为或设计的程序指令。此类程序指令由高级编程语言诸如C表示。另选地,使用硬件设计语言(HDL),诸如Verilog。在各种具体实施中,将程序指令存储在多种非暂态计算机可读存储介质中的任一种非暂态计算机可读存储介质上。存储介质可在使用期间由计算系统访问以向计算系统提供程序指令以用于程序执行。一般来说,这种计算系统至少包括一个或多个存储器以及被配置为执行程序指令的一个或多个处理器。
应当强调的是,上述具体实施仅是具体实施的非限制性示例。一旦完全了解上述公开内容,许多变型和修改对于本领域技术人员将变得显而易见。旨在将以下权利要求书解释为涵盖所有此类变型和修改。
Claims (20)
1.一种设备,包括:
接口;和
着色器核心;
其中所述设备被配置为:
由所述着色器核心接收绘制调用;
由所述着色器核心执行指令以针对所述绘制调用在剔除单元上调用剔除函数;以及
基于经由所述接口接收到的指示来确定是取消、继续还是修改所述绘制调用。
2.根据权利要求1所述的设备,其中所述剔除单元被配置为执行所述剔除函数以访问实时深度缓冲区。
3.根据权利要求2所述的设备,其中所述剔除单元被配置为对由所述着色器核心合成的实体执行所述剔除函数。
4.根据权利要求1所述的设备,其中所述指示是布尔值或覆盖值。
5.根据权利要求1所述的设备,其中所述着色器核心被进一步配置为向所述剔除单元提供模式和坐标作为执行所述指令的结果。
6.根据权利要求1所述的系统,其中所述着色器核心包括执行所述指令的网格着色器。
7.根据权利要求1所述的设备,其中所述着色器核心被进一步配置为跟踪已发送到所述剔除单元的多个未完成的剔除请求。
8.一种方法,包括:
由着色器核心接收绘制调用;
由所述着色器核心执行指令以针对所述绘制调用在剔除单元上调用剔除函数;以及
基于经由接口接收到的指示来确定是取消、继续还是修改所述绘制调用。
9.根据权利要求8所述的方法,还包括所述剔除单元执行所述剔除函数以访问实时深度缓冲区。
10.根据权利要求9所述的方法,还包括所述剔除单元对由所述着色器核心合成的实体执行所述剔除函数。
11.根据权利要求8所述的方法,其中所述指示是布尔值或覆盖值。
12.根据权利要求8所述的方法,还包括所述着色器核心向所述剔除单元提供模式和坐标作为执行所述指令的结果。
13.根据权利要求8所述的方法,还包括网格着色器执行所述指令。
14.根据权利要求8所述的方法,还包括所述着色器核心跟踪已发送到所述剔除单元的多个未完成的剔除请求。
15.一种系统,包括:
存储器,所述存储器存储深度缓冲区;
剔除单元;和
着色器核心,所述着色器核心被配置为:
接收对网格模型子集的绘制调用;
执行指令以针对所述网格模型子集在所述剔除单元上调用剔除函数;以及
基于经由接口接收到的指示来确定是取消、继续还是修改所述绘制调用。
16.根据权利要求15所述的系统,其中所述剔除单元被配置为执行所述剔除函数以访问所述深度缓冲区。
17.根据权利要求16所述的系统,其中所述剔除单元被配置为对由所述着色器核心合成的实体执行所述剔除函数。
18.根据权利要求15所述的系统,其中所述指示是布尔值或覆盖值。
19.根据权利要求15所述的系统,其中所述着色器核心被进一步配置为向所述剔除单元提供模式和坐标作为执行所述指令的结果。
20.根据权利要求15所述的系统,其中所述着色器核心被进一步配置为跟踪已发送到所述剔除单元的多个未完成的剔除请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,935 | 2020-08-31 | ||
US17/007,935 US11481967B2 (en) | 2020-08-31 | 2020-08-31 | Shader core instruction to invoke depth culling |
PCT/US2021/047914 WO2022047136A1 (en) | 2020-08-31 | 2021-08-27 | Shader core instruction to invoke depth culling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116018620A true CN116018620A (zh) | 2023-04-25 |
Family
ID=77897751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180053555.0A Pending CN116018620A (zh) | 2020-08-31 | 2021-08-27 | 调用深度剔除的着色器核心指令 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11481967B2 (zh) |
EP (1) | EP4205082A1 (zh) |
JP (1) | JP2023539808A (zh) |
KR (1) | KR20230058460A (zh) |
CN (1) | CN116018620A (zh) |
WO (1) | WO2022047136A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116188243A (zh) * | 2023-03-02 | 2023-05-30 | 格兰菲智能科技有限公司 | 图形绘制流水线管理方法和图形处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170337656A1 (en) * | 2016-05-20 | 2017-11-23 | Intel Corporation | Command processing for graphics tile-based rendering |
CN109564695A (zh) * | 2016-09-16 | 2019-04-02 | 英特尔公司 | 用于高效3d图形流水线的装置和方法 |
CN109690629A (zh) * | 2016-09-22 | 2019-04-26 | 超威半导体公司 | 图元着色器 |
CN110036414A (zh) * | 2016-12-09 | 2019-07-19 | 超威半导体公司 | 在z-剔除之后去除或识别重叠片段 |
US20190295313A1 (en) * | 2018-03-21 | 2019-09-26 | Leigh Davies | Method and apparatus for masked occlusion culling |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729672A (en) | 1993-07-30 | 1998-03-17 | Videologic Limited | Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces |
US7746355B1 (en) * | 2007-01-24 | 2010-06-29 | Vivante Corporation | Method for distributed clipping outside of view volume |
US9123168B2 (en) * | 2013-01-30 | 2015-09-01 | Qualcomm Incorporated | Output ordering of domain coordinates for tessellation |
US9189883B1 (en) | 2014-02-27 | 2015-11-17 | Pixar | Rendering of multiple volumes |
US10083541B2 (en) | 2014-03-13 | 2018-09-25 | Imagination Technologies Limited | Object illumination in hybrid rasterization and ray traced 3-D rendering |
US10089779B2 (en) * | 2016-04-01 | 2018-10-02 | Intel Corporation | Apparatus and method for conservative rasterization of polygons |
GB2551388B (en) | 2016-06-17 | 2021-01-27 | Geomerics Ltd | Graphics processing systems |
US10417787B2 (en) * | 2017-02-15 | 2019-09-17 | Microsoft Technology Licensing, Llc | Index buffer block compression |
US10636201B2 (en) | 2017-05-05 | 2020-04-28 | Disney Enterprises, Inc. | Real-time rendering with compressed animated light fields |
US10311016B2 (en) | 2017-05-30 | 2019-06-04 | Arm Limited | Hidden surface removal in graphics processing systems |
US10692270B2 (en) | 2017-08-18 | 2020-06-23 | Microsoft Technology Licensing, Llc | Non-divergent parallel traversal of a bounding volume hierarchy |
US10573055B2 (en) * | 2017-08-31 | 2020-02-25 | Intel Corporation | Apparatus and method for a programmable depth stencil graphics pipeline stage |
US10878611B2 (en) * | 2018-01-26 | 2020-12-29 | Nvidia Corporation | Techniques for pre-processing index buffers for a graphics processing pipeline |
US10789675B2 (en) | 2018-12-28 | 2020-09-29 | Intel Corporation | Apparatus and method for correcting image regions following upsampling or frame interpolation |
US10981059B2 (en) * | 2019-07-03 | 2021-04-20 | Sony Interactive Entertainment LLC | Asset aware computing architecture for graphics processing |
US11551398B2 (en) | 2019-11-15 | 2023-01-10 | Advanced Micro Devices, Inc. | Light volume rendering |
-
2020
- 2020-08-31 US US17/007,935 patent/US11481967B2/en active Active
-
2021
- 2021-08-27 EP EP21773957.2A patent/EP4205082A1/en active Pending
- 2021-08-27 CN CN202180053555.0A patent/CN116018620A/zh active Pending
- 2021-08-27 WO PCT/US2021/047914 patent/WO2022047136A1/en unknown
- 2021-08-27 KR KR1020237010670A patent/KR20230058460A/ko active IP Right Grant
- 2021-08-27 JP JP2023509659A patent/JP2023539808A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170337656A1 (en) * | 2016-05-20 | 2017-11-23 | Intel Corporation | Command processing for graphics tile-based rendering |
CN109564695A (zh) * | 2016-09-16 | 2019-04-02 | 英特尔公司 | 用于高效3d图形流水线的装置和方法 |
CN109690629A (zh) * | 2016-09-22 | 2019-04-26 | 超威半导体公司 | 图元着色器 |
CN110036414A (zh) * | 2016-12-09 | 2019-07-19 | 超威半导体公司 | 在z-剔除之后去除或识别重叠片段 |
US20190295313A1 (en) * | 2018-03-21 | 2019-09-26 | Leigh Davies | Method and apparatus for masked occlusion culling |
Also Published As
Publication number | Publication date |
---|---|
JP2023539808A (ja) | 2023-09-20 |
EP4205082A1 (en) | 2023-07-05 |
WO2022047136A1 (en) | 2022-03-03 |
KR20230058460A (ko) | 2023-05-03 |
US11481967B2 (en) | 2022-10-25 |
US20220068012A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176621B2 (en) | Using compute shaders as front end for vertex shaders | |
JP6073533B1 (ja) | タイルベースのアーキテクチャ上での最適化されたマルチパスレンダリング | |
US9569885B2 (en) | Technique for pre-computing ambient obscurance | |
US20040075654A1 (en) | 3-D digital image processor and method for visibility processing for use in the same | |
US20170004647A1 (en) | Rendering graphics data on demand | |
US9779533B2 (en) | Hierarchical tiled caching | |
EP3180773A1 (en) | Bandwidth reduction using texture lookup by adaptive shading | |
US11631187B2 (en) | Depth buffer pre-pass | |
KR20110016938A (ko) | 기하 셰이더를 사용하는 테셀레이션 엔진을 위한 시스템, 방법, 및 컴퓨터 프로그램 제품 | |
US20170323469A1 (en) | Stereo multi-projection implemented using a graphics processing pipeline | |
CN103679786A (zh) | 图形处理单元可编程着色器的纹元数据结构和其操作方法 | |
CN116018620A (zh) | 调用深度剔除的着色器核心指令 | |
JP2023501692A (ja) | ライトボリュームレンダリング | |
US20230097097A1 (en) | Graphics primitives and positions through memory buffers | |
US20130328884A1 (en) | Direct opencl graphics rendering | |
US11823319B2 (en) | Techniques for rendering signed distance functions | |
US20230094115A1 (en) | Load multiple primitives per thread in a graphics pipeline | |
US20240087078A1 (en) | Two-level primitive batch binning with hardware state compression | |
US20230206384A1 (en) | Dead surface invalidation | |
US20230063422A1 (en) | Techniques for rendering signed distance functions | |
JP2023530309A (ja) | ビニングハードウェアにおけるきめ細かなリプレイ制御 | |
JP2024511763A (ja) | 2レベルのビニングを用いた事後深度可視性収集 |
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 |