具有经扩充顶点高速缓冲存储器的图形处理单元的制作方法

文档序号:6455548阅读:121来源:国知局
专利名称:具有经扩充顶点高速缓冲存储器的图形处理单元的制作方法
技术领域
本发明揭示内容涉及图形处理单元,且更特定来说涉及用图形处理单元处理图
/&
'l豕。
背景技术
图形处理单元是一种用来操纵及显示显示装置上的计算机化图形的专用图形再
现装置。GPU构建有一种提供比典型处理更有效的处理的高度平行结构一用于各种 复杂算法的通用中央处理单元(CPU)。例如,所述复杂算法可对应于三维计算机化 图形的表示。GPU可实施若干基本图形操作,例如形成点、线及三角形,以在显示 装置上形成复杂的三维图像,这比用CPU将图像直接画到所述显示装置上更为迅速。
在视频游戏行业中通常利用顶点着色及片段(像素)着色来确定计算机化图像的 最终表面特性,例如光吸收及扩散、纹理映射、光关联及折射、遮蔽、表面位移及后 处理效应。GPU包含典型的基于着色器的图形核心中的至少三个主要管线级顶点 着色器级、图元设置及内插级及片断着色器级。
将顶点着色器应用于图像的图像几何形状并在所述图像几何形状内产生顶点的 顶点坐标及属性。顶点属性包含(例如)与顶点相关联的色彩、法线及纹理坐标。图 元设置及抑制模块将形成诸如点、线或三角形等图元并基于所述图像几何形状内的顶 点抑制不可见图元。属性设置模块计算所述图像几何形状的图元内的属性的梯度。在 计算出属性梯度值后,可即刻将图像几何形状的图元转变为像素,且可执行隐藏图元 及像素抑制。属性内插器接着基于属性梯度值将像素上的属性内插在图像几何形状的 图元内,并将内插的属性值发送到片断着色器以供图像再现。片断着色器的结果将被 输出到后处理块及帧缓冲器以将经处理图像呈现在显示装置上。
通过沿GUP管线的每一处理级来传递图像几何形状内的顶点的属性。因此,GPU 管线必须移动大量的数据且需要宽内部数据总线以满足数据吞吐量。通过GPU管线 中的处理级中的每一者移动大量数据可对包含大量属性的图元造成瓶颈。另外,属性 梯度设置为计算密集型且可使GUP管线内的图像处理变得缓慢。

发明内容
一般来说,本发明揭示内容涉及用于以使用经扩充顶点高速缓冲存储器的图形处 理单元(GPU)来处理计算机化图像的技术。所述技术包含形成经扩充顶点高速缓冲存储器,其耦合到GPU管线以减少通过所述GUP管线的数据的量。所述GPU管线
接收图像的图像几何形状,并将所述图像几何形状内的顶点的属性存储在经扩充顶点
高速缓冲存储器中。GPU管线仅将识别顶点的顶点坐标以及指示所述顶点中的每一
者的属性在经扩充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值
传递到沿GPU管线的其它处理级。在某些实施例中,GPU管线将顶点坐标临时地存 储在经扩充顶点高速缓冲存储器中。
GPU包含至少三个主要管线级顶点着色器级、图元设置及内插级及片断着色 器级。GPU管线中的图元设置及内插级包含几个子级,其各自使用顶点坐标或顶点 属性来执行。例如,图元设置及图元抑制仅利用顶点坐标来形成图元并丢弃图像所不 必需的一子组图元。然而,属性梯度设置及属性内插利用所述顶点属性。本文中所描 述的技术将计算密集型的属性梯度的设置推迟到恰好在GPU管线的属性内插之前。 可从经扩充顶点高速缓冲存储器检索顶点属性以用于作为GPU管线中的属性内插之 前的最后几个步骤中的一者的属性梯度设置。因此,直到图元设置及图元抑制之后才 将顶点属性引入到GPU管线。
以此方式,GPU管线仅移动图像几何形状的图元、识别所述图元内的顶点中的 每一者的顶点坐标以及为所述图元内的顶点中的每一者指示其属性在经扩充顶点高 速缓冲存储器内的存储位置的顶点高速缓冲存储器索引值。所述技术可大致消除包含 大量属性的图元在GPU管线中的瓶颈。另外,所述技术可通过将属性梯度设置推迟 到恰好在GPU管线中的属性内插之前来改善GPU管线内的图像处理速度。更具体来 说,由于将仅对图像所不必需的一子组图元执行属性梯度设置,因此将GPU管线内 的属性梯度设置一直推迟到图像所不必需的图元子组的抑制之后可大致减少计算及 功率消耗。
在一个实施例中,本发明揭示内容提供一种方法,其包括在包含在GPU中的 GPU管线内接收图像的图像几何形状;及将所述图像几何形状内的顶点的属性存储 在耦合到GPU管线的经扩充顶点高速缓冲存储器中。所述方法进一步包括基于识别 顶点的顶点坐标以及为图像几何形状内的顶点中的每一者指示其属性在经扩充顶点 高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值来处理GPU管线内的图 像。
在另一实施例中,本发明揭示内容提供一种计算机可读媒体,其包括致使可编程 处理器在GPU中所包含的GPU管线内接收图像的图像几何形状并将所述图像几何形 状内的顶点的属性存储在耦合到所述GPU的经扩充顶点高速缓冲存储器中的指令。 所述指令还致使所述可编程处理器基于识别顶点的顶点坐标以及为图像几何形状内 的顶点中的每一者指示其属性在经扩充顶点高速缓冲存储器中的存储位置的顶点高 速缓冲存储器索引值来处理GPU管线内的图像。
在另一实施例中,本发明揭示内容提供一种装置,其包括GPU管线,其接收 图像的图像几何形状内的顶点并处理所述图像以显示在显示装置上;及经扩充顶点高速缓冲存储器,其耦合到所述GPU管线且存储所述图像几何形状内的顶点的属性。 GPU管线基于识别顶点的顶点坐标以及为图像几何形状内的顶点中的每一者指示其 属性在经扩充顶点高速缓冲存储器内的存储位置的顶点高速缓冲存储器索引值来处 理图像。
在又一实施例中,本发明揭示内容提供一种装置,其包括处理装置,其用于接 收图像的图像几何形状;及存储装置,其用于存储所述图像几何形状内的顶点的属性。 所述处理装置基于识别顶点的顶点坐标以及为图像几何形状内的顶点中的每一者指 示属性在所述存储装置内的存储位置的顶点高速缓冲存储器索引值来处理图像。
本文中所揭示的技术可实施于硬件、软件、固件或其任何组合中。如果实施于软 件中,则所述技术可整体地或部分地通过计算机可读媒体来实现,所述计算机可读媒 体包括在由处理器执行时实施本文中所描述的方法中的一者或一者以上的指令。
在附图及下文说明中将阐述一个或一个以上实施例的细节。根据本说明书、附图 且根据权利要求书可易于得出本发明的其它特征、目标及优点。


图1是图解说明包含图形处理单元(GPU)的例示性装置的方块图,所述图形处 理单元实施用于使用经扩充顶点高速缓冲存储器处理计算机化图像的技术。 图2是图解说明常规GPU内的GPU管线的方块图。
图3是图解说明作为来自图1的GPU的例示性实施例的GPU的方块图,其包含 GPU管线及耦合到所述GPU管线的经扩充顶点高速缓冲存储器。
图4是图解说明作为来自图1的GPU的另一例示性实施例的GPU的方块图,其 中包含GPU管线及耦合到所述GPU管线的经扩充顶点高速缓冲存储器。
图5是图解说明处理使用经扩充顶点高速缓冲存储器的GPU内的图像的例示性 操作的流程图。
图6是图解说明以使用经扩充顶点高速缓冲存储器的GPU处理图像的另一例示 性操作的流程图。
图7是更详细地图解说明来自图3的GPU的方块图,其包含用于对图像几何形 状内的顶点进行初始处理的组件。
图8A及8B是图解说明对图像几何形状内的顶点进行初始处理的例示性操作的
、〉存i9阅
具体实施例方式
图1是图解说明包含图形处理单元(GPU) 14的例示性装置IO的方块图,所述 图形处理单元实施使用经扩充顶点高速缓冲存储器来处理计算机化图像的技术。在图 l的实例中,装置10包含能够控制GPU14的操作的控制器12。控制器12还可能够控制装置10的操作。根据本文中所描述的技术,GPU 14包含GPU管线18及耦合到 GPU管线18的经扩充顶点高速缓冲存储器16。并入经扩充顶点高速缓冲存储器16 可减少通过GPU 14内的GPU管线18的数据的量。
GPU 14从装置10内的控制器12接收图像的图像几何形状。所述图像几何形状 可对应于复杂的二维或三维计算机化图形的表示。GPU 14处理图像几何形状以经由 显示装置20将图像效应、背景图像或视频游戏图像呈现给(例如〉装置10的用户。 所述图像可形成为视频帧序列中的视频帧。显示装置20可包括液晶显示器(LCD)、 阴极射线管(CRT)显示器、等离子体显示器或与装置10集成或耦合到装置10的另 一类型的显示装置。
在某些情况下,控制器12可从在装置10内操作的应用程序接收图像几何形状。 例如,装置IO可包括计算装置,所述计算装置基于从内部硬驱动器或可抽换式数据 存储装置接收的图像几何形状来操作视频游戏应用程序。在其它情况下,控制器12 可从在装置IO外部操作的应用程序接收图像几何形状。例如,装置IO可包括计算装 置,所述计算装置基于经由有线或无线网络(例如因特网)从外部服务器接收的图像 几何形状来操作视频游戏应用程序。可经由串流媒体或广播媒体来接收图像几何形 状,所述媒体可以是有线的、无线的或二者的组合。
当装置10的用户触发图像效应、选择背景图像或起始视频游戏时,控制器12 从应用程序接收对应的图像几何形状并将所述图像几何形状发送到GPU 14。 GPU 14 处理图像几何形状以准备对应的图像以用于呈现在显示装置20上。例如,GPU14可 实施诸如形成点、线及三角形等若干图元图形操作以形成三维图像,所述三维图像由 所接收的图像几何形状呈现在显示装置20上。
根据本文中所揭示的技术,GPU管线18接收图像的图像几何形状并将所述图像 几何形状内的顶点的属性存储在经扩充顶点高速缓冲存储器16中。GPU管线仅将识 别顶点的顶点坐标以及指示所述顶点中的每一者的属性在经扩充顶点高速缓冲存储 器16中的存储位置的顶点高速缓冲存储器索引值传递到沿GPU管线18的其它处理 级。在某些实施例中,GPU管线18将顶点坐标临时存储在经扩充顶点高速缓冲存储 器16中。以此方式,GPU管线18不会因在级与级之间传送顶点属性而被阻塞,且 可支持增加的吞吐量。顶点坐标基于(例如)具有X、 Y与Z (宽度、高度与深度) 坐标(其识别顶点在图像几何形状内的位置)及W坐标(其包括图像几何形状的透 视参数)的四维坐标系来识别图像几何形状内的顶点。例如,所述顶点属性可包含与 顶点相关联的色彩、法线及纹理坐标。
GPU14内的GPU管线18包含至少三个主要管线级顶点着色器级、图元设置 及内插级及片断着色器级。GPU管线18中的图元设置及内插级包含几个子级,其各 自使用顶点坐标或顶点属性来执行一种功能。例如,图元设置及图元抑制仅利用顶点 坐标来形成图元并丢弃图像所不必需的一子组图元。图元是最简单类型的几何形状 图,其中包含点、线、三角形及其它多边形,且可用图像几何形状内的一个或一个以上顶点形成。在处理图像的特定帧期间当图元或图元的若干部分在所述图像帧内不可 见(例如,位于对象的背侧上)或是隐藏的(例如,位于另一对象后面或透明)时, 可抑制所述图元或图元的若干部分不予以考虑。
作为另一实例,属性梯度设置及属性内插利用顶点属性来计算属性梯度值并基于 所述属性梯度值来内插属性。本发明揭示内容中所描述的技术将计算密集型的属性梯 度的设置推迟到恰好在GPU管线18中的属性内插之前。可从经扩充顶点高速缓冲存
储器16检索顶点属性以用于作为GPU管线18中的属性内插之前的最后几个步骤中 的一者的属性梯度设置。以此方式,直到图元设置及图元抑制之后才将顶点属性引入 到GPU管线18。
将图像几何形状内的顶点的属性存储在经扩充顶点高速缓冲存储器14中使得 GPU管线18能够仅移动图像几何形状的图元、识别所述图元内的顶点中的每一者的 顶点坐标以及为所述图元内的顶点中的每一者指示其属性在经扩充顶点高速缓冲存 储器内的存储位置的顶点高速缓冲存储器索引值。从GPU管线18中移除大量属性数 据可大致消除包含大量属性的图元在GPU管线18中的瓶颈。另外,将属性梯度设置 推迟到恰好在GPU管线18中的属性内插之前可改善GPU管线18内的图像处理速度。 更具体来说,由于将仅对图像所不必需的一子组图元执行属性梯度设置,因此将GPU 管线18内的属性梯度设置一直推迟到图像所不必需的图元子组的抑制之后可大致减 少计算及功率消耗。
在图1中所图解说明的实施例中,显示装置20包括与装置IO分开的装置。显示 装置20可无线地或以有线连接耦合到装置10。例如,装置10可包括服务器或无线 通信服务提供者的其它计算装置,且计算装置20可包含在无线通信装置内。在此情 况下,作为实例,显示装置20可包括以下装置内的显示器移动无线电电话、卫星 无线电电话、具有无线通信卡的便携式计算机、配备有无线通信能力的个人数字助理 (PDA)或能够进行无线通信的各种装置中的任一者。作为另一实例,装置10可包 括服务器或经由有线网络连接到显示装置20的其它计算装置,且显示装置20可包含 在有线通信装置或不主要用来通信的装置内。
在其它实施例中,显示装置20可集成在装置10内。例如,装置10可包括无线 通信装置且显示装置20可包括所述无线通信装置内的显示器。作为另一实例,装置 10可包括桌上型或笔记型计算机,且显示装置20可包括所述计算机的专用监视器或 显示器。装置IO还可包括有线通信装置或不主要用来进行通信的装置,且显示装置 20可包括所述装置内的显示器。例如,装置10可包括包含显示装置20的PDA或手 持式视频游戏装置。因此,在各种实施例中,计算机化视频图像可从远程装置或从本 地装置获得,所述装置中的每一者均为产生视频或视频对象的视频服务器或检索所存 储的视频或视频对象的视频档案。
图2图解说明常规GPU21内的GPU管线22的方块图。常规GPU 21可包含在 大致类似于来自图1的装置10的装置内。GPU管线22包含命令引擎24、顶点着
16色器26、图元设置及抑制模块28、属性梯度设置模块30、光栅化器31、隐藏图元及 像素抑制模块32、属性内插器34、片断着色器36及后处理器38。命令引擎24从其 中驻留有常规GPU21的装置的控制器接收图像的图像几何形状及再现命令。所述图 像几何形状可对应于复杂的二维或三维计算机化图形的表示。命令引擎24沿GPU管 线22将图像几何形状及再现命令传递到其它处理级。
GPU管线22包含至少三个主要管线级顶点着色器级、图元设置及内插级以及 片断着色器级。顶点着色器26应用于图像几何形状并在所述图像几何形状内的顶点 处确定图像的表面特性。以此方式,顶点着色器26产生图像几何形状内的顶点中的 每一者的顶点坐标及属性。顶点坐标基于(例如)具有X、 Y与Z (宽度、高度与深 度)坐标(其识别顶点在图像几何形状内的位置)及W坐标(其包括图像几何形状 的透视参数)的四维坐标系来识别图像几何形状内的顶点。例如,所述顶点属性可包 含与顶点相关联的色彩、法线及纹理坐标。常规GPU 21内的顶点着色器26还可包 含集成式顶点高速缓冲存储器。
GPU管线26中的图元设置及内插级包含子级、图元设置及抑制模块28、属性 梯度设置模块30、光栅化器31、隐藏图元及像素抑制模块32及属性内插器34,其 各自使用顶点坐标或顶点属性来处理图像几何形状。为使GPU管线22中的其它处理 级接收必需的输入,沿GPU管线22传递图像几何形状内的所有顶点的顶点坐标及顶 点属性。因此,GPU管线22必须移动大量数据,这需要常规GPU 21包含宽内部数 据总线以满足数据吞吐量。另外,在GPU管线22的处理级中的每一者之间包含先进 先出(FIFO)缓冲器及其它类型的缓冲器以通过存储顶点属性来平衡所述管线级。
图元设置及抑制模块28形成具有图像几何形状内的一个或一个以上顶点的图 元。图元是最简单类型的几何形状图且可包含点、线、三角形及其它多边形。图元设 置及抑制模块28还可通过使用图元内的顶点的XY坐标执行剪裁及背面剔除来抑制 图元。当图元或图元的若干部分在图像的特定帧内不可见时,在处理所述图像帧期间 剪裁及背面剔除抑制所述图元及图元的若干部分不予以考虑。例如,所述图元及图元 的若干部分可位于图像帧内的对象的背侧上。图元设置及抑制模块28可忽视与图像 几何形状内的所抑制图元相关联的顶点的属性。通过GPU管线22中的处理级中的每 一者移动顶点属性可对包含大量属性的图元造成瓶颈。
属性梯度设置模块30计算与所述图像几何形状的图元相关联的属性的梯度。属 性梯度包括沿水平(X)方向或垂直(Y)方向移动的图元内的第一像素处的属性值 与第二像素处的属性值之间的差别。属性梯度设置模块30利用顶点属性来计算属性 梯度。属性梯度设置处理步骤为计算密集型且可使GUP管线22内的图像处理变得缓 慢。属性梯度设置速率很大程度上取决于与图元相关联的顶点属性的数目,而与图元 中所包含的像素数目无关。
在计算出属性梯度值后,光栅化器31即刻基于图元内的顶点中的每一者的XY 坐标以及所述图元中所包含的像素数目将图像几何形状的图元转换为像素。隐藏的图
17元及像素抑制模块32基于图元内的顶点的Z坐标使用早期深度及模版测试来抑制隐
藏图元及图元内的隐藏像素。当图元或图元内的像素位于像素的特定帧内的另一对象 后面或在所述像素帧内透明时,可将所述图元或图元内的像素视为隐藏,并在处理所 述像素帧期间将其抑制不予以考虑。
属性内插器34基于属性梯度值将像素上的属性内插在图元内。属性内插器34 可忽视与图像几何形状内与所抑制图元相关联的顶点的属性。接着将内插的属性值输 入到片断着色器36以执行图元的像素再现。片断着色器36确定图像几何形状的图元 内的像素处的图像的表面特性。片断着色器36的结果将输出到后处理器38以将经处 理的图像呈现在显示装置上。
图3是图解说明作为来自图1的GPU 14的例示性实施例的GPU 14A的方块图, 其中包含GPU管线18A及耦合到GPU管线18A的经扩充顶点高速缓冲存储器16A。 利用GPU 14A内的经扩充顶点高速缓冲存储器16A可减少通过GPU 14A内的GPU 管线18A的数据的量。在所图解说明的实施例中,GPU管线18A包含命令引擎42、 顶点着色器44、图元设置及抑制模块46、光栅化器48、隐藏图元及图像抑制模块50、 属性梯度设置模块52、属性内插器54、片断着色器56及后处理器58。
命令引擎42从装置10的控制器12接收图像的图像几何形状及再现命令。图像 几何形状可对应于复杂的二维或三维计算机化图形的表示。命令引擎42将图像几何 形状内的不包含在经扩充顶点高速缓冲存储器16A中的顶点("未命中顶点")的信 息传递到顶点着色器44。命令引擎42将图像几何形状内已经包含在经扩充顶点高速 缓冲存储器16A中的顶点("命中顶点")的信息传递给图元设置及抑制模块46。 下文更详细地描述对图像几何形状内的命中及未命中顶点的初始处理。
GPU管线18A包含至少三个主要管线级顶点着色器级、图元设置及内插级以 及片断着色器级。顶点着色器44应用于图像几何形状内的未命中顶点并在图像几何 形状内的未命中顶点处确定图像的表面特性。以此方式,顶点着色器44产生图像几 何形状内的未命中顶点中的每一者的顶点坐标及属性。顶点着色器44接着将未命中 顶点的属性存储在经扩充顶点高速缓冲存储器16A中。由于图像几何形状内的命中顶 点中的每一者的顶点坐标及属性先前已产生及存储在经扩充顶点高速缓冲存储器 16A中,因此不将顶点着色器44应用于所述命中顶点中的每一者。
顶点坐标基于(例如)具有X、 Y与Z (宽度、高度与深度)坐标(其识别顶点 在图像几何形状内的位置)及W坐标(其包括图像几何形状的透视参数)的四维坐 标系来识别图像几何形状内的顶点。例如,所述顶点属性可包含与顶点相关联的色彩、 法线及纹理坐标。经扩充顶点高速缓冲存储器16A可容易地经配置以用于不同数目的 属性及图元类型。接着将指示图像几何形状中的命中及未命中顶点两者的顶点坐标及 属性在经扩充顶点高速缓冲存储器16A内的存储位置的顶点高速缓冲存储器索引值 置于定位在命令引擎42与图元设置及抑制模块46之间的FIFO缓冲器(未显示)中。
GPU管线18A中的图元设置及内插级包含子级、图元设置及抑制模块46、光
18栅化器48、隐藏图元及像素抑制模块50、属性梯度设置模块52及属性内插器54, 其各自使用顶点坐标或顶点属性来处理图像几何形状。例如,图元设置及抑制模块 46、光栅化器48及隐藏图元及像素抑制模块50仅利用顶点坐标。然而,属性梯度设 置模块52及属性内插器54利用顶点属性。因此,将属性梯度设置模块52推迟到恰 好在GPU管线18A中的属性内插器54之前。作为用属性内插器54内插属性之前GPU 管线18A中的最后几个步骤中的一者,可从属性梯度设置模块52的经扩充顶点高速 缓冲存储器16A检索顶点属性。以此方式,直到隐藏图元及像素抑制模块50之后且 恰好在属性内插器54之前才将顶点属性引入到GPU管线18A,从而提供显著的效率 增加。
将图像几何形状内的顶点的顶点属性存储在经扩充顶点高速缓冲存储器16A中 可防止大量数据通过GPU管线18A,从而减小了 GPU 18A中所包含的内部数据总线 的宽度。减少数据移动量还可减少GPU 18A内的功率消耗。另外,除了定位在命令 引擎42与图元设置及抑制模块46之间的FIFO缓冲器之外,可将定位在处理级中的 每一者之间的FIFO缓冲器或其它类型的缓冲器从GUP管线18A中移除以减小装置 10内GPU 14A的面积。
图元设置及抑制模块46从FIFO缓冲器接收图像几何形状中的顶点中的每一者 的属性的顶点高速缓冲存储器索引值。图元设置及抑制模块46接着使用所述顶点高 速缓冲存储器索引值检索图像几何形状内的顶点中的每一者的顶点坐标。图元设置及 抑制模块46用图像几何形状内的一个或一个以上顶点形成图元。图元是最简单类型 的几何形状图且可包含点、线、三角形及其它多边形。
图元设置及抑制模块46还可通过使用图像几何形状内的顶点的XY坐标执行剪 裁及背面剔除来抑制图元。当图元或图元的若干部分在图像的特定帧内不可见时,在 处理所述图像帧期间剪裁及背面剔除抑制所述图元及图元的若干部分不予以考虑。例 如,所述图元及图元的若干部分可位于图像帧内的对象的背侧上。图元设置及抑制模 块46可请求经扩充顶点高速缓冲存储器16A为与所抑制的图元相关联的属性释放存 储空间。仅移动图像几何形状的图元、与所述图元相关联的顶点坐标以及通过GPU 管线18A的图元内的顶点中的每一者的顶点高速缓冲存储器索引值大致消除了包含 大量属性的图元在GPU管线18A中的瓶颈。
光栅化器48基于图像几何形状的图元内的顶点的XY坐标及所述图元中包含的 像素数目将所述图元转换为像素。隐藏的图元及像素抑制模块50基于图元内的顶点 的Z坐标使用早期深度及模版测试来抑制隐藏图元及图元内的隐藏像素。如果隐藏图 元及像素抑制模块50抑制图元内的所有像素,则自动抑制所述图元。当图元或像素 内的图元位于像素的特定帧内的另一对象后面或在所述像素帧内透明时,可将所述图 元或图元内的像素视为隐藏,并在处理所述像素帧期间将其抑制不予以考虑。隐藏图 元及像素抑制模块50可请求经扩充顶点高速缓冲存储器16A为与所抑制的图元相关 联的属性释放存储空间。通常,占大百分比的图元是通过图元设置及抑制模块46所执行的剪裁及背面剔 除以及隐藏图元及像素抑制模块50所实施的早期深度及模版测试来抑制的。因此, 将属性梯度设置一直推迟到所有图元抑制均被执行之后消除了与图像所不必需的一 子组图元相关联的属性的属性梯度计算。
属性梯度设置模块52使用图元内的顶点中的每一者的顶点高速缓冲存储器索引 值从经扩充顶点高速缓冲存储器16A中检索顶点属性。属性梯度设置模块52计算与 图像几何形状的图元相关联的属性的梯度。属性梯度包括沿水平(X)方向或垂直(Y) 方向移动的图元内的第一像素处的属性值与第二像素处的属性值之间的差别。在属性 梯度设置模块52计算图像几何形状的图元内所有顶点的属性的梯度之后,属性梯度 设置模块52可请求经扩充顶点高速缓冲存储器16A为所述图元内的顶点的属性释放 存储空间。
在已计算出属性梯度值后,属性内插器54即刻基于所述属性梯度值将像素上的 属性内插在图元内。接着将内插的属性值输入到片断着色器56以执行图元的像素再 现。片断着色器56确定图像几何形状的图元内的像素处的图像的表面特性。片断着 色器56的结果将被输出到后处理器58以将经处理图像呈现在显示装置20上。
将计算密集型属性梯度设置处理步骤推迟到恰好在GPU管线18A中的属性内插 之前可改善GPU管线18A内的图像处理速度且减少GPU14A内的功率消耗。另外, 将属性梯度设置处理步骤推迟到恰好在GPU管线18A中的属性内插之前消除了对 GPU管线18A内的处理级之间的存储缓冲器的需要以补偿由于大量数据而引起的光 栅化器等待时间及图元抑制处理步骤。所推迟的属性梯度设置模块52可与属性内插 器54共享算术逻辑单元(ALU) 。 GPU 18A可利用较少栅极或改善当前栅极的效率。
在某些情况下,可不将顶点着色器44应用于图像几何形状内的未命中顶点。可 假定在GPU管线18A外部确定图像几何形状内所有顶点的顶点坐标及属性。因此, 用未命中顶点形成的图元不需要顶点着色器44来计算未命中顶点的属性。在此情况 下,经扩充顶点高速缓冲存储器16A可作为经扩充顶点缓冲器而操作。命令引擎42 可指派识别属性在经扩充顶点缓冲器内的存储位置的顶点索引值并将图像几何形状 内的顶点中的每一者的预定顶点坐标及属性发送到所述经扩充顶点缓冲器。
图4是图解说明作为来自图1的GPU 14的另一例示性实施例的GPU 14B的方 块图,其中包含GPU管线18B及耦合到GPU管线18B的经扩充顶点高速缓冲存储 器16B。在所图解说明的实施例中,GPU管线18B包含命令引擎62、顶点着色器 64、图元设置及抑制模块66、光栅化器68、隐藏图元及像素抑制模块70、属性梯度 设置模块72、属性内插器74、片断着色器76及后处理器78。图4中所图解说明的 GPU 14B可大致类似于图3中所图解说明的GPU 14A而操作,除了对图像几何形状 中的顶点的初始处理之外。
命令引擎62从装置10的控制器12接收图像的图像几何形状及再现命令。命令 引擎62沿GPU管线18B将图像几何形状及再现命令传递到其它处理级。换句话说,
20命令引擎62将图像几何形状内的所有顶点的信息传递到顶点着色器64。
在本发明实施例中,将顶点着色器64应用于图像几何形状内的所有顶点。顶点 着色器64应用于图像几何形状并确定所述图像几何形状内的顶点处的图像表面特 性。以此方式,顶点着色器64产生图像几何形状内的顶点中的每一者的顶点坐标及 属性。顶点着色器64接着仅将属性存储在经扩充顶点高速缓冲存储器16B中。顶点 着色器64沿GPU管线i8B传递顶点坐标及为图像几何形状中的顶点中的每一者指示 其属性在经扩充顶点高速缓冲存储器16B内的存储位置的顶点高速缓冲存储器索引 值。
由于顶点着色器64将图像几何形状中的顶点的顶点坐标及顶点高速缓冲存储器 索引值直接传递给图元设置及抑制模块66,因此可将定位在处理级中的每一者之间 的所有FIFO缓冲器或其它类型的缓冲器从GPU管线18B中移除。图元设置及抑制 模块66用图像几何形状内的一个或一个以上顶点形成图元。图元设置及抑制模块66 还可通过使用图像几何形状内的顶点的XY坐标执行剪裁及背面剔除来抑制图元。图 元设置及抑制模块46可请求经扩充顶点高速缓冲存储器16B为与所抑制的图元相关 联的属性释放存储空间。
光栅化器68基于图像几何形状的图元内的顶点的XY坐标及所述图元中包含的 像素数目将所述图元转换为像素。隐藏的图元及像素抑制模块70基于图元内的顶点 的Z坐标使用早期深度及模版测试来抑制隐藏图元及图元内的隐藏像素。隐藏图元及 像素抑制模块70可请求经扩充顶点高速缓冲存储器16B为与所抑制的图元相关联的 属性释放存储空间。
属性梯度设置模块72使用图元内的顶点中的每一者的顶点高速缓冲存储器索引 值从经扩充顶点高速缓冲存储器16B中检索顶点属性。属性梯度设置模块72计算与 图像几何形状的图元相关联的属性的梯度。在属性梯度设置模块72计算图像几何形 状的图元内所有顶点的属性的梯度之后,属性梯度设置模块72可请求经扩充顶点高 速缓冲存储器16B为所述图元内的顶点的属性释放存储空间。
在已计算出属性梯度值后,属性内插器74即刻基于所述属性梯度值将像素上的 属性内插在图元内。接着将内插的属性值输入到片断着色器76以执行图元的像素再 现。片断着色器76确定图像几何形状的图元内的像素处的图像表面特性。片断着色 器76的结果将被输出到后处理器78以将经处理图像呈现在显示装置20上。
图5是图解说明使用经扩充顶点高速缓冲存储器处理GPU内的图像的例示性操 作的流程图。将参照来自图1的GPU 14在本文中描述所述操作。可在装置10的制 造期间在GPU 14内形成经扩充顶点高速缓冲存储器16并将其耦合到GPU管线18 (80)。经扩充顶点高速缓冲存储器16可容易地经配置以用于不同数目的属性及图 元类型。
GPU14从装置10的控制器12接收图像的图像几何形状及再现命令(82)。图 像几何形状可对应于复杂的二维或三维计算机化图形的表示。GPU 14将图像几何形状及再现命令发送到GPU管线18以处理待显示在连接到装置10的显示装置20上的 图像。GPU管线18将图像几何形状内的顶点的属性存储在经扩充顶点高速缓冲存储 器16中(84)。在某些实施例中,GPU管线18将图像几何形状内的顶点的顶点坐 标临时存储在经扩充顶点高速缓冲存储器16中。
GPU管线18接着将识别顶点的顶点坐标以及指示所述顶点中的每一者的属性在 经扩充顶点高速缓冲存储器16中的存储位置的顶点高速缓冲存储器索引值发送到沿 GPU管线18的其它处理级(86) 。 GPU管线18基于图像几何形状中的顶点中的每 一者的顶点坐标及顶点高速缓冲存储器索引值来处理图像(88)。
图6是图解说明以使用经扩充顶点高速缓冲存储器的GPU来处理图像的另一例 示性操作的流程图。本文中将参照来自图3的GPU 14A来描述所述操作。可在装置 10的制造期间在GPU 14A内形成经扩充顶点高速缓冲存储器16A并将其耦合到GPU 管线18A (90)。经扩充顶点高速缓冲存储器16A可容易地经配置以用于不同数目的 属性及图元类型。
命令引擎42从装置10的控制器12接收图像的图像几何形状及再现命令(92)。 图像几何形状可对应于复杂的二维或三维计算机化图形的表示。命令引擎42将图像 几何形状内的不包含在经扩充顶点高速缓冲存储器16A中的顶点("未命中顶点") 的信息传递到顶点着色器44。命令引擎42将图像几何形状内已经包含在经扩充顶点 高速缓冲存储器16A中的顶点("命中顶点")的信息传递给图元设置及抑制模块 46。
顶点着色器44应用于图像几何形状内的未命中顶点并产生图像几何形状内的未 命中顶点中的每一者的顶点坐标及属性(94)。顶点着色器44接着将未命中顶点的 顶点坐标及属性存储在经扩充顶点高速缓冲存储器16A中(96)。由于图像几何形状
内的命中顶点中的每一者的顶点坐标及属性先前已产生及存储在经扩充顶点高速缓 冲存储器16A中,因此不将顶点着色器44应用于所述命中顶点中的每一者。接着将 指示图像几何形状中的命中及未命中顶点两者的属性在经扩充顶点高速缓冲存储器 16A内的存储位置的顶点高速缓冲存储器索引值置于定位在命令引擎42与图元设置 及抑制模块46之间的FIFO缓冲器中。
图元设置及抑制模块46从FIFO缓冲器接收图像几何形状中的顶点中的每一者 的属性的顶点高速缓冲存储器索引值。图元设置及抑制模块46接着使用所述顶点高 速缓冲存储器索引值检索图像几何形状内的顶点中的每一者的顶点坐标(98)。图元 设置及抑制模块46用图像几何形状内的一个或一个以上顶点形成图元,且基于图像 几何形状内的顶点的XY坐标来抑制图元(100)。图元设置及抑制模块46可请求经 扩充顶点高速缓冲存储器16A为与所抑制的图元相关联的属性释放存储空间。
光栅化器48基于图像几何形状的图元内的顶点的XY坐标及所述图元中包含的 像素数目将所述图元转换为像素(102)。隐藏图元及像素抑制模块50基于图元内的 顶点的Z坐标来抑制所述图像的隐藏图元及图元内的隐藏像素(104)。隐藏图元及像素抑制模块50可请求经扩充顶点高速缓冲存储器16A为与所抑制的图元相关联的 属性释放存储空间。
属性梯度设置模块52使用图元内的顶点的顶点高速缓冲存储器索引值从经扩充 顶点高速缓冲存储器16A中检索顶点属性(106)。属性梯度设置模块52计算与图像 几何形状的图元相关联的属性的梯度(108)。在属性梯度设置模块52计算图像几何 形状的图元内所有顶点的属性的梯度之后,属性梯度设置模块52可请求经扩充顶点 高速缓冲存储器16为所述图元内的顶点的属性释放存储空间。在已计算出属性梯度 值后,属性内插器54即刻基于所述属性梯度值将像素上的属性内插在图元内(110)。 片断着色器56基于内插的属性值执行对图像几何形状的图元的像素再现(112)。片 断着色器56确定图像几何形状的图元内的像素处的图像表面特性。片断着色器56的 结果将被输出到后处理器58以将经处理图像呈现在耦合到装置10的显示装置20上。
图7是更详细地图解说明来自图3的GPU 14A的方块图,其中包含用于对图像 几何形状内的顶点进行初始处理的组件。在所图解说明的实施例中,GPU管线18A 包含顶点决策模块120、参考计数更新模块122及定位在命令引擎42与图元设置 及抑制模块46之间的图元汇编器124。另外,GPU管线18A包含在顶点决策模块120 与顶点着色器44之间的未命中顶点模块126。经扩充顶点高速缓冲存储器16A包含 参考计数存储装置128及存储释放模块129。
命令引擎42从装置10的控制器12接收图像的图像几何形状及再现命令。命令 引擎42接着将图像几何形状内的顶点的顶点索引发送给顶点决策模块120。可由装 置10的控制器12或由命令引擎42来产生图像几何形状内的顶点中的每一者的顶点 索引。顶点决策模块120基于对应的顶点索引来确定图像几何形状内的顶点中的每一 者是否包含在经扩充顶点高速缓冲存储器16A中。图像几何形状内的不包含在经扩充 顶点高速缓冲存储器16A中的顶点在本文中称为"未命中顶点"。图像几何形状内已 包含在经扩充顶点高速缓冲存储器16A中的顶点在本文中称为"命中顶点"。
在命中顶点的情况下,顶点决策模块120将指示命中顶点中的每一者的顶点坐标 及属性在经扩充顶点高速缓冲存储器16A中的存储位置的顶点高速缓冲存储器索引 值提供给GPU管线18A内的参考计数更新模块122。在未命中顶点的情况下,顶点 决策模块120将经扩充顶点高速缓冲存储器16A中的存储空间的请求发送到未命中顶 点中的每一者的未命中顶点模块126。未命中顶点模块126向未命中顶点中的每一者 指派指示未命中顶点的顶点坐标及属性在经扩充顶点高速缓冲存储器16A中的存储 位置的顶点高速缓冲存储器索引值。顶点决策模块120接着将指示未命中顶点的顶点 坐标及属性在经扩充顶点高速缓冲存储器16A中的存储位置的顶点高速缓冲存储器 索引值提供给GPU管线18A内的参考计数更新模块122。
未命中顶点模块126读取未命中顶点的信息并执行相关的格式转换。例如,所述 格式转换可包括整数到浮点转换、16位浮点到32位浮点转换或其它类型的格式转换。 未命中顶点模块126基于未命中顶点的信息形成顶点线程,并将所述顶点线程发送到
23顶点着色器44。顶点着色器44应用于未命中顶点中的每一者并产生图像几何形状内
的未命中顶点的顶点坐标及属性。顶点着色器44接着将未命中顶点的顶点坐标及属 性存储在经扩充顶点高速缓冲存储器16A中所指派的存储位置处。
在接收到未命中顶点的顶点高速缓冲存储器索引值后,参考计数更新模块122 即刻将未命中顶点中的每一者在参考计数存储装置128内的参考计数初始化为零。参 考计数更新模块122接着使图像几何形状内的所有顶点(命中及未命中)在参考计数 存储装置128内的参考计数递增1。
图元汇编器124用图像几何形状内的一个或一个以上顶点形成初步图元。当图元 汇编器124汇编其中每一顶点仅使用一次的初步图元时,所述顶点在参考计数存储装 置128内的参考计数不递增且保持不变。当图元汇编器124汇编其中顶点中的至少一 者使用一次以上的初步图元时,图元汇编器124在每次重新使用所述至少一个顶点时 均使所述顶点在参考计数存储装置128内的参考计数递增1。例如,当顶点在图元中 使用两次时,所述顶点在参考计数存储装置128内的参考计数将递增1以使参考计数 等于2。图元汇编器124将初步图元内的顶点的顶点高速缓冲存储器索引值置于定位 在图元汇编器124与图元设置及抑制模块46之间的FIFO缓冲器中。
图元设置及抑制模块46从FIFO缓冲器接收图像几何形状中的顶点中的每一者 的属性的顶点高速缓冲存储器索引值。图元设置及抑制模块46接着使用所述顶点高 速缓冲存储器索引值从经扩充顶点高速缓冲存储器16A检索图像几何形状内的顶点 中的每一者的顶点坐标。更具体来说,图元设置及抑制模块46可利用顶点高速缓冲 存储器索引值来检验是否既定图元内的所有顶点均在经扩充顶点高速缓冲存储器 16A中可用。如果顶点没有准备就绪,则图元设置及抑制模块46将等待。在顶点已 准备就绪后,图元设置及抑制模块即刻基于对应的顶点高速缓冲存储器索引值来读取 图元内的顶点中的每一者的顶点坐标。
图元设置及抑制模块46基于图像几何形状内的顶点中的每一者的所检索顶点坐 标来处理图像。图元设置及抑制模块46用图像几何形状内的一个或一个以上顶点创 建图元,且基于图像几何形状内的顶点的XY坐标来抑制图元。当图元设置及抑制模 块46抑制图像几何形状的图元时,图元设置及抑制模块46向存储释放模块129发送 为所抑制的图元内的顶点的属性释放经扩充顶点高速缓冲存储器16A中的存储空间 的请求。在接收到所述请求后,存储释放模块129即刻使所抑制的图元内的顶点在参 考计数存储装置128内的参考计数递减1。如果参考计数存储装置128内的参考计数 递减到零,则存储释放模块129为所抑制的图元内的顶点的属性释放经扩充顶点高速 缓冲存储器16A中的存储空间。
图元设置及抑制模块46接着沿GPU管线18A传递图像几何形状中的顶点中的 每一者的顶点坐标及顶点高速缓冲存储器索引值。GPU管线18A内的处理级如上文 所描述基于图像几何形状内的顶点的顶点坐标来处理图像。例如,隐藏图元及像素抑 制模块50基于图元内的顶点的Z坐标使用早期深度及模版测试来抑制隐藏图元及图元内的隐藏像素。大致类似于图元设置及抑制模块46,当隐藏图元及像素抑制模块
50抑制图像几何形状的图元时,隐藏图元及像素抑制模块50向存储释放模块129发 送为所抑制的图元内的顶点的属性释放经扩充顶点高速缓冲存储器16A中的存储空 间的请求。在接收到所述请求后,存储释放模块129即刻使所抑制的图元内的顶点在 参考计数存储装置128内的参考计数递减1。如果参考计数存储装置128内的参考计 数递减到零,则存储释放模块129为所抑制的图元内的顶点的属性释放经扩充顶点高 速缓冲存储器16A中的存储空间。
属性梯度设置模块52使用图元内的顶点的顶点高速缓冲存储器索引值从经扩充 顶点高速缓冲存储器16A中检索顶点属性。属性梯度设置模块52基于图像几何形状 内的顶点中的每一者的所检索属性来处理图像。属性梯度设置模块52计算与图像几 何形状的图元相关联的属性的梯度。在属性梯度设置模块52计算图像几何形状的图 元内所有顶点的属性的梯度之后,属性梯度设置模块52向存储释放模块129发送为 所述图元内的顶点的属性释放经扩充顶点高速缓冲存储器16A中的存储空间的请求。 在接收到所述请求后,存储释放模块129即刻使图元内的顶点在参考计数存储装置 128内的参考计数递减1。如果参考计数存储装置128内的参考计数递减到零,则存 储释放模块129为图元内的顶点的属性释放经扩充顶点高速缓冲存储器16A中的存储 空间。GPU管线18A内的剩余处理级如上文所描述基于图像几何形状内的顶点的顶 点坐标及属性来处理图像。
图8A及8B是图解说明图像几何形状内的顶点的初始处理的例示性操作的流程 图。本文中将参照来自图7的GPU 14A来描述所述操作。可在装置10的制造期间在 GPU 14A内形成包含参考计数存储装置128及存储释放模块129的经扩充顶点高速缓 冲存储器16A并将其耦合到GPU管线18A。参考计数存储装置128存储图像几何形 状内的顶点中的每一者的参考计数。存储释放模块129管理经扩充顶点高速缓冲存储 器16A中的存储空间的分配及释放,以及参考计数存储装置128内的参考计数的更新。
命令引擎42从装置10的控制器12接收图像的图像几何形状及再现命令。顶点 决策模块120从命令引擎42接收图像几何形状内的顶点的顶点索引(130)。顶点决 策模块120基于对应的顶点索引来确定图像几何形状内的顶点中的每一者是否包含 在经扩充顶点高速缓冲存储器16A中(131)。图像几何形状内的不包含在经扩充顶 点高速缓冲存储器16A中的顶点在本文中称为"未命中顶点"。图像几何形状内已包 含在经扩充顶点高速缓冲存储器16A中的顶点在本文中称为"命中顶点"。
在命中顶点的情况下,顶点决策模块120将命中顶点中的每一者的顶点坐标及属 性在经扩充顶点高速缓冲存储器16A中的存储位置的顶点高速缓冲存储器索引值提 供给GPU管线18A内的参考计数更新模块122 (136)。在未命中顶点的情况下,顶 点决策模块120将经扩充顶点高速缓冲存储器16A中的存储空间的请求发送到未命中 顶点中的每一者的未命中顶点模块126 (132)。未命中顶点模块126向未命中顶点 中的每一者指派指示未命中顶点的顶点坐标及属性在经扩充顶点高速缓冲存储器
2516A中的存储位置的顶点高速缓冲存储器索引值(134)。顶点决策模块120接着将 指示未命中顶点的顶点坐标及属性在经扩充顶点高速缓冲存储器16A中的存储位置 的顶点高速缓冲存储器索引值提供给GPU管线18A内的参考计数更新模块122 (136)。
未命中顶点模块126读取未命中顶点的信息并执行相关的格式转换。未命中顶点 模块126基于未命中顶点的信息形成顶点线程,并将所述顶点线程发送到顶点着色器 44 (138)。顶点着色器44应用于未命中顶点中的每一者并产生图像几何形状内的未 侖中顶点的顶点坐标及属性(140)。顶点着色器44接着将未命中顶点的顶点坐标及 属性存储在经扩充顶点高速缓冲存储器16A中所指派的存储位置处(142)。
在接收到未命中顶点的顶点高速缓冲存储器索引值后,参考计数更新模块122 即刻将参考计数存储装置128内的未命中顶点中的每一者的参考计数初始化为零。参 考计数更新模块122接着使参考计数存储装置128内的图像几何形状内的所有顶点 (命中及未命中)的参考计数递增l (146)。
图元汇编器124用图像几何形状内的一个或一个以上顶点形成初步图元(148)。 当图元汇编器124汇编其中每一顶点仅使用一次的初步图元时,参考计数存储装置 128内所述顶点的参考计数不递增且保持不变。当图元汇编器124汇编其中顶点中的 至少一者使用一次以上的初步图元时,图元汇编器124在每次重新使用所述至少一个 顶点时均使参考计数存储装置128内所述顶点的参考计数递增1 (150)。图元汇编 器124将初步图元内的顶点的顶点高速缓冲存储器索引值置于定位在图元汇编器124 与图元设置及抑制模块46之间的FIFO缓冲器中(152)。
图元设置及抑制模块46从FIFO缓冲器接收图像几何形状中的顶点中的每一者 的属性的顶点高速缓冲存储器索引值。图元设置及抑制模块46接着使用所述顶点高 速缓冲存储器索引值检索图像几何形状内的顶点中的每一者的顶点坐标(154)。图 元设置及抑制模块46基于图像几何形状内的顶点中的每一者的所检索顶点坐标来处 理图像(156)。在抑制图像几何形状的图元后,图元设置及抑制模块46即刻向存储 释放模块129发送为所抑制的图元内的顶点的属性释放经扩充顶点高速缓冲存储器 16A中的存储空间的请求。在接收到所述请求后,存储释放模块129即刻使参考计数 存储装置128内所抑制的图元内的顶点的参考计数递减1 (158)。如果参考计数存 储装置128内的参考计数递减到零,则存储释放模块129为所抑制的图元内的顶点的 属性释放经扩充顶点高速缓冲存储器16A中的存储空间(160)。
图元设置及抑制模块46接着沿GPU管线18A传递图像几何形状中的顶点中的 每一者的顶点坐标及顶点高速缓冲存储器索引值。GPU管线18A内的处理级如上文 所描述基于图像几何形状内的顶点的顶点坐标来处理图像。属性梯度设置模块52使 用图元内的顶点的顶点高速缓冲存储器索引值从经扩充顶点高速缓冲存储器16A中 检索顶点属性(162)。属性梯度设置模块52基于图像几何形状内的顶点中的每一者 的所检索属性来处理图像(164)。在计算出图像几何形状的图元内所有顶点的属性的梯度后,属性梯度设置模块 52即刻向存储释放模块129发送为所述图元内的顶点的属性释放经扩充顶点高速缓
冲存储器16A中的存储空间的请求。在接收到所述请求后,存储释放模块129即刻使 图元内的顶点在参考计数存储装置128内的参考计数递减1 (166)。如果参考计数 存储装置128内的参考计数递减到零,则存储释放模块129为图元内的顶点的属性释 放经扩充顶点高速缓冲存储器16A中的存储空间(168)。
已描述了大量实施例。然而,可对这些实例作出各种修改,且还可将本文所呈现 的原理应用于其它方面。如本文中所描述的方法可在硬件、软件及/或固件中实施。 此类方法的各种任务可实施为可由一个或一个以上逻辑元件(例如微处理器、嵌入式 控制器或IP核心)阵列执行的指令集。在一个实例中,布置一个或一个以上此类任 务以用于在经配置以控制个人通信装置(例如,蜂窝式电话)的各种装置的操作的移 动台调制解调器芯片或芯片组内执行。
本发明揭示内容中所描述的技术可实施于通用微处理器、数字信号处理器 (DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的逻辑 装置内。如果实施于软件中,则这些技术可作为指令而包含于例如以下的计算机可读 媒体上随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储 器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器等等。所述 指令致使一个或一个以上处理器执行本发明揭示内容中所描述的功能的某些方面。 作为进一步实例,可将一实施例部分地或整个地实施为硬接线电路、制造成专用
集成电路的电路配置,或实施为载入到非易失性存储装置中的固件程序,或实施为作 为机器可读代码从数据存储媒体载入或载入到所述数据存储媒体中的软件程序,此代
码是可由逻辑元件阵列(例如微处理器或其它数字信号处理单元)执行的指令。所述 数据存储媒体可以是存储元件阵列,例如半导体存储器(其可包含但不限于动态或静 态RAM、 ROM及/或快闪RAM)或铁电存储器、双向存储器、聚合物存储器或相变 存储器;或者是诸如磁性或光学磁盘等磁盘媒体。
在本发明揭示内容中,已描述了用于以使用经扩充顶点高速缓冲存储器的GPU 来处理图像的各种技术。所述技术包含在GPU管线外部创建经扩充顶点高速缓冲存 储器以减少通过所述GPU管线的数据的量。根据本文中所揭示的技术,GPU管线接 收图像的图像几何形状,并将图像几何形状内的顶点的属性存储在经扩充顶点高速缓 冲存储器中。在某些实施例中,GPU管线将顶点坐标临时存储在经扩充顶点高速缓 冲存储器中。GPU管线仅将识别顶点的顶点坐标以及指示所述顶点中的每一者的属 性在经扩充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值传递到 沿GPU管线的其它处理级。
另外,本文中所描述的技术将计算密集型的属性梯度的设置推迟到恰好在GPU 管线中的属性内插之前。可从经扩充顶点高速缓冲存储器中检索顶点属性以用于作为 GPU管线中在属性内插之前的最后几个步骤中的一者的属性梯度设置。因此,直到图元设置及图元抑制之后才将顶点属性引入到GPU管线。以此方式,GPU管线仅移动图像几何形状的图元、识别所述图元内的顶点中的每一者的顶点坐标以及所述图元内的顶点中的每一者的顶点高速缓冲存储器索引值。
所述技术可大致消除包含大量属性的图元在GPU管线中的瓶颈。另外,所述技术可通过将属性梯度设置推迟到恰好在GPU管线中的属性内插之前来改善GPU管线内的图像处理速度。更具体来说,由于将仅对图像所不必需的一子组图元执行属性梯度设置,因此将GPU管线内的属性梯度设置一直推迟到图像所不必需的一子组图元的抑制之后可大致减少计算及功率消耗。这些及其它实施例均在以上权利要求书范围内。
权利要求
1、一种方法,其包括在图形处理单元(GPU)中所包含的GPU管线内接收图像的图像几何形状;将所述图像几何形状内的顶点的属性存储在耦合到所述GPU管线的经扩充顶点高速缓冲存储器中;及基于顶点坐标及顶点高速缓存器索引值来处理所述GPU管线内的所述图像,所述顶点坐标识别所述顶点的,所述顶点高速缓存器索引值指示所述图像几何形状内的所述顶点中的每一者的所述属性在所述经扩充顶点高速缓冲存储器内的存储位置。
2、 如权利要求1所述的方法,其进一步包括通过执行顶点着色来产生所述图像 几何形状内的不包含在所述经扩充顶点高速缓冲存储器中的顶点的顶点坐标及属性。
3、 如权利要求l所述的方法,其进一步包括确定所述图像几何形状内的所述顶点中的哪一些包括所述经扩充顶点高速缓冲 存储器中所包含的命中顶点;确定所述图像几何形状内的所述顶点中的哪一些包括所述经扩充顶点高速缓冲 存储器中所不包含的未命中顶点;及产生所述图像几何形状内的所述未命中顶点中的每一者的顶点坐标及属性。
4、 如权利要求3所述的方法,其进一步包括将所述图像几何形状内的所述命中顶点中的每一者的所存储属性保持在所述经 扩充顶点高速缓冲存储器中;及检索指示所述命中顶点中的每一者的所述所存储属性在所述经扩充顶点高速缓 冲存储器中的存储位置的顶点高速缓冲存储器索引值。
5、 如权利要求3所述的方法,其进一步包括指派指示所述图像几何形状内的所述未命中顶点中的每一者的属性在所述经扩充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值;及将所述未命中顶点中的每一者的所产生属性存储在所述经扩充顶点高速缓冲存 储器中的所述指派的存储位置处。
6、 如权利要求1所述方法,其进一步包括将所述图像几何形状内的所述顶点中的每一者的所述顶点坐标存储在所述经扩充顶点高速缓冲存储器中;及使用所述图像几何形状内的所述顶点中的每一者的所述顶点高速缓沖存储器索 引值从所述经扩充顶点高速缓冲存储器中检索所述顶点坐标以处理所述图像。
7、 如权利要求1所述的方法,其进一步包括使所述经扩充顶点高速缓冲存储器中所包含的参考计数存储装置中的所述图像 几何形状内的所述顶点中的每一者的参考计数递增;用所述图像几何形状内的一个或一个以上顶点创建初步图元;使所述参考计数存储装置中所述初步图元内使用一次以上的顶点的参考计数递 增;及将所述初步图元内的所述顶点的顶点高速缓冲存储器索引值存储在缓冲器中以 处理所述图像。
8、 如权利要求1所述的方法,其进一步包括沿所述GPU管线传递所述顶点中的 每一者的所述顶点坐标及所述顶点高速缓冲存储器索引值。
9、 如权利要求1所述的方法,其中处理所述图像包括将基于所述图像几何形状 的图元内的所述顶点的所述属性处理所述图像几何形状推迟到恰好在所述GPU管线中的属性内插之前。
10、 如权利要求9所述的方法,其中推迟处理所述图像几何形状包括将计算所述 图像几何形状的所述图元内的所述顶点的属性的梯度推迟到恰好在所述GPU管线中 的属性内插之前。
11、 如权利要求l所述的方法,其中处理所述图像包括 用所述图像几何形状内的一个或一个以上顶点来创建图元; 基于所述顶点坐标抑制所述图像所不必需的第一子组所述图元; 使用所述顶点的所述顶点高速缓冲存储器索引值从所述经扩充顶点高速缓冲存储器中检索所述图像所不必需的第二子组所述图元内的所述顶点中的每一者的所述 顶点属性;及基于从所述经扩充顶点高速缓冲存储器中检索的所述属性计算与所述图像几何 形状的所述第二子组所述图元相关联的属性的梯度。
12、 如权利要求11所述的方法,其中抑制所述第一子组所述图元包括 基于所述顶点坐标使用背面剔除及剪裁来抑制所述图像几何形状的不可见图元;及基于所述顶点坐标使用早期深度及模版测试来抑制所述图像几何形状的隐藏图元及图元内的隐藏像素。
13、 如权利要求11所述的方法,其进一步包括请求为与所述图像几何形状的所 述经抑制的第一子组所述图元相关联的属性释放所述经扩充顶点高速缓冲存储器中 的存储空间。
14、 如权利要求13所述的方法,其进一步包括在接收到所述释放所述经扩充顶点高速缓冲存储器中的存储空间的请求后,即刻 使所述第一子组所述图元内的顶点的参考计数递减;及当所述第一子组所述图元内的所述顶点的所述参考计数递减到零时,为所述顶点 的所述属性释放所述经扩充顶点高速缓冲存储器中的存储空间。
15、 如权利要求ll所述的方法,其进一步包括在计算与所述第二子组所述图元 相关联的所述属性的所述梯度之前,基于所述顶点坐标将所述图像几何形状的所述图 元转换为像素。
16、 如权利要求11所述的方法,其进一步包括在计算与所述图像几何形状的所 述第二子组所述图元相关联的所有所述属性的所述梯度之后,请求为与所述第二子组 所述图元相关联的所述属性释放所述经扩充顶点高速缓冲存储器中的存储空间。
17、 如权利要求16所述的方法,其进一步包括在接收到所述释放所述经扩充顶点高速缓冲存储器中的存储空间的请求后,即刻 使所述第二子组图元内的所述顶点的参考计数递减;及当所述第二子组所述图元内的所述顶点的所述参考计数递减到零时,为所述顶点的所述属性释放所述经扩充顶点高速缓冲存储器中的存储空间。
18、 如权利要求ll所述的方法,其进一步包括恰好在计算与所述图像几何形状的所述第二子组所述图元相关联的所述属性的 所述梯度之后,基于属性梯度值将像素上的所述属性内插在所述第二子组所述图元 内;及基于内插的属性值执行所述图像几何形状的所述第二子组所述图元的像素再现。
19、 如权利要求l所述的方法,其中处理所述图像包括 基于所述顶点坐标处理所述图像几何形状;使用所述顶点的所述顶点高速缓冲存储器索引值从所述经扩充顶点高速缓冲存 储器中检索所述顶点的所述属性;及基于所述图像几何形状的图元内的所述顶点的所述属性来处理所述图像几何形状。
20、 如权利要求l所述的方法,其中在所述GPU外部产生所述图像几何形状内的所述顶点的所述顶点坐标及属性,且所述经扩充顶点高速缓冲存储器包括经扩充顶点缓冲器,所述方法进一步包括将所述顶点中的每一者的所述属性存储在所述经扩充顶点缓冲器中;及 基于所述顶点坐标及识别所述图像几何形状内的所述顶点中的每一者的所述属性在所述经扩充顶点缓冲器内的存储位置的顶点索引值来处理所述GPU管线内的所述图像。
21、 一种计算机可读媒体,其包括致使可编程处理器进行以下操作的指令 在图形处理单元(GPU)中所包含的GPU管线内接收图像的图像几何形状;将所述图像几何形状内的顶点的属性存储在耦合到所述GPU管线的经扩充顶点 高速缓冲存储器中;及基于顶点坐标及顶点高速缓冲存储器索引值来处理所述GPU管线内的所述图 像,所述顶点坐标识别所述顶点,所述顶点高速缓冲存储器索引值指示所述图像几何 形状内的所述顶点中的每一者的所述属性在所述经扩充顶点高速缓冲存储器内的存 储位置。
22、 如权利要求21所述的计算机可读媒体,其进一步包括致使所述可编程处理 器进行以下操作的指令确定所述图像几何形状内的所述顶点中的哪一些包括所述经扩充顶点高速缓冲存储器中所包含的命中顶点;确定所述图像几何形状内的所述顶点中的哪一些包括所述经扩充顶点高速缓冲存储器中所不包含的未命中顶点;及产生所述图像几何形状内的所述未命中顶点中的每一者的顶点坐标及属性。
23、 如权利要求22所述的计算机可读媒体,其中所述指令致使所述可编程处理器将所述图像几何形状内的所述命中顶点中的每一者的所存储属性保持在所述经 扩充顶点高速缓冲存储器中,并检索指示所述命中顶点中的每一者的所述属性在所述经扩充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值;及指派指示所述图像几何形状内的所述未命中顶点中的每一者的属性在所述经扩 充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值,并将所述未命中 顶点中的每一者的所产生属性存储在所述经扩充顶点高速缓冲存储器中的所述存储位置处。
24、 如权利要求21所述的计算机可读媒体,其进一步包括致使所述可编程处理器进行以下操作的指令将所述图像几何形状内的所述顶点中的每一者的所述顶点坐标存储在所述经扩 充顶点高速缓冲存储器中;及使用所述图像几何形状内的所述顶点中的每一者的所述顶点高速缓冲存储器索 引值从所述经扩充顶点高速缓冲存储器中检索所述顶点坐标以处理所述图像。
25、 如权利要求21所述的计算机可读媒体,其中所述指令致使所述可编程处理器将基于所述图像几何形状的图元内的所述顶点的所述属性处理所述图像几何形状推迟到恰好在所述GPU管线中的属性内插之前。
26、 如权利要求25所述的计算机可读媒体,其中所述指令致使所述可编程处理 器将计算所述图像几何形状的所述图元内的所述顶点的属性的梯度推迟到恰好在所 述GPU管线中的属性内插之前。
27、 如权利要求21所述的计算机可读媒体,其中所述指令致使所述可编程处理器用所述图像几何形状内的一个或一个以上顶点来创建图元;基于所述顶点坐标抑制所述图像所不必需的第一子组所述图元;使用所述顶点的所述顶点高速缓冲存储器索引值从所述经扩充顶点高速缓冲存储器中检索所述图像所不必需的第二子组所述图元内的所述顶点中的每一者的所述属性;及基于从所述经扩充顶点高速缓冲存储器中检索的所述属性计算与所述图像几何 形状的所述第二子组所述图元相关联的属性的梯度。
28、 如权利要求27所述的计算机可读媒体,其进一步包括致使所述可编程处理 器请求为与所述图像几何形状的所述经抑制的第一子组所述图元相关联的属性释放 所述经扩充顶点高速缓冲存储器中的存储空间的指令。
29、 如权利要求27所述的计算机可读媒体,其进一步包括致使所述可编程处理 器在计算与所述第二子组所述图元相关联的所述属性的所述梯度之前基于所述顶点 坐标将所述图像几何形状的所述图元转换为像素的指令。
30、 如权利要求27所述的计算机可读媒体,其进一步包括致使所述可编程处理器在计算与所述图像几何形状的所述第二子组所述图元相关联的所有所述属性的所 述梯度之后请求为与所述第二子组所述图元相关联的属性释放所述经扩充顶点高速 缓冲存储器中的存储空间的指令。
31、 如权利要求27所述的计算机可读媒体,其进一步包括致使所述可编程处理 器进行以下操作的指令恰好在计算与所述图像几何形状的所述第二子组所述图元相关联的所述属性的 所述梯度之后,基于属性梯度值将像素上的所述属性内插在所述第二子组所述图元 内;及基于内插的属性值执行所述图像几何形状的所述第二子组所述图元的像素再现。
32、 如权利要求21所述的计算机可读媒体,其中所述指令致使所述可编程处理器基于所述顶点坐标处理所述图像几何形状;使用所述顶点的所述顶点高速缓冲存储器索引值从所述经扩充顶点高速缓冲存 储器中检索所述顶点的所述属性;及基于所述图像几何形状的图元内的所述顶点的所述属性来处理所述图像几何形状。
33、 如权利要求21所述的计算机可读媒体,其中所述图像几何形状内的所述顶 点的所述顶点坐标及属性在所述GPU外部产生,且所述经扩充顶点高速缓冲存储器 包括经扩充顶点缓冲器,所述计算机可读媒体进一步包括致使所述可编程处理器进行 以下操作的指令将所述顶点中的每一者的所述属性存储在所述经扩充顶点缓冲器中;及 基于所述顶点坐标及识别所述图像几何形状内的所述顶点中的每一者的所述属性在所述经扩充顶点缓冲器内的存储位置的顶点索引值来处理所述GPU管线内的所述图像。
34、 一种装置,其包括GPU管线,其接收图像的图像几何形状并处理所述图像以供显示在显示装置上;及经扩充顶点高速缓冲存储器,其耦合到所述GPU管线并存储所述图像几何形状 内的顶点的属性,其中所述GPU管线基于顶点坐标及顶点高速缓冲存储器索引值来处理所述图 像,所述顶点坐标识别所述顶点的,所述顶点高速缓存器索引值指示所述图像几何形 状内的所述顶点中的每一者的所述属性在所述经扩充顶点高速缓冲存储器内的存储位置。
35、 如权利要求34所述的装置,其中所述GPU管线包含顶点着色器,所述顶点 着色器通过执行顶点着色来产生所述图像几何形状内的不包含在所述经扩充顶点高 速缓冲存储器中的顶点的顶点坐标及属性。
36、 如权利要求34所述的装置,其中所述GPU管线包含顶点决策模块,其确定所述图像几何形状内的所述顶点中的哪一些包括所述经扩充顶点高速缓冲存储器中所包含的命中顶点,且确定所述图像几何形状内的所述顶点 中的哪一些包括所述经扩充顶点高速缓冲存储器中所不包含的未命中顶点;及顶点着色器,其产生所述图像几何形状内的所述未命中顶点中的每一者的顶点坐 标及属性。
37、 如权利要求36所述的装置,其中所述经扩充顶点高速缓冲存储器保持所述图像几何形状内的所述命中顶点 中的每一者的所存储属性;且其中所述顶点决策模块检索指示所述命中顶点中的每一者的所述属性在所述经 扩充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值。
38、 如权利要求36所述的装置,其中所述GPU管线包含未命中顶点模块,所述未命中顶点模块指派指示所述图 像几何形状内的所述未命中顶点中的每一者的属性在所述经扩充顶点高速缓冲存储 器中的存储位置的顶点高速缓冲存储器索引值;其中所述顶点决策模块从所述未命中顶点模块接收所述未命中顶点中的每一者 的所述所指派顶点高速缓冲存储器索引值;且其中所述经扩充顶点高速缓冲存储器将所述未命中顶点中的每一者的所产生属 性存储在所述经扩充顶点高速缓冲存储器中的所述存储位置处。
39、 如权利要求34所述的装置,其中所述经扩充顶点高速缓冲存储器存储所述图像几何形状内的所述顶点中的 每一者的所述顶点坐标;且其中所述GPU管线使用所述图像几何形状内的所述顶点中的每一者的所述顶点 高速缓冲存储器索引值从所述经扩充顶点高速缓冲存储器中检索所述顶点坐标以处 理所述图像。
40、 如权利要求34所述的装置,其中所述经扩充顶点高速缓冲存储器包含参考计数存储装置,且其中所述GPU管线包含参考计数更新模块,其使所述参考计数存储装置中所述图像几何形状内的所述顶 点的参考计数递增;图元汇编器,其用所述图像几何形状内的一个或一个以上顶点创建初步图元,且 使所述参考计数存储装置中所述初步图元内使用一次以上的顶点的参考计数递增;及 缓冲器,其存储所述初步图元内的所述顶点的顶点高速缓存索引值以处理所述图像。
41、 如权利要求34所述的装置,其中GPU管线将基于所述图像几何形状的图元 内的所述顶点的所述属性处理所述图像几何形状推迟到恰好在所述GPU管线中的属 性内插之前。
42、 如权利要求41所述的装置,其中所述GPU管线包含被推迟到恰好在所述 GPU管线中的属性内插之前的属性梯度设置模块,其计算所述图像几何形状的所述 图元内的所述顶点的属性的梯度。
43、 如权利要求34所述的装置,其中所述GPU管线包含 图元设置及抑制模块,其用所述图像几何形状内的一个或一个以上顶点创建图元,并基于向量坐标来抑制所述图像所不必需的第一子组所述图元;隐藏图元及像素抑制模块,其基于所述向量坐标来抑制所述图像所不必需的第二 子组所述图元;及.属性梯度设置模块,其使用所述图像所不必需的第三子组所述图元内的所述顶点 的所述顶点高速缓冲存储器索引值从所述经扩充顶点高速缓冲存储器中检索所述顶 点中的每一者的所述属性,且基于从所述经扩充顶点高速缓冲存储器中检索的所述属 性来计算与所述图像几何形状的所述第三子组所述图元相关联的属性的梯度。
44、 如权利要求43所述的装置,其中所述图元设置及抑制模块基于所述顶点坐标使用背面剔除及剪裁来抑制所 述图像几何形状的不可见图元;且其中所述隐藏图元及像素抑制模块基于所述顶点坐标使用早期深度及模版测试 来抑制所述图像几何形状的隐藏图元及图元内的隐藏像素。
45、 如权利要求43所述的装置,其中所述图元设置及抑制模块请求为与所述图像几何形状的所述第一子组所述 图元相关联的属性释放所述经扩充顶点高速缓冲存储器中的存储空间;且其中所述隐藏图元及像素抑制模块请求为与所述图像几何形状的所述第二子组所述图元相关联的属性释放所述经扩充顶点高速缓冲存储器中的存储空间。
46、 如权利要求45所述的装置,其中所述经扩充顶点高速缓冲存储器包含进行以下操作的存储释放模块在接收到所述释放所述经扩充顶点高速缓冲存储器中的存储空间的请求后,即刻 使参考计数存储装置中所述第一与第二子组所述图元内的顶点的参考计数递减;及当所述参考计数存储装置中所述第一与第二子组所述图元内的所述顶点的所述 参考计数递减到零时,为所述顶点的所述属性释放所述经扩充顶点高速缓冲存储器中 的存储空间。
47、 如权利要求43所述的装置,其中所述GPU管线包含光栅化器,所述光栅化 器在所述属性梯度设置模块计算与所述第三子组所述图元相关联的所述属性的所述 梯度之前基于所述顶点坐标将所述图像几何形状的所述图元转换为像素。
48、 如权利要求43所述的装置,其中在所述属性梯度设置模块计算与所述图像 几何形状的所述第三子组所述图元相关联的所有所述属性的所述梯度之后,所述属性 梯度设置模块请求为与所述第三子组所述图元相关联的所述属性释放存储空间。
49、 如权利要求48所述的装置,其中所述经扩充顶点高速缓冲存储器包含进行 以下操作的存储释放模块在接收到所述释放所述经扩充顶点高速缓冲存储器中的存储空间的请求后,即刻 使参考计数存储装置中所述第二子组图元内的所述顶点的参考计数递减;及当所述参考计数存储装置中所述第二子组所述图元内的所述顶点的所述参考计 数递减到零时,为所述顶点的所述属性释放所述经扩充顶点高速缓冲存储器中的存储 空间。
50、 如权利要求43所述的装置,其中所述GPU管线包含 属性内插器,其恰好在所述属性梯度设置模块计算与所述图像几何形状的所述第三子组所述图元相关联的所述属性的所述梯度之后基于属性梯度值将像素上的所述 属性内插在所述第三子组所述图元内;及片断着色器,其基于内插的属性值执行所述图像几何形状的所述第三子组所述图 元的像素再现。
51、 如权利要求34所述的装置,其中所述GPU管线基于所述顶点坐标处理所述 图像几何形状,使用所述顶点的所述顶点高速缓冲存储器索引值从所述经扩充顶点高 速缓冲存储器中检索所述顶点的所述属性,并基于所述图像几何形状的图元内的所述顶点的所述属性处理所述图像几何形状。
52、 如权利要求34所述的装置,其中所述图像几何形状内的所述顶点的所述顶点坐标及所述属性在所述GPU管 线外部产生,且所述经扩充顶点高速缓冲存储器包括经扩充顶点缓冲器; 其中所述经扩充顶点缓冲器存储所述顶点中的每一者的所述属性;且 其中所述GPU管线基于识别所述图像几何形状内的所述顶点中的每一者的所述属性在所述经扩充顶点缓冲器内的存储位置的所述顶点坐标及顶点索引值来处理所 述图像。
53、 一种装置,其包括处理装置,其用于接收图像的图像几何形状;及存储装置,其用于存储所述图像几何形状内的顶点的属性,其中所述处理装置基 于顶点坐标及顶点高速缓冲存储器索引值来处理所述图像,所述顶点坐标识别所述 顶点的,所述顶点高速缓存器索引值指示所述图像几何形状内的所述顶点中的每一者 的所述属性在所述经扩充顶点高速缓冲存储器内的存储位置。
54、 如权利要求53所述的装置,其中所述处理装置基于所述顶点坐标处理所述 图像几何形状,使用所述顶点的所述顶点高速缓冲存储器索引值从所述存储装置中检 索所述顶点的所述属性,并基于所述图像几何形状的图元内的所述顶点的所述属性处 理所述图像几何形状。
全文摘要
本发明描述用于以使用经扩充顶点高速缓冲存储器的图形处理单元(GPU)处理计算机化图像的技术。所述技术包含创建耦合到GPU管线的经扩充顶点高速缓冲存储器以减少通过所述GPU管线的数据量。所述GPU管线接收图像的图像几何形状,并将所述图像几何形状内的顶点的属性存储在所述经扩充顶点高速缓冲存储器中。所述GPU管线仅将识别所述顶点的顶点坐标及指示所述顶点中的每一者的属性在所述经扩充顶点高速缓冲存储器中的存储位置的顶点高速缓冲存储器索引值沿所述GPU管线传递到其它处理级。本文中所描述的技术将属性梯度的设置推迟到恰好在所述GPU管线中的属性内插之前。可从所述经扩充顶点高速缓冲存储器检索顶点属性以用于恰好在所述GPU管线中的属性内插之前的属性梯度设置。
文档编号G06T15/00GK101496066SQ200780027887
公开日2009年7月29日 申请日期2007年7月31日 优先权日2006年8月3日
发明者春 于, 布莱恩·鲁滕伯格, 云 杜, 焦国方 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1