CN112116517A - 用于数据处理的装置、系统和方法 - Google Patents
用于数据处理的装置、系统和方法 Download PDFInfo
- Publication number
- CN112116517A CN112116517A CN202010533650.8A CN202010533650A CN112116517A CN 112116517 A CN112116517 A CN 112116517A CN 202010533650 A CN202010533650 A CN 202010533650A CN 112116517 A CN112116517 A CN 112116517A
- Authority
- CN
- China
- Prior art keywords
- circuit
- culling
- data
- pipeline
- attribute
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 30
- 239000000872 buffer Substances 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 description 20
- 238000012360 testing method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000002513 implantation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 235000012773 waffles Nutrition 0.000 description 1
- 239000002699 waste material Substances 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/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
-
- 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
- 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
- G06T15/405—Hidden part removal using Z-buffer
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请涉及用于数据处理的装置、系统和方法。根据一个总体方面,一种装置可以包括图形处理引擎,该图形处理引擎包括具有多个基本上按顺序的电路级的管线,该管线包括前端输出逻辑电路,该前端输出逻辑电路被配置为基本上将位置信息分离成位置信息管线部分,并将非位置信息分离成非位置信息管线部分。其中该管线被配置为执行数据的多级剔除。
Description
技术领域
本说明书涉及计算机架构,或者更具体地,涉及用于优化的像素着色器属性管理的装置和方法。
背景技术
图形处理单元(GPU)通常是一种专用的电子电路,其被设计用于快速操纵和改变存储器以加速在帧缓冲器中创建图像,用于输出到显示设备。GPU用于嵌入式系统、移动电话、个人电脑、工作站、和游戏控制台。现代GPU在操纵计算机图形和图像处理方面非常有效。对于并行处理大数据块的算法,它们的高度并行结构使它们比通用中央处理器(CPU)更有效。在个人计算机中,GPU可以存在于显卡上或嵌入在主板上。在某些处理器中,它们嵌入在同一个芯片上。
GPU可用于加速纹理映射和渲染多边形的内存密集型工作,或加速几何计算,诸如顶点(vertex)旋转和平移到不同的坐标系。GPU的开发包括对可编程着色器(该可编程着色器可以使用CPU支持的许多相同操作来操纵顶点和纹理)、减少混叠的过采样和插值技术、以及非常高精度的颜色空间的支持。
在计算机图形学中,计算机图形管线(pipeline)、渲染管线、或简单的图形管线是一种概念模型,它描述了图形系统需要执行什么步骤来将三维(3D)场景渲染到二维(2D)屏幕。一旦创建了3D模型,例如在视频游戏或任何其他3D计算机动画中,图形管线就是将3D模型转换成计算机显示的内容的过程。
发明内容
根据一个总体方面,一种装置可以包括图形处理引擎,该图形处理引擎包括具有多个基本上按顺序的电路级的管线,该管线包括前端输出逻辑电路,该前端输出逻辑电路被配置为基本上将位置信息分离成位置信息管线部分,并将非位置信息分离成非位置信息管线部分。其中该管线被配置为执行数据的多级剔除(multi-stage culling)。
根据另一总体方面,一种系统可以包括被配置为处理指令的处理器核(core)。该系统可以包括被配置为渲染图形数据的图形核,其中该图形核包括图形处理管线,该图形处理管线包括多个电路级,该多个电路级基本上被顺序地被布置以当数据流经该图形处理管线时至少部分地处理数据。电路级可以包括前端输出逻辑电路,其被配置为向一个或多个后续电路级提供非剔除数据。电路级可以包括电路级的多级剔除部分,该多级剔除部分被配置为向前端输出逻辑电路指示哪些数据是剔除数据。
根据另一总体方面,一种方法可以包括从一个或多个前端输出缓冲器接收图形数据。该方法可以包括经由涉及多个图形管线电路级的多级剔除来确定可以移除哪些图形数据,其中确定包括将三角形转换成三角形扇。该方法可以包括防止后续图形管线电路级访问该剔除数据。
在附图和下面的描述中阐述了一个或多个实施方式的细节。其它特征将从所述描述和附图以及从权利要求而清楚。
一种用于计算机架构的系统和/或方法,或者更具体地,一种用于优化的像素着色器属性管理的装置和方法在至少一个附图中被示出和/或结合至少一个附图被描述,基本上如权利要求中更完整地阐述的那样。
附图说明
图1是根据所公开的主题的系统的示例实施例的框图。
图2是根据所公开的主题的系统的示例实施例的框图。
图3是可以包括根据所公开的主题的原理形成的设备的信息处理系统的示意框图。
不同附图中相似的参考符号表示相似的元件。
具体实施方式
下文将参考附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。然而,本公开的主题可以以许多不同的形式实施,并且不应该被解释为限于本文阐述的示例实施例。相反,提供这些示例实施例是为了使本公开彻底和完整,并且将向本领域技术人员充分传达本公开的主题的范围。在附图中,为了清楚起见,层和区域的尺寸和相对尺寸可能被放大。
应当理解,当一个元件或层被称为“在另一个元件或层上”、“连接到另一个元件或层”或“耦合到另一个元件或层”时,它可以直接在另一个元件或层上、直接连接到另一个元件或层或耦合到另一个元件或层,或者可以存在中间元件或层。相反,当一个元件被称为“直接在另一个元件或层上”、“直接连接到另一个元件或层”或“直接耦合到另一个元件或层”时,不存在中间元件或层。贯穿全文,相似的数字指代相似的元件。如本文所使用的,术语“和/或”包括相关联的列出的项目中的一个或多个的任意和全部组合。
将理解,虽然术语第一、第二、第三等等可以在本文中被用来描述各种元件、组件、区域、层、和/或分区,但是这些元件、组件、区域、层和/或分区不应该被这些术语限制。这些术语仅用于区分一个元件、组件、区域、层、或分区与另一个区域、层、或分区。因此,下面讨论的第一元件、组件、区域、层、或分区可以被称为第二元件、组件、区域、层、或分区,而不脱离本公开的主题的教导。
为了便于描述,本文可以使用空间相对术语(诸如“在..下方”、“在...下”、“下面的”、“在...上”、“上面的”等)来描述如图所示的一个元件或特征与另外一个或多个元件或特征的关系。应当理解,空间相对术语旨在包含除了图中描绘的方位之外的、在使用中的或者操作中的设备的不同方位。例如,如果图中的设备被翻转,则被描述为在其它元件或者特征的下面或者下方的元件则将被定向在所述其它元件或者特征的上面。因此,示例性术语“在...下”可以包括上方和下方两种方位。该设备可以以其他方式定向(旋转90度或在其他方位),并且本文使用的空间相对描述符被相应地解释。
类似地,为了便于描述,电气术语(诸如“高(high)”、“低(low)”、“上拉(pullup)”、“下拉(pull down)”、“1”、“0”等)在本文可以被用于描述如图所示的相对于其他电压电平或相对于另外一个或多个元素或特征的电压电平或电流。应当理解,电气相关术语旨在包含除了图中描绘的电压或电流之外,在使用或操作中的设备的不同参考电压。例如,如果图中的设备或信号被反转或使用其他参考电压、电流、或电荷,则与新的参考电压或电流相比,被描述为“高”或“上拉”的元素将是“低”或“下拉”的。因此,示例性术语“高”可以包含相对低或高的电压或电流。该设备可以基于不同的电气参考框架,并且本文使用的电气相关描述符可以被相应地解释。
本文使用的术语仅仅是为了描述特定的示例实施例,而不旨在限制本公开的主题。如本文所使用的,除非上下文另外清楚地指出,否则单数形式“一”,“一个”和“该”旨在也包括复数形式。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,指定所陈述的特征、整体、步骤、操作、元件、和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组的存在或者添加。
本文参考作为理想化示例实施例(和中间结构)的示意性图示的横截面图示来描述示例实施例。这样,由于例如制造技术和/或公差的原因,图示的形状的变化是可以预期的。因此,示例实施例不应被解释局限于本文所示的特定形状的区域,而是包括例如由制造引起的形状偏差。例如,示为矩形的注入区域通常在其边缘具有圆形或弯曲特征和/或注入浓度梯度,而不是从注入区域到非注入区域的二进制变化。同样,通过注入形成的掩埋区可能带来在掩埋区和注入穿过其而发生的表面之间的区域中的一些注入。因此,附图中示出的区域本质上是示意性的,并且它们的形状不旨在示出设备的区域的实际形状,并且不旨在限制本公开的主题的范围。
除非另有定义,否则本文使用的所有术语(包括技术和科学术语)具有与本公开的主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解,诸如通常使用的词典中定义的术语的术语应该被解释为具有与它们在相关技术的上下文中的含义一致的含义,并且将不会以理想化的或者过于正式的意义来解释,除非本文明确地定义。
在下文中,将参考附图详细解释示例实施例。
图1是根据所公开的主题的系统100的示例实施例的框图。在各种实施例中,系统100可以是图形处理单元(GPU)的一部分,或者是单独的或者被集成到芯片组或处理器(例如,片上系统(system on a chip,SoC))中。在各种实施例中,系统100可以包括图形处理管线。示出高级别(high-level)管线100的部分目的是为图2所示的管线的更详细部分提供上下文。
在示出的实施例中,系统100可以包括多个级(stage)或分离的电路,在其中数据被处理并且然后被传统地从管线级传递到管线级。传统上,数据的这种传递导致了功率使用的增加(以及过多的热量),并浪费了计算资源。在示出的实施例中,并且参考图2更详细地描述,当确定不再需要数据时,系统100可以剔除或移除数据。因此,示出的实施例可以实现更低的功率使用、热量、和更少的计算资源浪费。
在示出的实施例中,图形管线100通常处理包括顶点(一个或多个)的数据,其中顶点是三维世界中的点。该世界中的许多点或顶点被用来连接对象的表面。顶点通常形成图元(primitive)或基本形状。三角形是计算机图形学中最常见的几何图元。它由三个顶点和法向量定义。在各种实施例中,有时使用一个或三个法向量。它们通常是从顶点位置和次序(order)导出的。例如,正面由顶点次序和相对位置定义。通常计算有符号的三角形面积,并且符号指定正面或背面。法向量用于指示三角形的正面,并且是垂直于表面的向量。三角形顶点可以具有许多属性。例如,属性诸如颜色或纹理位置(纹理是“粘(glued)”在三角形顶部的图像)。属性可以被认为包括指定位置(位置的;例如,x/y坐标)的数据或关于位置以外的事项(非位置的;例如,颜色、亮度等)的数据。
在示出的实施例中,系统100可以包括输入属性获取单元或电路102。在这样的实施例中,输入属性获取电路102可以被配置为接收顶点属性数据(例如,以阵列的形式)。
在示出的实施例中,系统100可以包括一个或多个着色器单元或电路104,诸如例如顶点着色器(vertex shader,VS)或像素着色器(pixel shader,PS)。在各种实施例中,顶点着色器可被配置为将一些建模或对象3D空间中的每个顶点的3D位置转换到出现在屏幕上的2D坐标,并将用于Z缓冲器的深度值转换到被称为“裁剪空间(clip space)”的3D空间,在其中可对这些顶点形成的图元执行裁剪。裁剪移除不可见的图元并细分部分可见的图元。
在示出的实施例中,系统100可以包括一个或多个前端(front-end,FE)级或电路106,诸如例如可选级或所需的前端级,诸如图元组装件(primitive assembly,PA)。在各种实施例中,这些FE级106可以包括零个或更多个可选的处理单元或电路(未单独示出),这些处理单元或电路可以基于期望的处理任务而被添加到管线或从管线移除。示例FE级106可以包括细分曲面着色器(Tessellation shader)、几何着色器(geometry shader)、外壳着色器(hull shader)、域着色器(domain shader)、统一着色器(unified shader)等。应当理解,以上仅仅是一些说明性示例,所公开的主题不限于此。
在示出的实施例中,输入属性获取电路102、顶点着色器104、和任何前端级106可以在概念上被分组到系统100的前端管线部分150中。这些前端单元或电路可以被配置为预处理或准备顶点数据用于最终处理和渲染。这可以包括将顶点形成为图元,并且然后将顶点位置和属性传递到后端152以供像素着色器使用。
在示出的实施例中,级108、110、112、114、115、116和118可以被认为是后端管线部分152的一部分。在这样的实施例中,后端152可以被配置为在图像显示在屏幕或显示器(未示出)上之前执行最终的图形处理。
在示出的实施例中,系统100可以包括裁剪(clipping)、剔除(culling)、和视口(viewport)操作(CCV)单元或电路108。在各种实施例中,CCV单元108可以被配置为确定哪些图元需要被改变或裁剪以及需要对虚拟视口或相机进行的任何改变,并且然后根据需要剔除数据。在传统系统中,CCV单元108可以是系统中唯一的或主要的剔除操作。然而,如下文参考图2所述,示出的系统100可以采用多级剔除操作。
在示出的实施例中,系统100可以包括栅格化(rasterization)引擎、单元、或电路110。在这样的实施例中,栅格化电路110可以被配置为使用图元轮廓来计算哪些像素被图元覆盖。
在示出的实施例中,系统100可以包括早期深度测试单元或电路112。早期深度测试单元或电路112可以被配置为将属性插值到像素或采样位置,以供像素着色器使用。在各种实施例中,这可以在专用插值硬件中通过像素着色器或通过这些像素着色器的某种组合来完成。
在示出的实施例中,系统100可以包括一个或多个像素着色器(pixel shader,PS)单元或电路114。在各种实施例中,PS单元114可以被配置为计算像素颜色和其他像素数据,其通常使用纹理图像数据来导出。在各种实施例中,纹理图像数据可以由纹理单元或电路115提供。
在示出的实施例中,系统100可以包括后期深度测试单元或电路116。在这样的实施例中,后期深度测试单元或电路116可以被配置为执行像素深度测试并更新深度和模板缓冲器。在各种实施例中,深度单元112和116可以执行附加的剔除。
在示出的实施例中,系统100还可以包括颜色混合和输出单元或电路118。颜色混合和输出单元118可以被配置为执行像素混合计算并将最终像素颜色写入颜色缓冲器(未示出)。像素然后可以显示在屏幕上(未示出)。
图2是根据所公开的主题的系统或管线200的示例实施例的框图。在示出的实施例中,示出了图1所示的图形管线的子集的更详细版本。
在示出的实施例中,管线200可以包括多个前端(FE)着色器单元或电路202。这些FE着色器202可以计算像素着色器属性和其他数据。每个着色器202可以包括前端输出缓冲器(front-end output buffer,FOB)203。在另一实施例中,FOB 203可以是分离的,并且可以由该图像处理中的最后一个着色器202填充。在另一实施例中,FOB 203可以被包括作为前端输出逻辑(front-end output logic,FOL)单元204的一部分,如下所述。FOB 203可以被配置为存储着色器属性。
在示出的实施例中,系统200可以包括FE输出逻辑(FE output logic,FOL)单元或电路204。在各种实施例中,FOL单元或电路204可以读取顶点数据(包括属性),并将该数据传递到后面的管线级。在示出的实施例中,FOL单元204可以帮助剔除或移除不被需要的或不想要的数据,使得各种管线级不必处理它,或者系统200不需要移动该数据。同样,处理和移动数据涉及更高的功率使用和热量生成,期望两者都减少。
在示出的实施例中,FOL单元或电路204可以被配置为将数据路径分成两部分,位置路径(级206、208和210)和非位置路径(级222和224)。如下所述,包括位置信息的属性250可以被处理并被用于做出剔除确定。包括非位置信息的属性252可以被保持(如下所述)直到已经做出位置剔除确定,并且然后被分别剔除。在这样的实施例中,FOL单元204可以促进多级剔除过程,该过程在不被需要的信息被后面的级处理之前将其移除。
在这样的实施例中,FOL单元或电路204可以被配置为从(多个)FOB203读取顶点位置信息和图元连接性,并形成图元。FOL单元204可以被配置为将来自这些顶点的位置信息和相关的连接性发送到CCV级206。反过来,FOL单元204可以从CCV级206接收关于哪些图元在CCV图元和顶点剔除中幸存(survive)或未幸存的信息。FOL单元204可以被配置为在剔除之后,从FOB 203中读取幸存的非位置顶点属性,并将图元所需的那些传递到后面的级(例如,级222和224等)。
系统200可以包括裁剪、剔除、视口(CCV)单元或电路206。CCV单元206可以被配置为执行图元裁剪和顶点剔除。它还可以消除不能渲染任何像素或采样的小图元。它还可以执行视口变换操作。
在这样的实施例中,CCV单元206可以被配置为通知FOL单元204哪些顶点或图元的顶点需要沿管线200向下传递,以及要丢弃哪些图元或顶点,如上所述并由信号254示出。
在一个实施例中,CCV单元206也可以执行裁剪。在各种实施例中,CCV单元206可以被配置为执行图元裁剪,但不执行属性计算。通过裁剪单个输入图元而生成的所有图元可以被称为“子图元”。例如,被裁剪的三角形(triangle)可以被转换成三角形扇(trianglefan),因为三角形裁剪通常产生多个输出三角形。这些子图元可以只需要在栅格化期间是唯一的。在这样的实施例中,CCV单元206可以被配置为针对所有裁剪的图元计算重心(Barycentric)因子的集合。在各种实施例中,属性设置单元222可以使用这些重心因子来计算裁剪的顶点属性值。输入图元的所有子图元可以使用相同的属性设置输出(例如,相同的平面方程或重心设置)。
在示出的实施例中,系统200可以包括栅格化设置单元或电路208。在这样的实施例中,栅格化设置单元208可以被配置为计算栅格化和深度测试级210的设置信息。
在这样的实施例中,栅格化设置单元208可以被配置为确定哪些信息对于属性设置是有用的以及哪些信息对于控制目的是需要的,或者两者都不是。在一个实施例中,该信息可以存储在缓冲器中,直到被需要为止。可以对图元进行测试,以查看是否有任何覆盖在剔除中幸存,诸如来自剪式区域、平铺区域等。可以在该级剔除在所有测试中未幸存的图元(及其属性)。
在示出的实施例中,系统200可以包括栅格化和早期深度测试单元或电路210。如上所述,在各种实施例中,这些可以是多个单元或电路。在示出的实施例中,栅格化单元210可以被配置为针对每个图元生成像素或采样覆盖信息。并且,单元210的早期深度测试部分可以被配置为在执行像素着色器212之前执行深度测试。在这样的实施例中,在栅格化、早期深度、和/或模板测试之后,无覆盖或在屏幕上不可见的图元可以被剔除。
在各种实施例中,附加单元或电路(未示出)可以是系统200的一部分。在这样的实施例中,附加的剔除可以通过那些单元发生或执行。在各种实施例中,这些剔除操作可以包括冗余覆盖丢弃(redundant coverage discard,RDC)和/或四重合并。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。
在示出的实施例中,系统200可以包括属性设置单元或电路222。如上所述,属性设置单元222可以接收与位置信息250相关联的非位置信息252。在这样的实施例中,属性设置单元222可以被配置为基于管线的位置部分(例如,单元206、208和210)的信息和剔除活动来剔除各种非位置信息252。在各种实施例中以及在作为整体的系统200中,可以逐顶点执行属性剔除。在这样的实施例中,可以剔除由于幸存的图元不再需要顶点而不再被需要的顶点的属性。
例如,响应于由CCV单元206提供的反馈254,第一剔除可以不通过属性设置单元222发生,而是通过FOL单元204发生。FOL单元204可以简单地避免向属性设置单元222发送任何剔除的属性。当栅格化设置单元208提供位置信息剔除结果时(经由位置信息队列220),第二剔除可以发生。当从栅格化单元210接收到反馈时(经由信号256),第三剔除可以发生。在另一实施例中,经由220和256的反馈可以被发送回FOL单元204,使得被剔除的非位置信息从不被发送到属性设置单元222。
在这样的实施例中,非位置属性处理可以被延迟,直到已经接收到来自多级剔除部分(单元206、208和210)的所有剔除信息。如果特定的顶点没有“实时”覆盖或者已经被剔除,则与之相关联的非位置信息同样可以被剔除或丢弃。因此,传递到下一级224和212的信息量不仅可以通过位置级减少,还可以通过非位置级减少。同样,将属性分成两个管线意味着通过这两个管线行进或被传输的信息更少。在各种实施例中,所有属性计算可以由属性设置单元222执行,包括应用来自裁剪和透视校正的重心因子。
此外,插值所需的属性信息(诸如平面方程或重心因子)可以保存在属性设置单元222所包括的属性存储存储器(或者作为单独的存储器,未示出)中以供使用。
在各种实施例中,系统200可以包括硬件插值单元或电路224。插值单元224可以被配置为对数据进行插值。
在各种实施例中,系统200可以包括像素着色器(PS)单元或电路212。像素着色器单元212可被配置为接收非剔除或幸存的位置信息和非剔除或幸存的非位置信息,并计算影响至多单个输出像素的、每个“片段”或渲染工作单位的颜色和其他属性。
在示出的实施例中,通过减少沿着管线200的数据移动量、减少计算(因为每次剔除后涉及较少的数据)、以及减少存储量(例如,在每个管线级之间的缓冲器中的存储量),来减少功率使用。至于数据,每当特定的图元被剔除,它的顶点和相关属性可以不再被需要,并可以被丢弃。除了沿着每个剔除级的计算节省之外,节省还存在于不针对剔除的属性执行属性设置计算和插值的方面。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。
图3是可以包括根据所公开的主题的原理形成的半导体设备的信息处理系统300的示意框图。
参考图3,信息处理系统300可以包括根据所公开的主题的原理构建的一个或多个设备。在另一实施例中,信息处理系统300可以采用或执行根据所公开的主题的原理的一种或多种技术。
在各种实施例中,信息处理系统300可以包括计算设备,诸如例如膝上型电脑、台式机、工作站、服务器、刀片服务器、个人数字助理、智能手机、平板电脑、和其他适当的计算机或其虚拟机或虚拟计算设备。在各种实施例中,信息处理系统300可以由用户(未示出)使用。
根据所公开的主题的信息处理系统300还可以包括中央处理单元(centralprocessing unit,CPU)、逻辑、或处理器310。在一些实施例中,处理器310可以包括一个或多个功能单元块(functional unit block,FUB)或组合逻辑块(combinational logicblock,CLB)315。在这样的实施例中,组合逻辑块可以包括各种布尔逻辑运算(例如,“与非”、“或非”、“非”、“异或”)、稳定逻辑器件(例如触发器、锁存器)、其他逻辑器件、或其组合。这些组合逻辑运算器件可以以简单或复杂的方式配置,以处理输入信号,从而获得期望的结果。应当理解,虽然描述了同步组合逻辑运算器件的几个说明性示例,但是所公开的主题不限于此,并且可以包括异步运算器件或其混合。在一个实施例中,组合逻辑运算器件可以包括多个互补金属氧化物半导体(complementary metal oxide semiconductors,CMOS)晶体管。在各种实施例中,这些CMOS晶体管可以被布置成执行逻辑运算的栅极;但是应当理解,可以使用其他技术,并且这些技术也在所公开的主题的范围内。
根据所公开的主题的信息处理系统300还可以包括易失性存储器320(例如,随机存取存储器(random access memory,RAM))。根据所公开的主题的信息处理系统300还可以进包括非易失性存储器330(例如,硬盘驱动器、光学存储器、与非门、或闪存)。在一些实施例中,易失性存储器320、非易失性存储器330、或其组合或部分可以被称为“存储介质”。在各种实施例中,易失性存储器320和/或非易失性存储器330可以被配置为以半永久或基本永久的形式存储数据。
在各种实施例中,信息处理系统300可以包括一个或多个网络接口340,其被配置为允许信息处理系统300成为通信网络的一部分并经由通信网络进行通信。Wi-Fi协议的示例可以包括但不限于电气和电子工程师协会(Institute of Electrical andElectronics Engineers,IEEE)802.11g、IEEE 802.11n。蜂窝协议的示例可以包括但不限于:IEEE 802.16m(也称为无线城域网(Metropolitan Area Network,MAN)高级、长期演进(Long Term Evolution,LTE)高级、增强的用于全球移动通信系统的数据速率演进(Enhanced Data rates for GSM Evolution,EDGE)、演进的高速分组接入(Evolved High-Speed Packet Access,HSPA+)。有线协议的示例可以包括但不限于,IEEE 802.3(也称为以太网)、光纤信道、电力线通信(例如,家庭插头、IEEE 1901)。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。
根据所公开的主题的信息处理系统300还可以包括用户接口单元350(例如,显示适配器、触觉接口、人机接口设备)。在各种实施例中,该用户接口单元350可以被配置为从用户接收输入和/或向用户提供输出。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈、或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音、或触觉输入。
在各种实施例中,信息处理系统300可以包括一个或多个其他设备或硬件组件360(例如,显示器或监视器、键盘、鼠标、相机、指纹读取器、视频处理器)。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。
根据所公开的主题的信息处理系统300还可以包括一个或多个系统总线305。在这样的实施例中,系统总线305可以被配置为通信耦合处理器310、易失性存储器320、非易失性存储器330、网络接口340、用户接口单元350、和一个或多个硬件组件360。由处理器310处理的数据或者从非易失性存储器330外部输入的数据可以存储在非易失性存储器330或者易失性存储器320中。
在各种实施例中,信息处理系统300可以包括或执行一个或多个软件组件370。在一些实施例中,软件组件370可以包括操作系统(operating system,OS)和/或应用。在一些实施例中,OS可以被配置为向应用提供一个或多个服务,并且管理或充当应用和信息处理系统300的各种硬件组件(例如,处理器310、网络接口340)之间的中介。在这样的实施例中,信息处理系统300可以包括一个或多个本地应用,其可以被本地安装(例如,在非易失性存储器330内),并且被配置为由处理器310直接执行并且直接与OS交互。在这样的实施例中,本地应用可以包括预编译的机器可执行代码。在一些实施例中,本地应用可以包括被配置为将源代码或目标代码翻译成然后由处理器310执行的可执行代码的脚本解释器(例如,C外壳(C shell,csh)、AppleScript、AutoHotkey)或虚拟执行机器(virtual executionmachine,VM)(例如,Java虚拟机、微软公共语言运行时间)。
可以使用各种封装技术来封装上述半导体器件。例如,根据所公开的主题的原理构造的半导体器件可以使用以下各项中的至少一种:封装上封装(package on package,POP)技术、球栅阵列(ball grid array,BGA)技术、芯片级封装(chip scale package,CSP)技术、塑料引线芯片载体(plastic leaded chip carrier,PLCC)技术、塑料双列直插式封装(plastic dual in-line package,PDIP)技术、网状封装(waffle pack)的裸芯技术、晶片形式的裸芯技术、板上芯片(chip on board,COB)技术、陶瓷双列直插式封装(ceramicdual in-line package,CERDIP)技术,塑料米制四方扁平封装(plastic metric quadflat package,PMQFP)技术、塑料四方扁平封装(plastic quad flat package,PQFP)技术、小轮廓封装(small outline package,SOIC)技术、收缩小轮廓封装(shrink smalloutline package,SSOP)技术、薄小轮廓封装(thin small outline package,TSOP)技术、薄四方扁平封装(thin quad flat package,TQFP)技术、封装中系统(system in package,SIP)技术、多芯片封装(multi-chip package,MCP)技术、晶片级制造封装(wafer-levelfabricated package,WFP)技术、晶片级处理堆叠封装(wafer-level processed stackpackage,WSP)技术、或本领域技术人员已知的其他技术。
方法步骤可以由执行计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。方法步骤也可以由专用逻辑电路(例如,现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(application-specificintegrated circuit,ASIC))来执行,并且装置可以被实施为专用逻辑电路。
在各种实施例中,计算机可读介质可以包括当被执行时使设备执行至少一部分方法步骤的指令。在一些实施例中,计算机可读介质可以包括在磁性介质、光学介质、其他介质、或其组合中(例如,CD-ROM、硬盘驱动器、只读存储器、闪存驱动器)。在这样的实施例中,计算机可读介质可以是有形的且非暂时性实施的制品。
虽然已经参考示例实施例描述了所公开的主题的原理,但是对于本领域技术人员来说,显然可以对其进行各种改变和修改,而不脱离这些所公开的概念的精神和范围。因此,应该理解的是,上述实施例不是限制性的,而仅仅是说明性的。因此,所公开的概念的范围将由所附权利要求及其等同物的最广泛的可允许的解释来确定,并且不应该被前面的描述所限制。因此,应当理解,所附权利要求旨在覆盖落入实施例范围内的所有这些修改和改变。
Claims (20)
1.一种用于数据处理的装置,包括:
图形处理引擎,包括具有多个顺序的电路级的管线,所述管线包括前端输出逻辑电路,所述前端输出逻辑电路被配置为将位置信息分离成位置信息管线部分,并将非位置信息分离成非位置信息管线部分;和
其中,所述管线被配置为执行数据的多级剔除。
2.根据权利要求1所述的装置,其中,所述前端输出逻辑电路被配置为:
确定不被后续管线电路级需要的不被需要属性数据;和
剔除所述不被需要属性数据,以防止所述不被需要属性数据被所述后续管线电路级处理。
3.根据权利要求1所述的装置,其中,所述管线包括剔除电路,所述剔除电路被配置为:
至少部分基于图元特征来剔除图元数据;和
防止不被需要属性数据被后续管线电路级处理。
4.根据权利要求1所述的装置,其中,所述管线包括栅格化电路,所述栅格化电路被配置为:
至少部分基于可见度确定来剔除图元数据;和
防止不被需要属性数据被后续管线电路级处理。
5.根据权利要求1所述的装置,其中,所述管线包括剔除电路和栅格化电路,其中,所述前端输出逻辑电路、所述剔除电路、和所述栅格化电路串联放置,并且各自执行剔除操作以减少传递到后续管线级的数据量,其中,至少所述前端输出逻辑电路、所述剔除电路、和所述栅格化电路形成所述管线的多级剔除部分。
6.根据权利要求1所述的装置,其中,所述管线包括属性设置电路和剔除电路;并且
其中,所述非位置信息从所述前端输出逻辑电路被路由到所述属性设置电路,并且
其中,所述位置信息从所述前端输出逻辑电路被路由到所述剔除电路。
7.根据权利要求6所述的装置,其中,所述属性设置电路被配置为延迟图元属性插值设置,直到图元数据已经被所述位置信息管线部分剔除之后。
8.根据权利要求1所述的装置,其中,所述管线被配置为通过在剔除图元数据之前剔除属性数据来执行数据的多级剔除。
9.根据权利要求1所述的装置,其中,所述管线包括剔除电路和在架构上在所述剔除电路之后的至少一个后续处理电路级;
其中,所述前端输出逻辑电路被配置为:
从所述剔除电路接收关于剔除哪些数据的指示,
从前端输出缓冲器读取幸存数据,和
根据需要,将所述幸存数据或其一部分传递到所述至少一个后续处理电路级进行处理。
10.一种用于数据处理的系统,包括:
处理器核,被配置为处理指令;和
图形核,被配置为渲染图形数据,其中所述图形核包括图形处理管线,所述图形处理管线包括多个电路级,所述多个电路级被顺序地被布置以当数据流经所述图形处理管线时至少部分地处理数据,
其中,所述电路级包括:
前端输出逻辑电路,被配置为向一个或多个后续电路级提供未剔除数据;和
多级剔除部分,被配置为向所述前端输出逻辑电路指示哪些数据是剔除数据。
11.根据权利要求10所述的系统,其中,所述前端输出逻辑电路被配置为:
确定不被后续管线电路级需要的不被需要属性数据;和
剔除所述不被需要属性数据,以防止所述不被需要属性数据被所述后续管线电路级处理。
12.根据权利要求10所述的系统,其中,所述管线包括剔除电路,所述剔除电路被配置为:
至少部分基于图元特征来剔除图元数据;和
防止不被需要属性数据被后续管线电路级处理。
13.根据权利要求10所述的系统,其中,所述管线包括栅格化电路,所述栅格化电路被配置为:
至少部分基于可见度确定来剔除图元数据;和
防止不被需要属性数据被后续管线电路级处理。
14.根据权利要求10所述的系统,其中,所述多级剔除部分包括剔除电路和栅格化电路;
其中,所述前端输出逻辑电路、所述剔除电路和所述栅格化电路串联放置,并且每个电路执行剔除操作以减少传递到下一管线级的数据量。
15.根据权利要求10所述的系统,其中,所述管线包括属性设置电路和剔除电路;并且
其中,非位置信息从所述前端输出逻辑电路被路由到所述属性设置电路,并且
其中,位置信息从所述前端输出逻辑电路被路由到所述剔除电路。
16.根据权利要求15所述的系统,其中,所述属性设置电路被配置为延迟图元属性插值设置,直到所述位置信息管线部分已经剔除图元数据之后。
17.根据权利要求10所述的系统,其中,所述管线被配置为通过在剔除图元数据之前剔除属性数据来执行数据的多级剔除。
18.根据权利要求10所述的系统,其中,所述管线包括剔除电路和在架构上在所述剔除电路之后的至少一个后续处理电路级;
其中,所述前端输出逻辑电路被配置为:
从所述剔除电路接收关于剔除哪些数据的指示,
从所述前端输出缓冲器读取未剔除的数据,和
根据需要,将所述未剔除的数据或其一部分传递到所述至少一个后续处理电路级进行处理。
19.一种用于数据处理的方法,包括:
从一个或多个前端输出缓冲器接收图形数据;
经由涉及多个图形管线电路级的多级剔除来确定能够移除哪些图形数据,其中所述确定包括将三角形转换成三角形扇;
防止后续图形管线电路级访问剔除的数据。
20.根据权利要求19所述的方法,其中,所述确定包括:
由前端输出逻辑电路确定不被后续管线电路级需要的不被需要属性数据;
由剔除电路至少部分基于图元特征来剔除图元数据;
由栅格化电路至少部分基于可见性确定来剔除图元数据。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962863851P | 2019-06-19 | 2019-06-19 | |
US62/863,851 | 2019-06-19 | ||
US16/597,840 US11227430B2 (en) | 2019-06-19 | 2019-10-09 | Optimized pixel shader attribute management |
US16/597,840 | 2019-10-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112116517A true CN112116517A (zh) | 2020-12-22 |
Family
ID=73798892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010533650.8A Pending CN112116517A (zh) | 2019-06-19 | 2020-06-12 | 用于数据处理的装置、系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11227430B2 (zh) |
CN (1) | CN112116517A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030067468A1 (en) * | 1998-08-20 | 2003-04-10 | Duluk Jerome F. | Graphics processor with pipeline state storage and retrieval |
US7292239B1 (en) * | 2004-08-06 | 2007-11-06 | Nvidia Corporation | Cull before attribute read |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
US7468726B1 (en) * | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US8564616B1 (en) * | 2009-07-17 | 2013-10-22 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
CN104715443A (zh) * | 2013-12-13 | 2015-06-17 | 三星电子株式会社 | 图形处理单元、系统芯片和数据处理系统 |
US20170091989A1 (en) * | 2015-09-25 | 2017-03-30 | Murali Ramadoss | Position Only Shader Context Submission Through a Render Command Streamer |
US20170337656A1 (en) * | 2016-05-20 | 2017-11-23 | Intel Corporation | Command processing for graphics tile-based rendering |
CN108734641A (zh) * | 2017-04-24 | 2018-11-02 | 英特尔公司 | 利用粗糙z缓冲器的仅位置着色流水线(posh)几何数据处理 |
CN109564695A (zh) * | 2016-09-16 | 2019-04-02 | 英特尔公司 | 用于高效3d图形流水线的装置和方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8542247B1 (en) | 2009-07-17 | 2013-09-24 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
US9214006B2 (en) * | 2013-06-04 | 2015-12-15 | Arm Limited | Hidden surface removal in graphics processing systems |
US9953455B2 (en) | 2013-03-13 | 2018-04-24 | Nvidia Corporation | Handling post-Z coverage data in raster operations |
US9824412B2 (en) | 2014-09-24 | 2017-11-21 | Intel Corporation | Position-only shading pipeline |
KR20160047317A (ko) | 2014-10-22 | 2016-05-02 | 삼성전자주식회사 | 하이브리드 렌더링 장치 및 방법 |
KR20160047316A (ko) | 2014-10-22 | 2016-05-02 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
US10032308B2 (en) * | 2016-06-22 | 2018-07-24 | Advanced Micro Devices, Inc. | Culling objects from a 3-D graphics pipeline using hierarchical Z buffers |
US11379941B2 (en) | 2016-09-22 | 2022-07-05 | Advanced Micro Devices, Inc. | Primitive shader |
US10706612B2 (en) * | 2017-04-01 | 2020-07-07 | Intel Corporation | Tile-based immediate mode rendering with early hierarchical-z |
-
2019
- 2019-10-09 US US16/597,840 patent/US11227430B2/en active Active
-
2020
- 2020-06-12 CN CN202010533650.8A patent/CN112116517A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030067468A1 (en) * | 1998-08-20 | 2003-04-10 | Duluk Jerome F. | Graphics processor with pipeline state storage and retrieval |
US7292239B1 (en) * | 2004-08-06 | 2007-11-06 | Nvidia Corporation | Cull before attribute read |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
US7468726B1 (en) * | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US8564616B1 (en) * | 2009-07-17 | 2013-10-22 | Nvidia Corporation | Cull before vertex attribute fetch and vertex lighting |
CN104715443A (zh) * | 2013-12-13 | 2015-06-17 | 三星电子株式会社 | 图形处理单元、系统芯片和数据处理系统 |
US20170091989A1 (en) * | 2015-09-25 | 2017-03-30 | Murali Ramadoss | Position Only Shader Context Submission Through a Render Command Streamer |
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图形流水线的装置和方法 |
CN108734641A (zh) * | 2017-04-24 | 2018-11-02 | 英特尔公司 | 利用粗糙z缓冲器的仅位置着色流水线(posh)几何数据处理 |
Also Published As
Publication number | Publication date |
---|---|
US11227430B2 (en) | 2022-01-18 |
US20200402295A1 (en) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10210651B2 (en) | Allocation of tiles to processing engines in a graphics processing system | |
US20230360306A1 (en) | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space | |
US11410385B2 (en) | Generation of a control stream for a tile | |
CN110084875B (zh) | 使用计算着色器作为顶点着色器的前端 | |
US10229526B2 (en) | Rendering of soft shadows | |
CN109087384B (zh) | 光线跟踪系统和方法以及光线压缩方法和模块 | |
CN106575430B (zh) | 用于像素哈希的方法和装置 | |
KR101635334B1 (ko) | 대칭적 에지 스플릿팅에 의한 표면 테셀레이션 | |
US11481951B2 (en) | Graphics processing method and system for rendering items of geometry based on their size | |
US20230351670A1 (en) | Graphics processing method and system for rendering items of geometry based on their size | |
US11257181B2 (en) | Tiling a primitive in a graphics processing system by edge-specific testing of a subset of tiles in a rendering space | |
US20230154108A1 (en) | Assembling primitive data into multi-view primitive blocks in a graphics processing system | |
TWI596569B (zh) | 促進針對在計算裝置上之部分被遮蔽圖形影像之動態且有效的預啓用裁剪之技術 | |
US10089964B2 (en) | Graphics processor logic for encoding increasing or decreasing values | |
US9305370B2 (en) | Graphical rendering with implicit surfaces | |
CN113379886B (zh) | 地理信息系统的三维渲染方法、装置、设备及存储介质 | |
RU2656683C1 (ru) | Ускоренное отсечение одной плоскостью многоугольников при графической обработке | |
KR100968370B1 (ko) | 2d 및 3d 통합 그래픽 가속기, 그 가속기를 포함한어플리케이션 프로세서 및 그 어플리케이션 프로세서에서의그래픽 가속방법 | |
US11227430B2 (en) | Optimized pixel shader attribute management | |
TWI810458B (zh) | 用於最佳化像素著色器屬性管理的設備、系統及方法 | |
CN109643460B (zh) | 使用推迟图元批量合并和分类的混合渲染器 | |
US20220207827A1 (en) | Systems and methods for distributed rendering using two-level binning | |
Ma et al. | Rasterization of geometric primitive in graphics based on FPGA | |
CN115803770A (zh) | 分箱硬件中的细粒度重放控制 | |
CN114359454A (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 |