CN102598062B - 具有延缓的顶点遮影的图形处理单元 - Google Patents
具有延缓的顶点遮影的图形处理单元 Download PDFInfo
- Publication number
- CN102598062B CN102598062B CN201080022750.9A CN201080022750A CN102598062B CN 102598062 B CN102598062 B CN 102598062B CN 201080022750 A CN201080022750 A CN 201080022750A CN 102598062 B CN102598062 B CN 102598062B
- Authority
- CN
- China
- Prior art keywords
- summit
- coordinate
- gpu
- visible primitive
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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/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/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明描述用于以使用延缓的顶点遮影的图形处理单元(GPU)来处理图形图像的技术。一种实例方法包括以下步骤:在图形处理单元(GPU)的处理管线内针对图像几何形状内的每一图元的顶点产生顶点坐标,其中所述顶点坐标包含所述顶点中的每一者的位置和透视参数,且其中所述图像几何形状表示图形图像;在所述GPU的所述处理管线内基于所述顶点坐标来识别所述图像几何形状内的可见图元;以及响应于识别所述可见图元而在所述GPU的所述处理管线内仅针对所述可见图元的顶点产生顶点属性以便确定所述图形图像的表面性质。
Description
依据35U.S.C.§119主张优先权
本专利申请案主张2009年5月29日申请的第61/182,414号临时申请案的优先权,所述临时申请案的全文以引用的方式并入本文中且主张其优先权。
技术领域
本发明涉及使用图形处理单元处理图形图像。
背景技术
图形处理单元(GPU)是专用的图形呈现装置,用以操纵图形图像且将图形图像显示于显示装置上。GPU常常由高度平行的结构建构而成,因为增加了一系列复杂算法而提供比典型通用中央处理单元(CPU)更为有效的处理。举例来说,复杂算法可对应于对三维计算机化图形的处理表示法。与CPU直接将图像绘制于显示装置相比,GPU可实施若干图元图形操作(例如,形成点、线和三角形)以便更快地在显示装置上产生复杂的二维或三维图像。
在视频游戏产业中,常使用顶点遮影和片段(像素)遮影确定计算机化图像的最终表面性质。GPU通常在基于遮影器的典型图形核心中包括至少三个主要管线级:顶点遮影器级、图元设置与内插级,和片段遮影器级。
顶点遮影器可应用于图像的图像几何形状,且可对于图像几何形状内所含的图元产生顶点坐标和顶点属性。顶点属性可包括(例如)与顶点相关联的色彩坐标、法线坐标和纹理坐标。图元设置模块可形成例如点、线或三角形等图元。可将图像几何形状的图元转换成像素,且可执行隐藏图元和像素移除(隐藏表面移除)。属性内插器接着在图像几何形状的图元内的像素上内插属性,且将所内插属性值发送到片段遮影器以用于像素呈现。可接着将来自片段遮影器的结果输出到后处理块和帧缓冲器以用于将经处理的图像显现在显示装置上。
在某些情况下,装置可多次通过或多次重复特定GPU处理管线以呈现图像数据。第一次通过GPU管线,可仅提取属性且执行关于顶点坐标和位置的顶点遮影计算。在第一次通过期间,GPU管线可丢弃不可见图元,且可将与可见图元有关的信息存储于存储器缓冲器中。在随后第二次通过GPU管线时,GPU管线从存储器缓冲器检索信息,仅处理可见图元,且完成顶点遮影计算。
发明内容
本发明描述用于以使用延缓的顶点遮影的图形处理单元(GPU)来处理图形图像的技术。举例来说,GPU可包括使用多个顶点遮影器来处理图形图像的图形处理管线。第一顶点遮影器可针对表示图形图像的特定图像几何形状内所含的图元的顶点产生顶点坐标,使得可识别可见图元。第二不同顶点遮影器可接着仅针对可见图元的顶点产生顶点属性以便确定所述图形图像的表面性质。以此方式,所述GPU可最小化或消除对执行用于与不可见图元或隐藏表面相关联的顶点的顶点提取和遮影的某些计算密集型功能的需要,这可帮助在GPU内降低功率消耗并改进性能。另外,GPU可能够在单次而非多次通过其GPU图形处理管线期间执行这些各种任务。
在一个实例中,一种方法包括以下步骤:在图形处理单元(GPU)的处理管线内针对图像几何形状内的每一图元的顶点产生顶点坐标,其中所述顶点坐标包含所述顶点中的每一者的位置和透视参数,且其中所述图像几何形状表示图形图像;在所述GPU的处理管线内基于所述顶点坐标来识别所述图像几何形状内的可见图元;以及响应于识别所述可见图元而在所述GPU的处理管线内仅针对所述可见图元的顶点产生顶点属性以便确定所述图形图像的表面性质。
在一个实例中,一种装置包括图形处理单元(GPU)。所述GPU经配置以在所述GPU的处理管线内针对图像几何形状内的每一图元的顶点产生顶点坐标,其中所述顶点坐标包含所述顶点中的每一者的位置和透视参数,且其中所述图像几何形状表示图形图像。所述GPU还经配置以:在所述GPU的处理管线内基于所述顶点坐标来识别所述图像几何形状内的可见图元;以及响应于识别所述可见图元而仅针对所述可见图元的顶点产生顶点属性以便确定所述图形图像的表面性质。
在一个实例中,一种计算机可读存储媒体包含用于使一个或一个以上处理器执行以下操作的可执行指令:在图形处理单元(GPU)的处理管线内针对图像几何形状内的每一图元的顶点产生顶点坐标,其中所述顶点坐标包含所述顶点中的每一者的位置和透视参数,且其中所述图像几何形状表示图形图像;在所述GPU的处理管线内基于所述顶点坐标来识别所述图像几何形状内的可见图元;以及响应于识别所述可见图元而在所述GPU的处理管线内仅针对所述可见图元的顶点产生顶点属性以便确定所述图形图像的表面性质。
可以硬件、软件、固件或其任何组合来实施本发明中所描述的技术。如果以软件实施,那么可在处理器中执行所述软件,处理器可指代一个或一个以上处理器(例如微处理器)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。包含用以执行所述技术的指令的软件可最初被存储于计算机可读媒体中且由处理器载入且执行。
因此,本发明还涵盖包含使处理器执行如本发明中所描述的多种技术中的任一者的指令的计算机可读媒体。在一些状况下,计算机可读媒体可形成计算机程序产品的一部分,所述计算机程序产品可被销售给制造商和/或用于一装置中。所述计算机程序产品可包括计算机可读媒体,且在一些状况下还可包括封装材料。
在附图和以下描述中陈述一个或一个以上方面的细节。从所述描述和图式以及从权利要求书中将了解其它特征、目标和优点。
附图说明
图1为说明实例装置的框图,所述装置包括图形处理单元(GPU),所述GPU实施用于图像处理的延缓的顶点提取器/遮影器机构。
图2A到图2B为根据第一实例的GPU管线的框图,所述GPU管线实施用于图像处理的多个顶点提取器/解码器和多个顶点遮影器。
图3A到图3B说明根据第二实例的GPU管线的框图,所述GPU管线实施用于图像处理的多个顶点提取器/解码器和多个顶点遮影器。
图4为说明其中多个顶点提取器/遮影器机构的实施已被停用的实例GPU管线的框图。
图5为说明可由GPU管线(例如图2A到图2B和/或图3A到图3B中所示的GPU)内的组件执行的实例方法的流程图。
图6A到图6C说明可由GPU管线(例如图2A到图2B中所示的GPU)内的各种组件执行的实例方法的流程图。
具体实施方式
图1为说明实例装置2的框图,所述装置2包括用以实施用于图像处理的延缓的顶点提取器/遮影器机构的图形处理单元(GPU)14。在图1的实例中,装置2包括耦合到主存储器装置28和显示装置20的处理系统10。处理系统10包括控制器12、GPU14、内部存储器装置24和显示处理器26。控制器12、GPU14和/或显示处理器26可将数据写入到内部存储器24和/或主存储器28,或从内部存储器24和/或主存储器28读取数据。在一些情况下,内部存储器24可包含高速缓冲存储器。
装置2可包含独立装置或可为较大系统的一部分。举例来说,装置2可包含以下各项或可为以下各项的一部分:无线通信装置(例如无线移动手持机)、数码相机、视频相机、视频电话、数字多媒体播放器、个人数字助理(PDA)、视频游戏控制台、个人计算机或膝上型装置,或能够显示图形数据的其它装置。装置2也可包括于可在上文所描述的装置中的一些或全部中使用的一个或一个以上集成电路或芯片内。
在处理系统10内,控制器12能够控制处理系统10中的其它处理器(例如GPU14和/或显示处理器26)的操作。根据本文中所描述的技术,GPU14包括GPU管线18和耦合到GPU管线18的顶点高速缓冲存储器/缓冲器16。顶点高速缓冲存储器/缓冲器16可包含芯片上缓冲器,所述芯片上缓冲器为与GPU14相同的集成电路或芯片的一部分。顶点高速缓冲存储器/缓冲器16的并入可减少通过GPU14内的GPU管线18的数据的量。
在一些情况下,GPU14可从控制器12接收表示图形图像的图像几何形状连同用于呈现和显示所述图像的一个或一个以上命令或指令。所述图像几何形状可对应于二维(2D)或三维(3D)计算机化图形图像的表示。GPU14根据呈现命令处理所述图像几何形状以经由显示装置20(例如)向装置2的用户显现图像效果、背景图像、视频游戏图像或其它图像。随着时间的流逝,GPU14可处理可被显示为视频帧序列中的视频帧的图像的此类图像几何形状中的一者或一者以上。显示装置20可包含与处理系统10集成或经由显示处理器26而耦合到处理系统10的液晶显示器(LCD)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
在一些状况下,控制器12可从在装置2内操作的应用程序(例如视频游戏应用程序)接收一个或一个以上图像几何形状。在其它状况下,控制器12可从在装置2外部操作的应用程序(例如经由有线或无线网路而耦合到装置2的外部服务器)接收一个或一个以上图像几何形状。举例来说,装置2可经由串流媒体或广播媒体而从外部服务器接收图像几何形状。
在从控制器12接收到图像几何形状之后,GPU14可处理所述图像几何形状以使对应的图像准备好经由显示处理器26显现在显示装置20上。举例来说,GPU14可实施若干图元图形操作(例如形成点、线和三角形),以在显示装置20上产生由接收到的图像几何形状表示的2D或3D图像。显示处理器26可在将所述图像显示于显示装置20上之前执行某些操作(例如按比例缩放、旋转或其它操作)。
通常,GPU管线18包括用以处理图像几何形状的图元的各种处理级。图元是最简单类型的几何图形,其包括点、线、三角形和其它多边形,且可由图像几何形状内的一个或一个以上顶点形成。当图元或图元的部分在图像的特定帧内不可见(例如,位于物件的背面)时,在对所述图像帧的处理期间可丢弃所述图元或图元的所述部分而不予考虑,且还可移除可见图元的隐藏表面。隐藏表面为可能在图像帧内位于另一物件后面或为透明的表面。
举例来说,如图2A到图2B和图3A到图3B的实例中所示,GPU管线18可包括用以提取和解码对应于所述图元的顶点的特定信息的顶点提取和解码操作,所述信息接着被用于顶点遮影操作。如图1中所示,GPU管线18包括延缓的顶点提取器/遮影器22,如在下文中将更详细地描述,所述延缓的顶点提取器/遮影器22包括多个顶点提取器/解码器级和多个顶点遮影级。第一顶点提取器和解码器可提取并解码与图像几何形状内所含的图元的顶点相关联的特定坐标属性,且将这些坐标属性提供给第一顶点遮影器。坐标属性为输入到顶点遮影器且有助于在顶点遮影器中计算顶点位置和透视参数的属性。第一顶点遮影器可针对图像几何形状内的每一图元的顶点产生顶点坐标,其中所述顶点坐标可包含位置和透视参数。
第一顶点遮影器可将所述顶点坐标存储于顶点高速缓冲存储器/缓冲器16内。在一些情况下,顶点高速缓冲存储器/缓冲器16可包括用以存储顶点坐标的专用存储区域。顶点坐标可基于(例如)四维坐标系统来识别图像几何形状内的图元的顶点,所述四维坐标系统具有识别图像几何形状内的顶点的位置的X坐标、Y坐标和Z坐标(例如,X轴、Y轴、Z轴上的XYZ坐标)以及包含图像几何形状的透视参数的W坐标。
GPU管线18的图元设置元件可检索存储于顶点高速缓冲存储器/缓冲器16中的顶点坐标,且使用这些坐标来识别图像几何形状内的可见图元。响应于识别所述可见图元,第二提取器和解码器可提取并解码所述可见图元的顶点的特定非坐标属性(例如,与坐标信息无关联的属性),且可将这些非坐标属性提供给第二顶点遮影器。非坐标属性为输入到顶点遮影器且有助于在顶点遮影器中计算除坐标位置和透视参数外的属性的属性。在一些情况下,坐标属性可具有与非坐标属性重叠的特定属性,因为这些属性可能有助于计算顶点位置与其它属性两者。
在接收到非坐标属性后,第二顶点遮影器可接着仅针对可见图元的顶点产生顶点属性以便确定图形图像的表面性质。举例来说,顶点属性可包括与任一给定顶点相关联的色彩坐标、法线坐标和纹理坐标。
以此方式,GPU管线18可最小化或消除对针对某些不可见表面和/或隐藏表面执行用于提取和顶点遮影的某些计算密集型功能的需要。在过去,通常已在图元设置之前针对图像几何形状中的所有图元的顶点执行顶点提取/解码和顶点遮影,而不管对应的图元是可见还是不可见。通过延缓某些顶点提取/解码和遮影操作,有可能仅相对于给定图像几何形状内的可见图元的顶点提供顶点属性的提取和遮影操作。此可帮助在装置2内降低功率消耗且还改进性能(由于有效地移除了不必要的顶点流提取和顶点遮影计算)。GPU管线18和延缓的顶点提取器/遮影器22可以并排式或非并排式呈现架构来实施。
图2A到图2B说明根据第一实例的GPU管线30的框图,所述GPU管线30实施用于图像处理的多个顶点提取器/解码器32、48和多个顶点遮影器34、50。在此实例中,图2A到图2B中所示的GPU管线30可为图1中所示的GPU管线18的一部分。根据一个方面,顶点提取器/解码器32(顶点提取器/解码器#1)、顶点遮影器34(顶点遮影器#1)、顶点提取器/解码器48(顶点提取器/解码器#2)和顶点遮影器50(顶点遮影器#2)可为图1中所示的延缓的顶点提取器/遮影器22的一部分。通过实施多个顶点提取器/解码器32、48和多个顶点遮影器34、50,GPU30可将某一功能性延缓到顶点提取器/解码器48(顶点提取器/解码器#2)和顶点遮影器50(顶点遮影器#2),且最小化或消除对执行用于某些不可见图元的顶点的顶点提取和遮影的一些计算密集型功能的需要。
在图2A中,命令引擎31可从GPU管线30所在的装置(例如,图1中所示的装置2)的控制器接收图像的图像几何形状和呈现命令。图像几何形状可对应于复杂的2D或3D计算机化图形的表示。命令引擎31沿GPU管线将图像几何形状和呈现命令传递到其它处理级。
举例来说,命令引擎31将图像几何形状内所含的图元的顶点的顶点索引传递到第一顶点提取器/解码器32。顶点提取器/解码器32接收这些顶点索引且可接着提取所述顶点的属性。举例来说,在一些状况下,顶点提取器/解码器32可首先针对顶点高速缓冲存储器机构中的属性(例如可包括于顶点高速缓冲存储器/缓冲器38内)执行命中/未命中检查(hit/misschecking)。(在一个方面中,顶点高速缓冲存储器/缓冲器38可为图1中所示的顶点高速缓冲存储器/缓冲器16的一部分。)对于任何未命中的顶点来说,顶点提取器/解码器32可从存储器缓冲器提取属性(例如可包括于内部存储器24(图1)内)。
在图2A到图2B的实例中,所提取的属性可对应于与顶点的坐标相关联的属性(即,坐标属性)。坐标属性可包含与顶点的位置(例如,在X轴、Y轴、Z轴上的XYZ坐标)和图像几何形状的透视参数(例如,W坐标)的计算有关的属性。这些坐标属性可由第一顶点遮影器34用于确定顶点的实际坐标(例如,用于位置和透视的XYZW坐标)。然而,在许多情况下,顶点提取器/解码器32可解码所提取的坐标属性的属性格式且将其转换成顶点遮影器34可接受的内部格式。
顶点遮影器34被应用于图像几何形状且确定在图像几何形状内的顶点处所述图像的表面性质。以此方式,顶点遮影器34针对图像几何形状内的所述顶点中的每一者产生顶点坐标。所述顶点坐标基于(例如)四维坐标系统来识别图像几何形状内的顶点,所述四维坐标系统具有识别图像几何形状内的顶点的位置的X坐标、Y坐标和Z坐标以及包含图像几何形状的透视参数的W坐标。在产生顶点坐标后,顶点遮影器可将所述坐标存储于顶点高速缓冲存储器/缓冲器38中。
如图2A的实例中所示,顶点高速缓冲存储器/缓冲器38可包括用于不同类型的顶点数据的不同专用存储区域。顶点高速缓冲存储器/缓冲器38的坐标存储区域40能够存储可(例如)由顶点遮影器34提供的顶点坐标。顶点高速缓冲存储器/缓冲器38的属性存储区域42能够存储可(例如)由第二顶点遮影器50提供的顶点属性,如下文中将更详细地描述。在一些情况下,顶点遮影器34可向图元设置模块36提供顶点高速缓冲存储器/缓冲器38的坐标存储区域40内的所存储顶点坐标的高速缓存索引值。在这些情况下,所述高速缓存索引值可由顶点提取器/解码器32计算出且传送到顶点遮影器34。
图元设置模块36可从顶点高速缓冲存储器/缓冲器的坐标存储区域40读取图元顶点的顶点坐标(例如,X坐标、Y坐标、Z坐标、W坐标)。图元设置模块36可使用由顶点遮影器34提供的高速缓存索引值来定位坐标存储区域40内供检索的顶点坐标。图元设置模块36用图像几何形状内的一个或一个以上顶点来形成图元。图元为最简单类型的几何图形,且可包括点、线、三角形和其它多边形。
图元设置模块36可执行对任何不可见图元的初始丢弃。举例来说,可能位于视域或检视区域外的任何图元可能由于是不可见图元而遭到丢弃。图元设置模块36还可通过使用图元内的顶点的XY坐标执行剪裁和背面剔除来丢弃图元。当图元和图元的部分在图像的特定帧内不可见时,在对所述图像帧的处理期间,剪裁和背面剔除丢弃所述图元和图元的所述部分而不予考虑。举例来说,所述图元和图元的所述部分可位于图像帧内的物件的背面。
图元设置模块36可将图像几何形状内的可见图元提供给扫描转换器44,在所述扫描转换器44中,可基于(例如)图元内的顶点中的每一者的XY坐标和图元中所包括的像素的数目而将图元光栅化成像素。
并行地,图元设置模块36可将可见图元的顶点索引提供给第二顶点提取器/解码器48。顶点提取器/解码器48接收这些顶点索引且可接着提取顶点的属性。举例来说,在一些状况下,顶点提取器/解码器48可首先针对顶点高速缓冲存储器机构中的属性(例如可包括于顶点高速缓冲存储器/缓冲器38内)执行命中/未命中检查。针对任何未命中的顶点,顶点提取器/解码器48可从存储器缓冲器提取属性(例如可包括于内部存储器24(图1)内)。
在图2A到图2B的实例中,由顶点提取器/解码器48提取的属性可对应于与顶点的坐标或坐标操作无关联的属性,且可称为非坐标属性。这些非坐标属性可由第二顶点遮影器50用于计算图像几何形状中的可见图元的顶点的顶点属性。顶点属性可包括(例如)与给定顶点相关联的色彩坐标、法线坐标和/或纹理坐标。在计算后,顶点遮影器50可将顶点属性存储于顶点高速缓冲存储器/缓冲器38的属性存储区域42内。在一个方面中,使用OpenGL/OpenGLSL(开放图形库/开放图形库遮影语言)规范的术语将顶点属性称为“变化的”。
如先前所描述,且如图2A到图2B中所示,顶点高速缓冲存储器/缓冲器38可被逻辑划分成两个区域:坐标存储区域40和属性存储区域42。顶点高速缓冲存储器/缓冲器38的这两个区域可由GPU(例如,图1的GPU14)独立地管理以供GPU管线30使用。坐标存储区域40含有由顶点遮影器34产生并由图元设置模块36使用的顶点坐标。属性存储区域42含有由顶点遮影器50产生并由属性设置与内插模块52使用的顶点属性。顶点遮影器50可向属性设置与内插模块52提供顶点高速缓冲存储器/缓冲器38的属性存储区域42内的所存储顶点属性的高速缓存索引值。这些高速缓存索引值可由顶点提取器/解码器48计算出。
在图2A的实例中,顶点提取器/解码器48和顶点遮影器50可在GPU管线30内大致涵盖扫描转换器44和早期Z模块46的管线等待时间。因此,提取器/解码器48和顶点遮影器50的操作可与扫描转换器44和早期Z模块46的操作大致并行地执行,这可实现各种性能效率。早期Z模块46结合扫描转换器44而工作,以基于图元内的顶点的Z坐标使用(例如)早期深度和模版测试来移除可见图元的隐藏表面。当图元或图元内的像素(例如,表面)位于图像的特定帧内的另一物件(例如,另一图元)后面或在图像帧内为透明时,可认为所述图元或图元内的所述像素是隐藏的且因此在对所述图像帧的处理期间不予考虑。
在顶点遮影器50已将顶点属性存储到属性存储区域42中之后,延缓的属性设置与内插模块52可从属性存储区域42检索这些属性。属性设置与内插模块52可使用由顶点遮影器50提供的高速缓存索引值来定位属性存储区域42内供检索的顶点属性。属性设置与内插模块52还可从早期Z模块46获得未被丢弃的图元的像素。属性设置与内插模块52可接着基于(例如)属性梯度值在图元内的像素上内插属性。
在一个方面中,属性梯度包含在水平(X)方向或垂直(Y)方向上移动的图元内的第一像素处的属性值与第二像素处的属性值之间的差。顶点属性可用以计算属性梯度。在一些状况下,属性梯度设置速率可在很大程度上取决于与图元相关联的顶点属性的数目。因此,通过延缓特定的提取、解码和遮影功能性,GPU管线30限制需要由属性设置与内插模块52处理的属性的数目,借此增加属性设置与内插模块52可进行操作的效率。延缓的属性设置与内插模块52可能仅需要检索并处理与可见图元(如图元设置模块36所确定)相关联的顶点的顶点属性,其中隐藏表面(如早期Z模块46所确定)可能也已被移除。在另一方面中,延缓的属性设置与内插模块52可由另一机构(例如系数产生器)替换或实施。在此方面中,可对所产生的系数执行内插。
如图2B中所示,属性设置与内插模块52可将所内插属性值提供给像素/片段遮影器54以执行所述图元的像素呈现。像素/片段遮影器54可确定在图像几何形状的图元内的像素处图像的表面性质。像素/片段遮影器54的结果可接着被输出到后处理模块56以使像素准备好显示于(例如)图1中所示的显示装置20上。
在一个方面中,顶点遮影器34和顶点遮影器50可以实体方式共享同一遮影器处理器(未图示)来实施GPU管线30,以便节约硬件成本。在一个方面中,顶点流提取器/解码器32和顶点流提取器/解码器48可共享同一流高速缓冲存储器(未图示),以便节约硬件成本。
GPU管线30可最小化或消除对某些不可见表面和/或隐藏表面执行用于提取和顶点遮影的某些计算密集型功能的需要。通过延缓某些顶点提取/解码操作和顶点遮影操作,有可能仅相对于给定图像几何形状内的可见图元的顶点提供提取和遮影操作。这可帮助降低功率消耗且还改进性能,由于有效地排除了对由于不可见而遭丢弃的图元进行不必要的顶点流提取和顶点遮影计算。
图3A到图3B说明根据第二实例的GPU管线60的框图,所述GPU管线60实施用于图像处理的多个顶点提取器/解码器和多个顶点遮影器。类似于图2A到图2B中所示的GPU管线30,GPU管线60包括命令引擎61、第一顶点提取器/解码器62、第一顶点遮影器64、图元设置模块66、扫描转换器68、早期Z模块70、第二顶点提取器/解码器78、第二顶点遮影器80、延缓的属性设置与内插模块82、像素/片段遮影器84和后处理模块86。根据一个方面,顶点提取器/解码器62(顶点提取器/解码器#1)、顶点遮影器64(顶点遮影器#1)、顶点提取器/解码器78(顶点提取器/解码器#2)和顶点遮影器80(顶点遮影器#2)可为图1中所示的延缓的顶点提取器/遮影器22的一部分。
图3A到图3B还展示:GPU管线60与顶点高速缓冲存储器/缓冲器72交互。类似于图2A到图2B中所示的顶点高速缓冲存储器/缓冲器38,顶点高速缓冲存储器/缓冲器72包括用于顶点坐标和顶点属性的不同存储区域:坐标存储区域74和属性存储区域76。
类似于GPU管线30,GPU管线60在与顶点高速缓冲存储器/缓冲器72交互时存储并检索顶点坐标和顶点属性数据。举例来说,顶点遮影器64可将顶点坐标存储于坐标存储区域74内。图元设置模块66可接着检索图像几何形状内的图元的顶点的顶点坐标以识别并丢弃不可见图元。然而,不同于GPU管线30,GPU管线60仅向扫描转换器68和早期Z模块70提供来自图元设置模块66的输出。扫描转换器68执行光栅化功能以产生像素,且早期Z模块70可丢弃任何隐藏表面。
接着将可见图元传递到第二顶点提取器/解码器78,所述第二顶点提取器/解码器78接着对这些图元的顶点索引执行命中/未命中检查。顶点提取器/解码器78可接着提取并解码这些顶点的非坐标属性,使得第二顶点遮影器80可产生所述顶点的顶点属性(例如,色彩、法线、纹理)并将这些属性存储于属性存储区域76内。延缓的属性设置与内插模块82、像素/片段遮影器84和后处理模块86可接着执行类似于延缓的属性设置与内插模块52、像素/片段遮影器54和后处理模块56(图2A到图2B)的功能,以便处理供显示的数据。
GPU管线60可提供某些优点。举例来说,因为顶点提取器/解码器78接收来自早期Z模块70的输出,所以顶点提取器/解码器78和顶点遮影器80无需一定要针对任何隐藏表面的顶点处理顶点索引或计算顶点属性。早期Z模块70可移除此类隐藏表面中的一者或一者以上而不予作进一步处理,此可节约顶点提取器/解码器78和顶点遮影器80的处理带宽。(在图2A到图2B的实例中,顶点提取器/解码器48和顶点遮影器50与扫描转换器44和早期Z模块46大体上并行地操作。在此实例中,有可能顶点提取器/解码器48和顶点遮影器50可能需要花费若干个循环来处理潜在的隐藏表面的顶点。)然而,在许多情形中,与早期Z模块70相比,图元设置模块66可丢弃的图元的数目要大得多,此可削弱GPU管线60的实例的此潜在优点。(举例来说,绝大多数图元可由于不可见而遭到图元设置模块66丢弃,而仅小得多的百分比的表面图元/像素可由于被隐藏而遭到早期Z模块70丢弃)。
与GPU管线30相比,GPU管线60还可具有某些限制。因为顶点提取器/解码器78和顶点遮影器80并非像图2A到图2B的实例中一样与扫描转换器68和早期Z模块70大体上并行地操作,所以管线等待时间可能会增加。
另外,在某些状况下,从早期Z模块70输出的数据(例如,像素/图元)可能需要得到缓冲,随后由属性设置与内插模块82检索。如先前参看图2A到图2B所描述,属性设置与内插模块通常并入有由早期Z模块与计算顶点属性的第二顶点遮影器所提供的信息并利用所述信息。因此,在图3A到图3B的实例中,早期Z模块70可能需要将其输出数据存储到缓冲器(例如,单独FIFO(先入先出)缓冲器)中。在顶点遮影器80已将顶点属性信息存储到属性存储区域76中之后,延缓的属性设置与内插模块82可能接着需要从顶点高速缓冲存储器/缓冲器72检索顶点属性且还检索由早期Z模块70存储的经缓冲信息。此额外缓冲和设计成本可能会增加可由图2A到图2B中所示的实例潜在地避免或最小化的额外负担。在图2A到图2B的实例中,扫描转换器44和早期Z模块46与顶点提取器/遮影器48和顶点遮影器50大体上并行地操作。
图4为说明其中多个顶点提取器/遮影器机构的实施已被停用的实例GPU管线90的框图。在一些情况下,延缓的顶点提取器/遮影器机构的使用可为可配置的。所述机构可由可在GPU(例如,GPU14)内执行的驱动程序启用或配置。举例来说,在图2A到图2B的实例中,可由控制器12执行的驱动程序当其确定任何益处或处理效率可能已最小时可选择性地停用顶点流提取器/解码器48和顶点遮影器50。
在一种情形中,驱动程序可确定:顶点遮影器34对顶点坐标所作的延缓处理和顶点遮影器50对顶点属性所作的延缓处理不能提供与计算顶点坐标与属性两者的单个顶点遮影器相比显著的处理或功率节省。在此状况下,驱动程序可停用顶点提取器/解码器48和顶点遮影器50。在一些状况下,驱动程序可基于通过对可由所述驱动程序接入的图形指令进行编译而提供的统计数据来作出此确定。在一些情况下,驱动程序可基于对给定图像几何形状的先前数据帧所作的处理来作出此确定。
图4的GPU管线90展示当第二顶点提取器/解码器和顶点遮影器已被停用时且在仅使用单个顶点提取器/解码器和顶点遮影器的情况下的实例实施方案。GPU管线90包括命令引擎91、单个顶点提取器/解码器92、顶点遮影器94、图元设置模块96、扫描转换器98、早期Z模块100、延缓的属性设置与内插模块102、像素/片段遮影器104和后处理模块106。
出于说明的目的,在一个实例中,命令引擎91以类似于命令引擎30(图2A)的方式起作用,接收图形命令和图像几何形状。然而,不同于顶点提取器/解码器32,图4的顶点提取器/解码器92基于顶点索引提取顶点的所有属性(包括基于坐标的属性和基于非坐标的属性两者)。顶点遮影器94接着针对接收到的图像几何形状中所含的图元的顶点产生顶点坐标的集合与顶点属性的集合两者且将这些集合存储于顶点高速缓冲存储器/缓冲器108中。
与(例如)图2A到图2B中所示的包括用于顶点坐标和属性的单独存储区域(40、42)的顶点高速缓冲存储器/缓冲器38形成对比,图4中所示的顶点高速缓冲存储器/缓冲器108是作为一个组合式高速缓冲存储器加以管理。在另一方面中,顶点高速缓冲存储器/缓冲器108可包括用于顶点坐标和属性的单独存储区域。图元设置模块96检索图像几何形状中所含的图元的所有顶点的顶点坐标且丢弃任何不可见图元。扫描转换器98将可见图元光栅化成像素,且早期Z模块100可进一步移除任何隐藏的图元/像素(例如,表面)。
延缓的属性设置与内插模块102接收来自早期Z模块100的输出,且还从顶点高速缓冲存储器/缓冲器108检索所有可见图元顶点的顶点属性。延缓的属性设置与内插模块102仅对对应于未被丢弃的图元的顶点(例如,对应于可见图元和可见图元的未隐藏的表面的顶点)的属性执行属性设置和内插。像素/片段遮影器104和后处理模块106类似于图2B中所示的像素/片段遮影器54和后处理模块56而起作用。
图5为说明可由GPU管线(例如图2A到图2B和图3A到图3B中所示的GPU管线30和/或60)的各种组件执行的实例方法的流程图。仅出于说明的目的,将假定图5中所示的方法由图2A到图2B中所示的GPU管线30执行。
顶点遮影器34可在GPU处理管线30内针对图像几何形状内的每一图元的顶点产生顶点坐标(110),所述图像几何形状由命令引擎31从控制器(例如图1中所示的控制器12)接收。命令引擎31还可从所述控制器接收呈现命令。顶点坐标可包含位置和透视参数,且图像几何形状可表示图形图像。在一些情况下,顶点遮影器34可在所述图像几何形状的每一图元的顶点处产生顶点坐标。
图元设置模块36可基于顶点坐标来识别图像几何形状内的可见图元(112)。在一些状况下,图元设置模块36可通过基于顶点坐标丢弃图像几何形状内的不可见图元来识别可见图元。
响应于识别可见图元,顶点遮影器50可在GPU管线30内仅针对可见图元的顶点产生顶点属性(例如,色彩、纹理、透明度)以便确定图形图像的表面性质(114)。顶点属性可用以基于由GPU管线30执行的呈现命令而产生对可见图元的表示。在一个方面中,顶点遮影器50可仅针对可见图元的顶点产生顶点属性(仅当此产生被启用时)。如上文所描述,在某些情况下,GPU的驱动程序停用使用多个顶点提取器/解码器和顶点遮影器的延缓功能性。当被停用时,不能使用顶点提取器/解码器48和顶点遮影器50,且GPU可实施图4中所示的GPU管线90。
顶点遮影器34可从顶点提取器/解码器32获得图像几何形状中的每一图元的顶点的坐标属性。顶点遮影器34可接着基于从顶点提取器/解码器32接收的顶点坐标属性而针对每一图元的顶点产生顶点坐标。顶点遮影器34可将顶点坐标存储于顶点缓冲器的第一专用区域中(例如,顶点高速缓冲存储器/缓冲器38内的坐标存储区域40内)。(如先前所描述,顶点高速缓冲存储器/缓冲器38可包括第二专用区域(属性存储区域42),其存储已由顶点遮影器50产生的顶点属性。)
在一个方面中,顶点遮影器50可从顶点提取器/解码器48获得每一可见图元的顶点的非坐标属性。顶点遮影器50可接着基于顶点的非坐标属性而产生每一可见图元的顶点的顶点属性。可将这些顶点属性存储于顶点高速缓冲存储器/缓冲器38的属性存储区域42中以供属性设置与内插模块52稍后检索。
图2A中所示的早期Z模块46能够基于可见图元中的至少一者的一个或一个以上隐藏表面相对于可见图元中的至少另一者的相对位置来移除所述一个或一个以上隐藏表面。举例来说,如果可见图元的表面完全位于图像几何形状内的另一图元后面,那么所述表面可被隐藏而看不见。在此情况下,早期Z模块46可移除此隐藏表面。早期Z模块46可与顶点遮影器50所执行的操作大体上并行地执行其操作中的任一者。举例来说,在顶点遮影器50从顶点提取器/解码器48获得非坐标属性且仅针对可见图元的顶点产生顶点属性的同时,早期Z模块46可移除隐藏表面。顶点遮影器50可将所产生的顶点属性存储于顶点高速缓冲存储器/缓冲器38的属性存储区域42内。
如先前所描述,在一些实例中,第二顶点提取器/解码器和顶点遮影器可位于早期Z模块下游,如图3A到图3B的实例中所示。在所述实例中,顶点提取器/解码器78直接接收来自早期Z模块70的输出。因此,早期Z模块70和顶点提取器/解码器78连续地而非并行地执行其功能性。在顶点遮影器80从顶点提取器/解码器78获得非坐标属性且产生这些可见图元的顶点的顶点属性之前,早期Z模块70可移除可见图元的隐藏表面。
顶点遮影器80可从顶点提取器/解码器78获得或接收每一可见图元的顶点的非坐标属性。顶点遮影器80可接着基于顶点的非坐标属性而产生每一可见图元的顶点的顶点属性,且可将这些顶点属性存储于属性存储区域76中。
图6A到图6C说明可由GPU管线(例如图2A到图2B中所示的GPU管线30)的各种组件执行的实例方法的流程图。图6A到图6C还指示GPU管线内的可执行所指示动作的各种组件。出于说明的目的,将假定图6A到图6C中所示的方法由GPU管线30的组件执行。
首先参看图6A,命令引擎31可从控制器(例如从图1中所示的装置2的控制器12)接收图像几何形状和呈现命令(120)。命令引擎31接着将顶点索引发送到第一顶点提取器/解码器32(122)。顶点索引与所述图像几何形状内所含的图元的顶点有关。
顶点提取器/解码器32可基于顶点索引来提取顶点的坐标属性(例如,与位置和透视有关的属性)(124)。举例来说,顶点提取器/解码器32可相对于顶点高速缓冲存储器机构(例如,顶点高速缓冲存储器/缓冲器38)针对坐标属性执行命中/未命中检查,且可针对未命中的顶点从单独的存储器缓冲器(例如,内部存储器24)提取属性。顶点提取器/解码器32可解码属性格式并将其转换成顶点遮影器可识别或可接受的内部格式(126)。顶点提取器/解码器32可接着将经转换的坐标属性发送到第一顶点遮影器34(128)。
在从顶点提取器/解码器32接收到坐标属性信息后,顶点遮影器34针对所述图像几何形状内所含的图元的顶点产生顶点坐标(例如,用于位置和透视的XYZW坐标)(130)。顶点遮影器34可将这些顶点坐标存储于顶点高速缓冲存储器/缓冲器38内的坐标存储区域40内(132)。另外,顶点遮影器34可将所存储的顶点坐标的高速缓存索引值(可能已由顶点提取器/解码器32计算出)提供给图元设置模块36。
现参看图6B,图元设置模块36可从顶点高速缓冲存储器/缓冲器38的坐标存储区域40检索顶点坐标(134)。图元设置模块36可使用由顶点遮影器34提供的高速缓存索引值来定位坐标存储区域40内供检索的顶点坐标。图元设置模块36基于图像几何形状内的图元的顶点坐标来识别图像几何形状内的可见图元且丢弃不可见图元(136)。举例来说,特定图元的顶点坐标可位于检视区域的边界外、视域的边界外。在一些情况下,视域的定位和位置可由应用程序定义、由装置定义,或由命令引擎31接收到的呈现命令规定。在一些情况下,图元设置模块36可在执行背面剔除之后丢弃图元。背面剔除可确定哪些图元对于检视者来说可能不可见(因为其并非定向为朝向或面对检视者)。这些图元可遭到图元设置模块36丢弃。
在图2A到图2B的实例GPU管线中,图元设置模块36可将可见图元的顶点的索引发送到第二顶点提取器/解码器48(140)。大体上并行地,图元设置模块36还可将可见图元提供给扫描转换器44(138)。扫描转换器44可将可见图元转换成像素(142)。早期Z模块46可移除图像几何形状的任何隐藏的图元/像素(例如,表面)(146)。当图元或图元内的像素位于图像的特定帧内的另一物件后面或在图像帧内为透明时,可认为所述图元或图元内的所述像素是隐藏的,且因此可在对所述图像帧的处理期间不予考虑。
在扫描转换器44和早期Z模块46正执行其个别操作的同时,顶点提取器/解码器48和顶点遮影器50也可正执行某些操作。顶点提取器/解码器48可使用由图元设置模块36提供的索引来提取可见图元的顶点的非坐标属性(例如,与XYZW坐标无关的属性)(144)。顶点提取器/解码器48可解码并转换顶点的非坐标属性(148)且接着将经转换的非坐标属性发送到第二顶点遮影器50(150)。
现参看图6C,顶点遮影器50可产生图像几何形状内的可见图元的顶点中的每一者的顶点属性(例如,色彩,纹理)(152)。顶点遮影器50可接着将顶点属性存储于顶点高速缓冲存储器/缓冲器38的属性存储区域42内(154)。另外,顶点遮影器50可将所存储的顶点属性的高速缓存索引值提供给延缓的属性设置与内插模块52。这些高速缓存索引值可由顶点提取器/解码器48计算且被提供给顶点遮影器50。
属性设置与内插模块52可从顶点高速缓冲存储器/缓冲器38的属性存储区域42检索这些顶点属性(156)。属性设置与内插模块52可使用由顶点遮影器50提供的高速缓存索引值来定位属性存储区域42内供检索的顶点属性。属性设置与内插模块52还可从早期Z模块46获得未被丢弃的图元的像素。属性设置与内插模块52可接着基于(例如)属性梯度值在可见图元的像素上内插顶点属性(158)。
通过延缓特定的提取、解码和遮影功能性,GPU管线30可限制需要由属性设置与内插模块52处理的属性的数目,借此增加属性设置与内插模块52可进行操作的效率。属性设置与内插模块52可能仅需要检索并处理与可见图元(如图元设置模块36所确定)相关联的顶点以及也并非为隐藏表面(如早期Z模块46所确定)的一部分的顶点的顶点属性。
属性设置与内插模块52可将经内插属性值提供给像素/片段遮影器54。像素/片段遮影器54可接着执行图元的像素/片段遮影(160)。像素/片段遮影器54可确定在图像几何形状的图元内的像素处图像的表面性质。接着可将像素/片段遮影器54的结果输出到后处理模块56。后处理模块56可执行一个或一个以上后处理操作(162),例如像素混合操作,以使像素准备好显示于(例如)图1中所示的显示装置20上。
本发明中所描述的技术可实施于以下各项中的一者或一者以上内:通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)或其它等效逻辑装置。因此,如本文中所使用的术语“处理器”或“控制器”可指代前述结构中的任何一者或一者以上,或适合于实施本文中所描述的技术的任何其它结构。
本文中所说明的各种组件可通过硬件、软件、固件或其任何组合的任何合适的组合来实现。在图中,将各种组件描绘为单独的单元或模块。然而,参看这些图所描述的各种组件中的全部或若干组件可集成到共同硬件、固件和/或软件内的组合式单元或模块中。因此,将特征表示为组件、单元或模块希望为了易于说明而强调特定功能特征,且未必要求通过单独的硬件、固件或软件组件来实现此类特征。在一些状况下,可将各种单元实施为由一个或一个以上处理器执行的可编程过程。
可将本文中描述为模块、装置或组件的任何特征一起实施于集成式逻辑装置中或单独地实施为离散但可交互操作的逻辑装置。在各种方面中,此类组件可至少部分地形成为一个或一个以上集成电路装置,所述一个或一个以上集成电路装置可统称为集成电路装置,例如集成电路芯片或芯片组。此电路可提供于单个集成电路芯片装置中或多个可交互操作的集成电路芯片装置中,且可用于多种图像、显示、音频或其它多媒体应用程序和装置中的任一者中。在一些方面中,举例来说,此类组件可形成例如无线通信装置手持机等移动装置的一部分。
如果以软件实施,那么所述技术可至少部分地通过包含具有指令的代码的计算机可读数据存储媒体来实现,所述指令在由一个或一个以上处理器执行时执行上文所描述的方法中的一者或一者以上。计算机可读存储媒体可形成可包括封装材料的计算机程序产品的一部分。计算机可读存储媒体可包含:例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、嵌入式动态随机存取存储器(eDRAM)、静态随机存取存储器(SRAM)、快闪存储器、磁性或光学数据存储媒体。所使用的任何软件可由一个或一个以上处理器(例如,一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路)执行。
本发明中已描述各种方面。这些和其它方面在所附权利要求书的范围内。
Claims (24)
1.一种使用图形处理单元处理图形图像的方法,其包含:
在图形处理单元GPU的处理管线内针对图像几何形状内的每一图元的顶点产生顶点坐标,其中所述顶点坐标包含所述顶点中的每一者的位置和透视参数,且其中所述图像几何形状表示图形图像;
在所述GPU的所述处理管线内基于所述顶点坐标来识别所述图像几何形状内的可见图元;
基于所述可见图元中的至少一者的一个或一个以上隐藏表面相对于所述可见图元中的至少另一者的相对位置来确定所述一个或一个以上隐藏表面;
移除所述一个或一个以上隐藏表面;以及
响应于识别所述可见图元而在所述GPU的所述处理管线内仅针对所述可见图元的所述顶点产生顶点属性以便确定所述图形图像的表面性质。
2.根据权利要求1所述的方法,其中产生所述顶点坐标包含在所述图像几何形状内的每一图元的所述顶点处产生所述顶点坐标。
3.根据权利要求1所述的方法,其中所述顶点属性包含与每一顶点相关联的色彩或纹理参数中的一者或一者以上。
4.根据权利要求1所述的方法,其进一步包含:使用所述顶点属性在所述GPU的所述处理管线内基于所述GPU接收到的呈现命令而产生对所述可见图元的表示。
5.根据权利要求1所述的方法,其进一步包含:在所述GPU的所述处理管线内获得所述图像几何形状中的每一图元的所述顶点的坐标属性,其中产生所述顶点坐标包含基于所述顶点的所述坐标属性而产生每一图元的所述顶点的所述顶点坐标。
6.根据权利要求1所述的方法,其进一步包含:
将所述顶点坐标存储于顶点缓冲器的第一专用区域中;
将所述顶点属性存储于所述顶点缓冲器的第二不同专用区域中。
7.根据权利要求1所述的方法,其中与仅针对所述可见图元的所述顶点产生所述顶点属性并行地执行移除所述一个或一个以上隐藏表面。
8.根据权利要求1所述的方法,其中在仅针对所述可见图元的所述顶点产生所述顶点属性之前执行移除所述一个或一个以上隐藏表面。
9.根据权利要求1所述的方法,其进一步包含:获得每一可见图元的所述顶点的非坐标属性,且其中产生所述顶点属性包含基于所述顶点的所述非坐标属性而产生每一可见图元的所述顶点的所述顶点属性。
10.根据权利要求9所述的方法,其中与获得所述非坐标属性和产生所述顶点属性并行地执行移除所述一个或一个以上隐藏表面。
11.根据权利要求9所述的方法,其中在获得所述非坐标属性和产生所述顶点属性之前执行移除所述一个或一个以上隐藏表面。
12.根据权利要求9所述的方法,其中所述仅针对所述可见图元的所述顶点产生所述顶点属性的步骤在该步骤被启用后执行。
13.一种使用图形处理单元处理图形图像的装置,其包含:
用于在图形处理单元GPU的处理管线内针对图像几何形状内的每一图元的顶点产生顶点坐标的装置,其中所述顶点坐标包含所述顶点中的每一者的位置和透视参数,且其中所述图像几何形状表示图形图像;
用于在所述GPU的所述处理管线内基于所述顶点坐标来识别所述图像几何形状内的可见图元的装置;
用于基于所述可见图元中的至少一者的一个或一个以上隐藏表面相对于所述可见图元中的至少另一者的相对位置来确定所述一个或一个以上隐藏表面的装置;
用于移除所述一个或一个以上隐藏表面的装置;以及
用于响应于识别所述可见图元而在所述GPU的所述处理管线内仅针对所述可见图元的所述顶点产生顶点属性以便确定所述图形图像的表面性质的装置。
14.根据权利要求13所述的装置,其中所述用于产生所述顶点坐标的装置包含:用于在所述图像几何形状内的每一图元的所述顶点处产生所述顶点坐标的装置。
15.根据权利要求13所述的装置,其中所述顶点属性包含与每一顶点相关联的色彩或纹理参数中的一者或一者以上。
16.根据权利要求13所述的装置,其进一步包含用于使用所述顶点属性在所述GPU的所述处理管线内基于所述GPU接收到的呈现命令而产生对所述可见图元的表示的装置。
17.根据权利要求13所述的装置,其进一步包含用于在所述GPU的所述处理管线内获得所述图像几何形状中的每一图元的所述顶点的坐标属性的装置,其中所述用于产生所述顶点坐标的装置包含用于基于所述顶点的所述坐标属性产生每一图元的所述顶点的所述顶点坐标的装置。
18.根据权利要求13所述的装置,其进一步包含:
用于将所述顶点坐标存储于顶点缓冲器的第一专用区域中的装置;
用于将所述顶点属性存储于所述顶点缓冲器的第二不同专用区域中的装置。
19.根据权利要求13所述的装置,其中所述用于移除所述隐藏表面中的所述一者或一者以上的装置包含:用于与仅针对所述可见图元的所述顶点产生所述顶点属性并行地移除所述隐藏表面中的所述一者或一者以上的装置。
20.根据权利要求13所述的装置,其中所述用于移除所述隐藏表面中的所述一者或一者以上的装置包含:用于在仅针对所述可见图元的所述顶点产生所述顶点属性之前移除所述隐藏表面中的所述一者或一者以上的装置。
21.根据权利要求13所述的装置,其进一步包含用于获得每一可见图元的所述顶点的非坐标属性的装置,且其中所述用于产生所述顶点属性的装置包含:用于基于所述顶点的所述非坐标属性而产生每一可见图元的所述顶点的所述顶点属性的装置。
22.根据权利要求21所述的装置,其中所述用于移除所述隐藏表面中的所述一者或一者以上的装置包含:用于与获得所述非坐标属性和产生所述顶点属性并行地移除所述隐藏表面中的所述一者或一者以上的装置。
23.根据权利要求21所述的装置,其中所述用于移除所述隐藏表面中的所述一者或一者以上的装置包含:用于在获得所述非坐标属性和产生所述顶点属性之前移除所述隐藏表面中的所述一者或一者以上的装置。
24.根据权利要求21所述的装置,其中所述用于仅针对所述可见图元的所述顶点产生所述顶点属性的装置在该装置被启用后执行。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18241409P | 2009-05-29 | 2009-05-29 | |
US61/182,414 | 2009-05-29 | ||
US12/557,427 US8436854B2 (en) | 2009-05-29 | 2009-09-10 | Graphics processing unit with deferred vertex shading |
US12/557,427 | 2009-09-10 | ||
PCT/US2010/036661 WO2010138870A2 (en) | 2009-05-29 | 2010-05-28 | Graphics processing unit with deferred vertex shading |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102598062A CN102598062A (zh) | 2012-07-18 |
CN102598062B true CN102598062B (zh) | 2016-03-09 |
Family
ID=43219705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080022750.9A Active CN102598062B (zh) | 2009-05-29 | 2010-05-28 | 具有延缓的顶点遮影的图形处理单元 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8436854B2 (zh) |
EP (1) | EP2435988A2 (zh) |
JP (1) | JP5596136B2 (zh) |
KR (1) | KR101281258B1 (zh) |
CN (1) | CN102598062B (zh) |
TW (1) | TW201104620A (zh) |
WO (1) | WO2010138870A2 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8810592B2 (en) * | 2009-10-09 | 2014-08-19 | Nvidia Corporation | Vertex attribute buffer for inline immediate attributes and constants |
KR101681056B1 (ko) * | 2010-10-01 | 2016-12-01 | 삼성전자주식회사 | 정점 처리 방법 및 장치 |
US9142002B2 (en) | 2011-02-03 | 2015-09-22 | L-3 Communications Corporation | FPGA packet processing engine |
FR2964775A1 (fr) | 2011-02-18 | 2012-03-16 | Thomson Licensing | Procede d'estimation de l'occultation dans un environnement virtuel |
GB201103698D0 (en) * | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphics processing |
GB201103699D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
US8854383B2 (en) * | 2011-04-13 | 2014-10-07 | Qualcomm Incorporated | Pixel value compaction for graphics processing |
US8884963B2 (en) * | 2011-05-04 | 2014-11-11 | Qualcomm Incorporated | Low resolution buffer based pixel culling |
US9019280B2 (en) | 2011-07-22 | 2015-04-28 | Qualcomm Incorporated | Area-based rasterization techniques for a graphics processing system |
JP5845910B2 (ja) | 2012-01-13 | 2016-01-20 | 富士通株式会社 | 画像描画装置、画像描画プログラム、及び、画像描画方法 |
US9412197B2 (en) | 2012-04-04 | 2016-08-09 | Qualcomm Incorporated | Patched shading in graphics processing |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US10134102B2 (en) | 2013-06-10 | 2018-11-20 | Sony Interactive Entertainment Inc. | Graphics processing hardware for using compute shaders as front end for vertex shaders |
CN103974062B (zh) * | 2013-06-24 | 2018-10-26 | 福州瑞芯微电子股份有限公司 | 图像显示装置、图像显示系统和图像显示方法 |
US9208602B2 (en) * | 2013-09-27 | 2015-12-08 | Intel Corporation | Techniques and architecture for improved vertex processing |
KR102066533B1 (ko) | 2013-11-19 | 2020-01-16 | 삼성전자 주식회사 | 도메인 쉐이딩 방법과 이를 수행하는 장치들 |
GB2521171B (en) * | 2013-12-11 | 2020-02-05 | Advanced Risc Mach Ltd | Clipping of graphics primitives |
KR20150069617A (ko) * | 2013-12-13 | 2015-06-24 | 삼성전자주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 soc, 및 이를 포함하는 그래픽 프로세싱 시스템 |
US9767602B2 (en) * | 2014-06-30 | 2017-09-19 | Intel Corporation | Techniques for reduced pixel shading |
US9773294B2 (en) * | 2014-07-03 | 2017-09-26 | Mediatek Inc. | Graphics processing system for determining whether to store varying variables into varying buffer based at least partly on primitive size and related graphics processing method thereof |
GB2527822B (en) * | 2014-07-03 | 2020-10-07 | Advanced Risc Mach Ltd | Graphics processing |
US20160035128A1 (en) * | 2014-08-03 | 2016-02-04 | Mediatek Singapore Pte. Ltd. | Graphics processing system for performing deferred vertex attribute shading based on split vertex bitstreams and related graphics processing method |
US9424686B2 (en) * | 2014-08-08 | 2016-08-23 | Mediatek Inc. | Graphics processing circuit having second vertex shader configured to reuse output of first vertex shader and/or process repacked vertex thread group and related graphics processing method thereof |
US9824412B2 (en) * | 2014-09-24 | 2017-11-21 | Intel Corporation | Position-only shading pipeline |
KR20160051155A (ko) * | 2014-10-31 | 2016-05-11 | 삼성전자주식회사 | 렌더링 장치 및 방법 |
GB2535493B (en) * | 2015-02-18 | 2021-02-24 | Advanced Risc Mach Ltd | Graphics processing systems |
WO2017083821A1 (en) | 2015-11-12 | 2017-05-18 | Linamar Corporation | Rear drive module having a ring gear disconnect and synch-lock mechanism |
GB2546073B (en) * | 2016-01-05 | 2018-09-26 | Advanced Risc Mach Ltd | Graphics processing |
US10192280B2 (en) * | 2016-04-08 | 2019-01-29 | Qualcomm Incorporated | Per-vertex variable rate shading |
GB2550358B (en) | 2016-05-16 | 2020-08-26 | Advanced Risc Mach Ltd | Graphics processing systems |
US10062139B2 (en) * | 2016-07-25 | 2018-08-28 | Qualcomm Incorporated | Vertex shaders for binning based graphics processing |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US11379941B2 (en) * | 2016-09-22 | 2022-07-05 | Advanced Micro Devices, Inc. | Primitive shader |
CN106709982B (zh) * | 2016-10-20 | 2020-03-17 | 哈尔滨安天科技集团股份有限公司 | 一种基于连续折线形三维管道的绘制方法及系统 |
US10235811B2 (en) | 2016-12-29 | 2019-03-19 | Intel Corporation | Replicating primitives across multiple viewports |
US10510181B2 (en) * | 2017-06-27 | 2019-12-17 | Samsung Electronics Co., Ltd. | System and method for cache management using a cache status table |
GB2564400B (en) | 2017-07-06 | 2020-11-25 | Advanced Risc Mach Ltd | Graphics processing |
KR102067423B1 (ko) * | 2017-09-12 | 2020-02-12 | 주식회사 케이쓰리아이 | 지피유 가속 컴퓨팅을 이용한 3차원 복원 클라우드 포인트 생성 방법 |
CN108022201B (zh) * | 2017-11-24 | 2021-09-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种三角形图元并行光栅化定序方法 |
US10628910B2 (en) | 2018-09-24 | 2020-04-21 | Intel Corporation | Vertex shader with primitive replication |
CN109816761B (zh) * | 2018-12-25 | 2023-03-21 | 东软集团股份有限公司 | 图形转换方法、装置、存储介质和电子设备 |
US11189073B2 (en) | 2020-03-20 | 2021-11-30 | Arm Limited | Graphics processing |
US11790479B2 (en) * | 2021-01-29 | 2023-10-17 | Arm Limited | Primitive assembly and vertex shading of vertex attributes in graphics processing systems |
CN117292039B (zh) * | 2023-11-27 | 2024-02-13 | 芯瞳半导体技术(山东)有限公司 | 顶点坐标生成方法、装置、电子设备及计算机存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6891533B1 (en) * | 2000-04-11 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Compositing separately-generated three-dimensional images |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2883523B2 (ja) * | 1992-08-26 | 1999-04-19 | 株式会社ナムコ | 画像合成装置及び画像合成方法 |
US5986669A (en) * | 1996-09-10 | 1999-11-16 | Intergraph Corporation | Graphics processing with efficient clipping |
JP3409987B2 (ja) * | 1997-02-05 | 2003-05-26 | シャープ株式会社 | 3次元画像生成方法および装置とこの方法および装置を用いた3次元画像処理装置 |
JP2004102841A (ja) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | クリッピング処理装置、グラフィックスシステム、クリッピング処理方法及びグラフィックス方法 |
US7148888B2 (en) * | 2003-04-04 | 2006-12-12 | Via Technologies, Inc. | Head/data request in 3D graphics |
US7400325B1 (en) * | 2004-08-06 | 2008-07-15 | Nvidia Corporation | Culling before setup in viewport and culling unit |
US7292239B1 (en) * | 2004-08-06 | 2007-11-06 | Nvidia Corporation | Cull before attribute read |
US7468726B1 (en) * | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US7952588B2 (en) * | 2006-08-03 | 2011-05-31 | Qualcomm Incorporated | Graphics processing unit with extended vertex cache |
US8212840B2 (en) * | 2006-10-23 | 2012-07-03 | Qualcomm Incorporated | 3-D clipping in a graphics processing unit |
-
2009
- 2009-09-10 US US12/557,427 patent/US8436854B2/en active Active
-
2010
- 2010-05-28 JP JP2012513316A patent/JP5596136B2/ja active Active
- 2010-05-28 EP EP10722495A patent/EP2435988A2/en not_active Ceased
- 2010-05-28 CN CN201080022750.9A patent/CN102598062B/zh active Active
- 2010-05-28 WO PCT/US2010/036661 patent/WO2010138870A2/en active Search and Examination
- 2010-05-28 KR KR1020117030389A patent/KR101281258B1/ko active IP Right Grant
- 2010-05-31 TW TW099117468A patent/TW201104620A/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6891533B1 (en) * | 2000-04-11 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Compositing separately-generated three-dimensional images |
Also Published As
Publication number | Publication date |
---|---|
US20100302246A1 (en) | 2010-12-02 |
TW201104620A (en) | 2011-02-01 |
KR20120025534A (ko) | 2012-03-15 |
JP2012528410A (ja) | 2012-11-12 |
JP5596136B2 (ja) | 2014-09-24 |
CN102598062A (zh) | 2012-07-18 |
US8436854B2 (en) | 2013-05-07 |
EP2435988A2 (en) | 2012-04-04 |
KR101281258B1 (ko) | 2013-07-03 |
WO2010138870A3 (en) | 2012-04-12 |
WO2010138870A2 (en) | 2010-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102598062B (zh) | 具有延缓的顶点遮影的图形处理单元 | |
US11682158B2 (en) | Foveated rendering | |
US11282162B2 (en) | Tile based computer graphics | |
CN105184730B (zh) | 向图形处理系统中的区片分配图元 | |
CN105321140B (zh) | 向图形处理系统中的区片分配图元 | |
KR100833842B1 (ko) | 3차원 그래픽 엔진에서의 픽셀 래스터라이제이션 처리방법및 그의장치 | |
US11954782B2 (en) | Hybrid render with preferred primitive batch binning and sorting | |
KR20190093579A (ko) | z-컬링 후 중첩 단편들 식별 또는 제거 | |
KR20150041538A (ko) | 영상 처리 장치 및 방법 | |
TW202141417A (zh) | 用於高效多視圖光柵化的方法和裝置 | |
JP7100624B2 (ja) | 優先プリミティブバッチのビニング及びソートを用いたハイブリッドレンダリング | |
US20220319091A1 (en) | Post-depth visibility collection with two level binning | |
TWI646500B (zh) | 根據表面的圖形處理 | |
WO2012114386A1 (ja) | 画像ベクトル化装置、画像ベクトル化方法及び画像ベクトル化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |