图形处理单元中的片段着色器旁路及其设备和方法

文档序号:6478317阅读:193来源:国知局
专利名称:图形处理单元中的片段着色器旁路及其设备和方法
技术领域
本发明涉及图形处理单元,且更明确地说,涉及使用图形处理单元来处理图像。
背景技术
图形处理单元(GPU)是用以产生供显示于显示装置上的计算机化图形的专用图 形再现装置。GPU经建置有高度并行结构,所述并行结构为一系列复杂算法提供比典型的通 用中央处理单元(CPU)更有效的处理。举例来说,复杂算法可对应于三维计算机化图形的 表示。在此情况下,GPU可实施若干基元图形操作以创建供显示于显示装置上的三维图像, 这比使用CPU来绘制供显示于显示装置上的图像更迅速。典型GPU接收图像几何形状且使用管线方法来产生可被输出(例如)以供显示于 显示装置上的图形。典型的图形管线包括并行操作的若干级,其中来自一个级的输出可能 在所述管线中的另一级处使用。举例来说,典型的图形管线包含顶点着色器级、基元组合 级、视口变换级、基元设立级、光栅化级、隐藏基元及像素拒绝级、属性设立级、属性内插级 及片段着色器级。顶点着色器应用于图像的图像几何形状且产生所述图像几何形状内的顶点的顶 点坐标及属性。顶点属性包括(例如)与顶点相关联的色彩、法线及纹理坐标。基元组合 基于图像几何形状而从所述顶点形成基元(例如,点、线及三角形基元)。可使用变换(例 如,将基元从标准化装置空间变换到屏幕空间的视口变换)来将所形成的基元从一个空间 变换到另一空间。可使用基元设立来确定基元面积、边缘系数,且执行遮挡剔除(例如,背 面剔除)及3D裁剪操作。光栅化基于基元内的顶点的XY坐标及基元中所包括的像素的数目而将基元转换 为像素。隐藏基元及像素拒绝使用基元及/或像素的z坐标来确定并拒绝那些被确定为被 隐藏的基元及像素(例如,位于图像帧中的另一基元或像素后面的基元或像素,所述另一 基元或像素为透明的基元或像素)。属性设立确定与基元内的像素相关联的属性的属性梯 度,例如,在水平(X)方向或垂直(Y)方向上移动的基元内第一像素处的属性值与第二像素 处的属性值之间的差。属性内插基于所确定的属性梯度值而在基元内的像素范围中内插属 性。将所内插的属性值发送到片段着色器以用于像素再现。可将片段着色器的结果输出到 后处理块及帧缓冲器以用于将经处理的图像呈现于显示装置上。

发明内容
本发明试图解决此项技术中的缺点及提供图形图像处理的效率以根据输入图像 几何形状来使用一个或一个以上可编程处理器。GPU可包含一个或一个以上处理器,所述 一个或一个以上处理器提供用于与图形管线一起使用的强大处理能力。然而,在某些情形 下,应用程序可能不需要由GPU所提供的所有处理能力,例如,应用程序可能需要较不强大 的替代方案。在此情况下,举例来说,能够绕过GPU的某些部分(例如,片段着色器)以便 基于使用GPU的应用程序的需求来有效地使用GPU的资源将是有益的。
本文中揭示了一种系统、方法及设备,其使用配置信息来做出绕过或放弃由图形 处理单元的着色器单元进行的片段着色的确定,所述着色器单元能够执行顶点着色与片段 着色器两者。根据所述确定,着色器单元执行顶点着色且绕过片段着色。在将由图形处理单 元执行某种片段着色的情况下,可使用不同于着色器单元的处理元件(例如,像素掺合器) 来执行片段着色。可管理经供应到由着色器单元所使用的算术逻辑单元的功率,使得在片 段着色被绕过的情况下切断去往若干算术逻辑单元的功率。着色器单元使用数目减少了的 算术逻辑单元来执行顶点着色。还可切断去往其它组件(例如线程压缩缓冲器及用以将信 息从所述线程压缩缓冲器输送到着色器单元的输入总线)的功率。可将至少一个通常由着 色器单元使用的寄存器组用作缓冲器以缓冲供连同纹理数据一起用于执行由另一处理元 件进行的片段着色操作的像素属性数据。根据本发明的一个或一个以上实施例,经配置以执行顶点着色与片段着色两者的 可编程处理元件(着色器单元)经动态地“重新配置”以基于经提供到GPU的信息而执行 顶点着色并绕过或放弃片段着色。依靠此布置,可绕过经确定为在经重新配置的管线中“不 必要”的组件。可将在片段着色被绕过的情况下未使用的组件用于替代性用途。或者,可通 过“切断”去往这些组件的功率来节省功率。可实现其它效率,例如具有数目减少了的顶点 的顶点着色器线程。在至少一个实施例中,描述了一种供与图形处理单元一起使用的方法,其使用配 置信息以做出在能够执行顶点着色与片段着色两者的着色器单元中绕过或放弃片段着色 的确定,使用着色器单元来执行顶点着色,且基于所述确定而绕过由着色器单元执行片段 着色。根据一个或一个以上实施例,描述了一种设备,其中包含图形处理单元及着色器 单元。所述图形处理单元包含命令解码器,所述命令解码器经配置以使用配置信息来做出 在着色器单元中绕过或放弃片段着色的确定。着色器单元能够执行顶点着色与片段着色两 者。着色器单元经配置以基于所述确定来执行顶点着色并绕过执行片段着色。已提供此简短概要,使得可快速地理解本发明的本质。对本发明的较完整理解可 通过结合附图参看以下对其优选实施例的详细描述来获得。


本发明的上文所提及的特征及目标将参看以下结合附图所进行的描述而变得更 加显而易见,其中相同参考标号指示相同元件,且在附图中图1是说明示范性装置的框图,所述示范性装置包括供根据本发明的一个或一个 以上实施例使用的图形处理单元。图2提供根据本发明的一个或一个以上实施例的着色器单元的组件的概观,所述 着色器单元能够实施顶点着色器及片段着色器处理元件。图3提供用于根据本发明的一个或一个以上实施例使用的图形处理单元的图形 管线的实例。图4提供说明用于与本发明的一个或一个以上实施例一起使用的可编程图形处 理元件的实例框图。
具体实施例方式现将参看上文所提及的图式来论述本发明的某些实施例,其中相同参考标号指代 相同组件。根据一个或一个以上实施例,揭示一种系统、方法及设备,其中着色器单元是根据 经提供到图形处理单元的配置信息来配置的。通过使用所述配置信息,能够执行片段着色 与顶点着色两者的着色器单元可经配置以执行顶点着色且放弃片段着色。可使用不同于着 色器单元的另一处理元件来执行某种片段着色。将原本由着色器单元用以执行片段着色的 一个或一个以上组件可用于另一用途,或替代地可切断去往原本未使用的组件的功率。图1是说明示范性计算装置100的框图,所述计算装置100包括供根据本发明的 一个或一个以上实施例来使用的图形处理单元(GPU)104。计算装置100可包含个人计算 机、桌上型计算机、膝上型计算机、工作站、视频游戏平台或控制台、蜂窝式或卫星无线电 电话、陆上通信线电话、因特网电话、手持式装置(例如便携式视频游戏装置或个人数字助 理)、个人音乐播放器、服务器、中间网络装置、主机计算机或另一类型的输出图形信息的装 置。在图1的实例中,计算装置100包括中央处理单元(CPU) 102,GPU 104及存储器模 块116 (例如,随机存取存储器(RAM)存储器模块)。CPU 102、GPU 104及存储器模块116 使用总线106来通信,所述总线106可包含任何类型的现在已知或稍后被发现的总线或装 置互连件。CPU 102可包含通用或专用微处理器。举例来说,CPU 102可包含由加利福尼亚 州圣克拉拉市的英特尔公司(Intel Corporation of Santa Clara,California)提供的核 心2处理器或另一类型的微处理器。GPU 104是专用图形再现装置。举例来说,GPU 104可 集成到计算装置100的母板中,可存在于安装在计算装置100的母板中的端口中的图形卡 上,或可另外经配置以与计算装置100相互操作。举例来说,耦合到计算装置100的显示单元124可包含监视器、电视、投影装置、液 晶显示器、等离子体显示面板、发光二极管(LED)阵列、阴极射线管显示器、电子纸、表面传 导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。在图 1的实例中,显示单元124可为计算装置100的一部分。举例来说,显示单元124可为移动 电话的屏幕。或者,举例来说,显示单元124可位于计算机装置100的外部且可经由有线或 无线通信连接或其它连接而与计算装置100通信。借助于非限制性实例,显示单元124可 为经由有线或无线连接而连接到个人计算机的计算机监视器或平板显示器。可经由CPU 102来执行软件应用程序110。软件应用程序110可包含能够经由 CPU102来执行的任何软件应用程序,例如(借助于非限制性实例)视频游戏、图形用户接 口引擎、用于工程或艺术应用的计算机辅助设计程序,或另一类型的使用二维(2D)或三维 (3D)图形的软件应用程序。当CPU 102正在执行软件应用程序110时,软件应用程序110可调用图形处理应 用程序编程接口(API) 112的子例程,例如(借助于非限制性实例)0penVG API、0penGLAPI、 Direct3D API、图形装置接口(⑶I)、Quartz、QuickDraw或另一类型的2D或3D图形处理 API中的任何一者或一者以上。根据至少一个实施例,当软件应用程序110调用图形处理API 112的子例程时,图 形处理API 112调用GPU驱动器114的一个或一个以上子例程,所述一个或一个以上子例程经由计算装置100上的CPU 102来执行。举例来说,GPU驱动器114可包含一组软件及/ 或固件指令,所述指令提供图形处理API 112与GPU 104之间的接口。当图形处理API 112 调用GPU驱动器114的子例程时,GPU驱动器114制定并发出致使GPU 104产生可显示的 图形信息的命令。举例来说,当图形处理API 112调用GPU驱动器114的子例程以再现一 批图形基元时,GPU驱动器114向GPU 104提供处理配置,GPU 104使用所述处理配置来再 现所述批图形基元。举例来说,GPU 104再现所述批图形基元,且输出所述图形基元的光栅 图像。由GPU驱动器114制定的命令可识别GPU 104将用以执行所述命令的图形处理配 置,所述配置可识别一组待由GPU 104执行的指令、一组状态寄存器值及GPU 104执行所述 命令可能需要的其它类型的信息。在GPU驱动器114将所述图形处理配置存储于存储器116中的情况下,GPU驱动 器114可参考存储器模块116中的对应于由GPU驱动器114所制定的命令中的所述图形处 理配置的存储位置。当GPU 104接收所述命令时,GPU 104可从存储器116中检索在从GPU 驱动器114接收的命令中所提及的图形处理配置。根据至少一个实施例,GPU 104的命令解码器126解码来自GPU驱动器114的命 令并配置处理元件128中的一者或一者以上以执行所述命令。借助于非限制性实例,命令 解码器126从存储器116中检索所述图形处理配置,并将由所述图形处理配置所识别的一 组指令加载到处理元件128中。命令解码器126还可经配置以将输入数据提供到一个或一 个以上处理元件128。根据一个或一个以上实施例,处理元件128实施图形管线108。根据这些实施例, 处理元件128可以并行模式来实施图形管线108。在并行模式中,处理元件128可并行地对 数据进行操作,其中来自处理元件128的输出被用作到另一处理元件128的输入。借助于 非限制性实例,处理元件128A对从命令解码器126接收的第一组初始输入数据执行第一图 形操作且将第一组中间结果输出到处理元件128B。举例来说,初始输入数据可包含对应于 一个或一个以上顶点的数据,所述数据可包含坐标及属性数据。顶点坐标基于(例如)四 维坐标系统来识别图像内的位置,所述四维坐标系统具有X、Y及Z(宽度、高度及深度)坐 标以及包含透视参数的W坐标。举例来说,顶点属性可包括与顶点相关联的色彩、法线及纹 理坐标。处理元件128B可对由处理元件128A输出的第一组中间结果执行另一图形操作, 且将第二组中间结果输出到处理元件128中的另一者,等等。当处理元件128B正在执行第 二图形操作时,处理元件128A可对从命令解码器126接收的第二组初始输入数据执行第一 图形操作。处理元件128可以此方式继续,直到处理元件128N将像素对象输出到存储器模块 116中的一个或一个以上缓冲器或将此新像素对象输出到某一其它目的地为止。像素对象 是描述像素的数据。每一像素对象可指定多个色彩值,且可指定像素的透明程度。在一些 情形中,像素对象可指定呈第一色彩格式的第一色彩及呈第二色彩格式的第二色彩。根据本发明的一个或一个以上实施例,处理元件128中的一者包含着色器单元, 所述着色器单元可经配置以执行一个或一个以上顶点着色操作(所述顶点着色操作中的 每一者对顶点数据进行操作)及执行一个或一个以上片段着色操作(所述片段着色操作 中的每一者对像素数据进行操作)。因此,根据一个或一个以上实施例,可将处理元件128配置为统一着色器单元,所述统一着色器单元能够执行为对顶点数据进行操作的顶点着色 器,且进一步能够执行为对像素数据进行操作的片段着色器。根据一个或一个以上实施例, 所述着色器单元是可编程处理元件。图2提供根据本发明的一个或一个以上实施例的着色器单元的组件的概观,所述 着色器单元能够实施顶点着色器及片段着色器处理元件。如本文中较详细描述,命令解码 器126基于从存储器模块116中检索的图形处理配置来确定如果将使用着色器单元206来 执行任何着色操作则将会如何。在一些情况下,应用程序110可能不需要任何片段着色或 需要非常少量的片段着色。在需要少量片段着色的情况下,GPU 104可配置不同于着色器 单元206的处理元件128来执行少量片段着色,如本文中进一步描述。根据本发明的一个或一个以上实施例,GPU 104可经配置以使得使用着色器单元 206来处理使用着色器单元206所执行的顶点着色器线程的顶点数据。另外且如本文中所 揭示,GPU 104的其它处理元件128可经配置以适应片段着色器处理元件的不存在。着色器单元206包含两个或两个以上算术逻辑单元(ALU)群组228,所述算术逻 辑单元(ALU)群组228中的每一者包含若干ALU 258。每一 ALU 258依照从指令高速缓冲 存储器224中获取的指令而对一个或一个以上操作数执行运算。所述操作数可包含一个或 一个以上经由通信线路248而从RAM 226中检索的常数及/或一个或一个以上经由通信线 路250而从位于寄存器组262中的一者中的寄存器中检索的临时存储值。举例来说,本文 中所识别的通信线路(例如,通信线路248及250)可为总线。位于着色器单元206内部的 通信线路可包含单一总线或若干总线。根据一个或一个以上实施例,加载控制模块(本文 中还称作加载控制器)222控制常数到RAM 226的存储(经由通信线路264)及/或临时值 到寄存器堆组262的存储与临时值从寄存器堆组262中的检索(经由通信线路260)。根据 一个或一个以上实施例,举例来说,RAM 226可包含存储器模块116的某一部分。存储于RAM 226中的常数可为供着色器线程210使用的全局值。借助于非限制性 实例,在加载控制模块222的控制下,RAM 226可存储供与所有用以处理从GPU驱动器114 接收的命令的着色器线程210 —起使用的常数。寄存器堆组262 (对其的存取也是在加载 控制器222的控制下)可包含一组用以临时存储值的寄存器。可使用一组寄存器来临时存 储供与着色器线程210中的给定一者一起使用的值。ALU 258可经由通信线路250来存取 (例如,存储或检索)寄存器组262中的临时值。根据一个或一个以上实施例,着色器单元206进一步包含线程调度器及上下文寄 存器(TSCR)220,所述TSCR 220根据用于给定着色器线程210的上下文寄存器中所含有的 信息来操作以调度着色器线程210且使线程切换与加载控制模块222同步。由TSCR220调 度的着色器线程210可为顶点着色器线程及片段着色器线程。顶点着色器线程210是实施 图形管线108中所使用的顶点着色器的若干线程中的一者,每一顶点着色器线程210包含 可由着色器单元206执行以提供用于图形管线108的顶点着色器的若干顶点着色操作。类 似地,片段着色器线程210是实施片段着色器的若干线程中的一者,每一片段着色器线程 210包含可由着色器单元206执行以提供用于图形管线108的片段着色器的若干片段着色 操作。根据本发明的实施例,着色器单元206经配置以调度顶点着色器线程210。着色器单 元206进一步经配置以基于从GPU驱动器114获得的信息来调度片段着色器线程210。TSCR 220调度着色器线程210以用于执行,且经由通信线路236而与加载控制模块222通信,使得用于所调度着色器线程210的上下文可由加载控制器222来加载。着色 器线程210的上下文包括待由着色器单元206结合着色器线程210所处理的指令。加载控 制器222控制指令高速缓冲存储器224,使得待由ALU 258针对所调度着色器线程210执 行的指令被加载于指令高速缓冲存储器224中,且到RAM 226及寄存器堆组262中的寄存 器的指针指向存储对应于所调度着色器线程210的值(全局及临时)的位置/寄存器。因 而,从指令高速缓冲存储器224获取的用于结合所调度着色器线程210执行的指令在所述 所调度着色器线程210的上下文中操作。举例来说,从指令高速缓冲存储器224获取指令 并由ALU 258中的一者或一者以上针对所调度着色器线程210来执行所述指令。所述所调 度着色器线程210可根据所获取的指令而使用来自与所述所调度着色器线程210相关联的 寄存器堆组262的一个或一个以上临时值及/或来自与所述所调度着色器线程210相关联 的RAM 226的一个或一个以上全局值。线程压缩缓冲器202可存储用于着色器线程210的数据。可由加载控制器222经 由总线(图2中未展示)而将用于所调度着色器线程210的着色器指令或程序从外部存储 器或GPU管线108中的L2高速缓冲存储器预先加载或在运行时间加载到指令高速缓冲存 储器224中,且可基于由TSCR 220提供到加载控制器222的信息而将数据加载到对应于所 调度着色器线程210的寄存器组262中,其识别所调度着色器线程210。常数RAM 226存储 例如可用于所有着色器线程210的全局值等值。加载控制件可请求用于与所调度着色器线 程210 —起使用的来自纹理引擎212的纹理样本。根据本发明的一个或一个以上实施例,着色器单元206以一时钟速率操作,所述 时钟速率可快于图形管线108的时钟速率/速度。使用异步接口以允许通信着色器单元 206与位于着色器单元206外部的组件通信。举例来说,通信线路230、232、234、238及240 可包含一个或一个以上通信总线结构,着色器单元206通过所述一个或一个以上通信总线 结构而与一个或一个以上外部组件通信。尽管着色器单元206可以高于其它图形管线组件的时钟速度来操作,但无需如 此。任选地使用较高时钟速率来(例如)实现顶点着色器及/或片段着色器的着色器操作 的处理量以匹配其它图形管线处理量(如果需要的话)。或者,如果着色器计算工作负荷是 轻的,则着色器单元206的时钟速度可低于图形管线108的时钟速度。当根据本发明的实施 例而绕过片段着色时,可将着色器单元206专门地用于顶点着色器操作,使得即使在每线 程数目减少了的顶点及数目减少了的ALU 258(例如,群组228A中的ALU 258)的情况下, 仍可在单位时间周期中使用所述数目减少了的ALU 258来实现类似于通过ALU 258的完整 补充所实现的顶点着色处理量的顶点着色处理量,例如,其中着色器单元206调度使用数 目减少了的着色器单元206的ALU 258的若干顶点着色器线程。当并未绕过片段着色时, 着色器单元206由顶点着色器操作与片段着色器操作两者共享,例如,其中使用ALU 258的 完整补充及较大的线程大小(例如,每线程更多顶点)来保持适当的处理量。借助于非限制性实例,在着色器单元206的每一时钟周期中,ALU群组228A与 228B两者中的ALU 258可对与ALU群组228A及228B中的ALU 258的数目相等的若干顶 点或像素进行操作。举例来说,在N等于2的情况下,ALU群组228A及228B在着色器单元 206的每个时钟周期中可对四个顶点或像素进行操作。在所调度着色器线程210是顶点着 色器线程210的情况下,在着色器单元206的给定时钟周期期间,对着色器线程210中的四个顶点进行操作,每一顶点由来自ALU群组228A或228B或来自228A与228B两者的ALU 258操作。类似地,在所调度着色器线程210是片段着色器线程210的情况下,对片段着色 器线程210中的四个像素进行操作,每一像素由来自ALU群组228A或228B或来自228A与 228B两者的ALU 258操作。
在图2所示的实例中,ALU群组228A及228B具有相同数目的ALU 258。根据一个 或一个以上实施例,ALU群组228A可具有数目不同于ALU群组228B中的ALU 258的数目 的ALU 258。此外,根据本发明的实施例,顶点着色操作(及所处理的顶点)的数目无需与 片段着色操作(及所处理的像素)的数目相同。在一些情况下,举例来说,顶点着色操作与 片段着色操作之间的工作负荷比可为1 4、1 2、1 1、2 1或任何其它比。类似地, 寄存器堆组262A在大小上可不同于寄存器堆组262B的大小,所述寄存器堆组262A及寄存 器堆组262B两者的大小可经静态或动态地配置。一般来说,在单位时间周期中且在顶点着 色操作的工作负荷对于所处理的顶点的数目来说被指定为“NV”且片段着色操作的工作负 荷对于所处理的像素的数目来说被指定为“MP”的情况下,着色器单元206在所述单位时间 周期期间以时间共享型式完成NV个顶点及MP个像素。作为时间共享的替代方案,根据另 一配置或实施例,可调度ALU群组228A以对顶点着色器线程210进行操作,同时可并行调 度ALU群组228B以在着色器单元206时钟周期处对片段着色器线程210进行操作。如上文所论述,举例来说,GPU 104(例如,GPU 104的命令解码器126)可基于由应 用程序110所提供的信息来确定不需要片段着色或需要少量片段着色。根据一个或一个以 上实施例,在确定不需要片段着色或需要少量片段着色的情况下,在着色器单元206中绕 过片段着色操作,且着色器单元206无需处理任何片段着色器线程210。此外且根据一个或 一个以上此类实施例,可减少与每一顶点着色器线程210相关联的顶点的数目,如下文较 详细论述,且有可能使用数目减少的ALU 258来操作着色器单元206,同时在图形管线108 的每个时钟周期仍产生相同水平的输出。通过这样做,可实现功率节省而无着色器单元206 的性能的任何显著降级或着色器单元206的输出水平的改变。在指示无片段着色或指示少 量片段着色且着色器单元206实施顶点着色操作以排除片段着色操作的情况下,就将结合 片段着色操作来使用其来说,可停用线程压缩缓冲器202及对应的输入总线232 (例如,线 程压缩缓冲器202B及输入总线232B),且可切断去往这些组件的功率。另外,由片段着色器 线程210使用的寄存器堆组262可用于存储由属性内插器204输出的属性数据(例如,色 彩数据)。通过这样做,有可能将寄存器堆组262B(例如)用作先进先出(FIFO)缓冲器以 存储供输入到像素掺合器208的色彩或其它数据。举例来说,将寄存器堆组(例如,寄存器 堆组262B)用作FIFO可覆盖经由纹理引擎212所执行的某一纹理加载/检索的等待时间。根据一个或一个以上实施例,可使用功率管理单元或功率控制器来控制供应到着 色器单元206的组件(包括ALU 258)的功率以及去往位于着色器单元206外部的组件(例 如,线程压缩缓冲器202及输入总线232)的功率。在组件(例如,ALU 258、线程压缩缓冲 器202、输入总线232等)未由着色器单元206使用的情况下,功率管理单元可调整(例如, 切断)供应到所述组件的功率。通过这样做,对于在着色器单元206执行顶点着色操作以排 除片段着色操作的情况下不使用的组件,可减少或完全关闭去往未使用的一个或一个以上 组件的功率以实现GPU 104的经减少程度的功率消耗。根据这些实施例,功率管理单元可 独立于其它组件来控制供应到一个组件的功率。借助于非限制性实例,功率管理单元可独立于其它ALU 258来控制去往ALU 258中的每一者的功率。在此实例中,功率管理单元操 作以切断去往ALU 258A及258B中的一者或一者以上的功率供应且将功率供应到ALU 258A 及258B中的其它者。或者,在组件包含ALU群组的情况下,功率管理单元可独立于ALU群 组228中的其它者来控制供应到ALU群组228的功率。借助于非限制性实例,功率管理单 元可独立于ALU群组228B中的ALU 258B来控制去往ALU群组228A中的ALU 258A的功率。 在此实例中,功率管理单元操作以切断去往ALU 258A的功率供应且将功率供应到ALU群组 228B 中的 ALU 258B。在需要少量片段着色的情况下,GPU 104可配置不同于着色器单元206的处理元件128以执行片段着色。根据一个或一个以上实施例,可由处理元件128来执行所需的少 量片段着色,所述处理元件128可经编程以执行片段着色操作,如下文较详细描述。通过这 样做,着色器单元210的资源可集中于较繁杂的着色操作,且执行所述较繁杂的着色操作 所不需要的着色器单元210的资源被断电。在着色器单元206经配置以不执行片段着色操作的情况下,TSCR 220调度顶点着 色器线程210,所述顶点着色器线程210中的每一者可包括数目减少了的顶点。更明确地 说,着色器单元206经配置以使用数目减少了的ALU 258来处理顶点,同时仍在相同的单位 时间周期中产生相同水平的输出(例如,NV个顶点),因为着色器单元206专门地调度顶点 着色器线程以在着色器单元203被如此配置的每个单位时间周期中对ALU群组228A进行 操作。借助于非限制性实例来描述本发明的实施例,其中每一 ALU群组228的ALU 258 的数目为2。在此情况下,着色器单元206 (且明确地说,TSCR 220)可在单位时间周期中调 度若干顶点着色器线程210。使用ALU群组228A及228B中的一者(例如,ALU群组228A) 来对与由TSCR 220调度的每一顶点着色器线程210相关联的顶点进行操作。在着色器单元 206的第一时钟周期中,TSCR 220调度第一顶点着色器线程210,此产生第一组两个顶点, 其对应于由着色器单元206使用ALU群组228A所处理的第一顶点着色器线程210。在着 色器单元206的第二时钟周期中,TSCR 220调度第二顶点着色器线程210,此产生由着色器 单元206及ALU群组228处理的另外两个顶点(第二顶点着色器线程210中的顶点)。因 此,在单位时间周期中,使用着色器单元206的一半ALU 258来处理包含预期数目的顶点的 一组顶点。依靠此布置,可绕过若干ALU 258,且可通过减少或完全关闭去往未使用的ALU 258的功率来节省原本被消耗以操作被绕过的ALU258的功率。图3提供用于根据本发明的一个或一个以上实施例来使用的GPU 104的图形管线 108的实例。如图3所示,图形管线108包括图1的命令解码器126及图2的属性内插器 204、像素掺合器208与纹理引擎212。可使用着色器单元206来实施顶点着色器306。在 图3所示的实例中,根据一个或一个以上实施例,片段着色器318 (其将原本使用图形管线 108中的着色器单元206来实施)被绕过。根据本文中所揭示的实施例,在片段着色器318 被绕过的情况下,原本将已转发到片段着色器的输入(例如,由纹理引擎212输出的纹理及 由属性内插器204输出的色彩与属性数据)被转向像素掺合器208。在确定需要将不由着 色器单元206执行的某种片段着色的情况下,像素掺合器208可经配置以除其掺合操作以 外还执行片段着色。除顶点着色器306以外,GPU 104的图形管线108还包括基元设立及拒绝模块308、属性梯度设立模块310、光栅化器312、隐藏基元及像素拒绝模块314、属性内插器204、 像素掺合器208及纹理引擎212。顶点着色器306确定图像内的顶点处的图像表面特性。以此方式,顶点着色器306 产生图像几何形状内的顶点中的每一者的顶点坐标及属性。顶点坐标基于(例如)四维坐 标系统来识别图像几何形状内的顶点,所述四维坐标系统具有识别图像几何形状内的顶点的位置的X、Y及Z(宽度、高度及深度)坐标以及包含图像几何形状的透视参数的W坐标。 顶点属性(例如)可包括与顶点相关联的色彩、法线及纹理坐标。根据本文中所揭示的实 施例,GPU 104内的顶点着色器306使顶点的属性及/或坐标由到管线108的其它级的顶 点着色器306来处理。基元设立及拒绝模块308、属性梯度设立模块310、光栅化器312、隐藏基元及像素 拒绝模块314与属性内插器204各自使用顶点坐标或顶点属性来处理图像几何形状。基元 设立及拒绝模块308向基元组合图像几何形状内的一个或一个以上顶点,将透视投影及视 口变换应用于基元顶点,且确定每一基元边缘的边缘系数。另外,(例如)通过使用基元顶 点的XY坐标来执行剪裁或背面剔除以确定针对给定图像帧是否拒绝考虑所述基元或其一 部分,基元设立及拒绝模块308可检验基元以确定是否将拒绝所述基元。举例来说,可将基 元或基元部分确定为不可见的,例如位于图像帧内的物体的背部上,在此情况下,基元或其 部分可由基元设立及拒绝模块308拒绝。属性梯度设立模块310计算与图像几何形状的基元相关联的属性的梯度。根据当 前所揭示的实施例,属性梯度包含在水平(X)方向或垂直(Y)方向上移动的基元内第一像 素处的属性值与第二像素处的属性值之间的差。属性梯度设立模块310使用顶点属性来计 算属性梯度。一旦计算出属性梯度值,光栅化器312便基于图像几何形状的基元内的顶点中的 每一者的XY坐标及所述基元中所包括的像素的数目而将所述基元转换为像素。隐藏基元 及像素拒绝模块314(例如)基于基元内的顶点的Z坐标而使用早期深度及模板测试来拒 绝隐藏基元及所述基元内的隐藏像素。基元或基元内的像素可被认为是隐藏的,且在处理 图像的特定帧期间被拒绝考虑(例如,当基元或基元内的像素位于图像帧内的另一物体后 面时)。属性内插器204基于属性梯度值而在基元内的像素范围中内插属性。在由属性内 插器204进行的处理结束时压缩片段着色器线程并经由通信线路234而将其传送到着色器 单元206。属性内插器204可忽略与图像几何形状内的被拒绝基元相关联的顶点的属性。 根据一个或一个以上实施例,经内插的属性值变成到像素掺合器208的输入,从而绕过片 段着色器318。可输出像素掺合器208的结果以用于使用输出装置(例如,显示单元124) 来呈现经处理的图像。如图3的实例中所说明,来自顶点着色器306的输出(例如,由顶点着色器306产 生的纹理数据)可输出到纹理引擎212,以供在由图形管线108进行的随后处理中使用。另 夕卜,顶点着色器306可向纹理引擎212提交纹理数据查找请求,以检索用于与顶点着色器 306 一起使用的纹理数据。参看图2,举例来说,加载控制模块222可经由纹理引擎212来 取样用于顶点着色器线程210的纹理数据。在图形管线108中执行片段着色器318 (例如,其未被绕过)的情况下,属性内插器204将其输出(例如,像素属性/色彩数据)转发到片段着色器318。另外,属性内插器 204向纹理引擎212提交针对初始纹理的请求。作为响应,纹理引擎212获得所请求的纹理 并经由加载控制器222以及通信线路238及260而将其转发到寄存器堆组262以供实施片 段着色器318的着色器线程210使用。或者,在片段着色器318被绕过且将执行某种少量片段着色的情况下,从属性内插器204将针对初始纹理的请求提交到纹理引擎212。作为响应,纹理引擎212将所请求的 纹理转发到像素掺合器208,所述像素掺合器208在由像素掺合器208执行的片段着色操 作中使用纹理数据。再次参看图2,输入/输出(I/O)总线238经由加载控制器222而将 纹理(例如,包含来自先前操作的纹理结果的相依性纹理)传递到纹理引擎212及从纹理 引擎212传递所述纹理。属性内插器204经由通信线路254而向纹理引擎212请求初始纹 理。作为响应,纹理引擎212经由通信线路252而将初始纹理转发到像素掺合器208。如 上文所论述,可将未由片段着色器线程210使用的寄存器堆组(例如,寄存器堆组262B)用 作FIFO缓冲器以存储供输入到像素掺合器208的色彩值及由属性内插器204输出的其它 数据(例如,非纹理数据)。经由通信线路240而将存储于包含寄存器堆组262的某一部分 的FIFO缓冲器中的数据输入到像素掺合器。图3中展示位于属性内插器204与片段着色 器318之间及位于片段着色器318与像素掺合器208之间的虚线以进一步说明当着色器单 元206绕过片段着色时,属性/色彩值是经由着色器单元206的寄存器堆组262而发送到 像素掺合器208。在由像素掺合器208进行的初始处理期间,使来自寄存器堆组262 FIFO的色彩数 据与由像素掺合器208从纹理引擎212接收的初始纹理同步。根据一个或一个以上实施例 且在将执行某种片段着色(例如,纹理组合)的情况下,像素掺合器208经配置以执行或仿 真片段着色功能性或纹理组合功能性。像素掺合器208进一步经配置以对由像素掺合器 208执行的所述片段着色操作的结果执行掺合(例如,α掺合)。根据本文中所揭示的这些实施例中的一者或一者以上,可使用可编程图形处理元 件(PGPE)来实施程序元件128中的一者或一者以上。举例来说,根据这些实施例,可使 用PGPE来实施像素掺合器208,所述像素掺合器208经编程以执行掺合以及未由着色器 单元206执行的片段着色(如果需要任何的话)。根据这些实施例中的一者或一者以上, PGPE可为(例如)如标题为“可编程图形处理元件(Programmable GraphicsProcessing Element)”的第Ii号美国申请案(高通代理人案号070380)中所描述的PGPE,所述美国申 请案的内容以引用的方式并入本文中。根据一个或一个以上实施例,PGPE可执行一指令集,所述指令集可依据需要使用 PGPE来执行的功能性而变化。图4是说明示范性PGPE 405的框图。如图4的实例中所说 明,PGPE 405包含输入模块430,所述输入模块430将对应于像素的数据(本文中还称作像 素对象)接收作为输入。举例来说,PGPE 405可从处理元件128、存储器模块116、寄存器 堆组262等中的一者或一者以上接收一个或一个以上像素对象。根据一个或一个以上实施例,输入模块430使用一个或一个以上算术逻辑单元 (ALU) 444来执行格式转换。在所示的实例中,ALU 444是ALU阵列(ALU 434)的一部分。 ALU 444中的每一者能够执行算术运算,例如(借助于少数非限制性实例)单乘法、双乘法、 2D点积、最大值运算、寄存器复制操作、Y编码、Y解码操作及/或其它类型的操作(包括其它类型的算术运算)。举例来说,ALU阵列434可每个色彩分量使用8位整数、10位整数、16位浮点、32位浮点等值。ALU 444可为单线程型或多线程型。输入模块430可将中间值(例如,格式转换的结果)存储于统一寄存器堆432中 的寄存器中,例如寄存器堆包含若干硬件寄存器。依据ALU阵列434的实施方案而定,举例 来说,每一硬件寄存器可存储四个表示色彩分量的8位整数、四个表示色彩分量的10位整 数、四个表示色彩分量的16位浮点值等。PGPE 405中的指令执行模块(IEM)436从指令模块438获取一个或一个以上使用 程序计数器446所识别的指令。指令模块438能够(例如)使用硬件寄存器、同步随机存 取存储器(SRAM)等存储若干指令。IEM 436解码所获取的指令,且获取如由经解码的指令 所指定的操作数。举例来说,IEM 436可从统一寄存器堆432及/或常数寄存器堆440获 取操作数。如与寄存器堆432 —样,举例来说,常数寄存器堆440可包含硬件寄存器及/ 或SRAM。借助于非限制性实例,常数寄存器堆440可存储掺合因子、用于旧版2D光栅操作 (ROP)的模式或其它常数值。指令可致使IEM 436从存储于统一寄存器堆432中的一个或一个以上寄存器中 的像素对象提取一个或一个以上色彩分量且将这些色彩分量用作操作数。举例来说,可以 RGBA格式来格式化存储于统一寄存器堆432中的寄存器中的像素对象,所述RGBA格式每 色彩分量具有八个位。当以RGBA格式来格式化像素对象时,位0到7可表示红色分量,位 8到15可表示绿色分量,位16到23可表示蓝色分量,且位24到31可表示α分量。像素 的α分量表示像素的透明程度。使用此实例且根据一个示范性指令,IEM 436提取像素对 象的红色分量并将所述红色分量用作操作数(例如,来自像素对象的位0到7)。其它指令 可指令IEM 436从像素对象提取不同或多个分量(例如,色彩及/或α分量)。在另一实 例中,深度/模板图形操作中的指令可指令IEM 436从位于统一寄存器堆432中的寄存器 中的一者中的像素对象提取模板值或Z值。指令可指令IEM 436在将操作数提供到ALU阵列434之前修改所述操作数。在一 些例子中,指令可使用所谓的源修改符来指令IEM 436如何修改操作数。举例来说,指令可 指令IEM 436提供操作数的负数(“_”),提供操作数的绝对(“abs”)值,或提供操作数的 倒数(“ ”)值。倒数运算以标准化整数表示来计算(1.0-x)的运算。在获取操作数之后,IEM 436可指令ALU阵列434 (且明确地说,ALU阵列434中 的一个或一个以上ALU 444)使用所获取的操作数来执行由经解码的指令所指定的一个或 一个以上算术运算。当ALU阵列434完成执行算术运算时,ALU阵列434可将所得值传送 回到IEM 436。当IEM 436从ALU阵列434接收到所述结果时,IEM 436将所述结果存储于 统一寄存器堆432中。IEM 436可将存储于统一寄存器堆432中的所述值提供到ALU阵列 434作为结合另一算术运算的一个或一个以上操作数。程序计数器446经递增以识别指令模块438中的下一指令,可接着获取所述下一 指令以供作为新的“当前指令”来执行。这继续进行,直到所有指令得到处理为止。如图4的实例中所说明,PGPE 405可包括输出模块442。举例来说,输出模块442 可从统一寄存器堆432读取数据且输出所述数据以供在图形管线108的另一处理元件128 中使用。举例来说,输出模块442可将数据输出到多个位置(例如,以连续或并行方式)。输 出模块442可使用ALU阵列434以在输出数据之前对数据执行一个或一个以上格式转换。
根据一个或一个以上实施例,将图4用作实例,ALU 444由输入模块430、IEM 436 及输出模块442共享,所述输入模块430、所述IEM 436及所述输出模块442中的每一者负 责获得待由ALU 444操作的数据且将指令及所获得的数据发送到ALU 444以供执行。在完 成所述操作之后,ALU 444将结果返回到将输入提供到ALU 444的模块。因此,在此实例中, ALU 444充当负责在另一模块的命令下执行操作的从属者,所述另一模块向ALU 444供应 待由ALU 444操纵的输入及待由ALU 444执行的指令。在此情况下,ALU 444不负责从寄 存器堆(例如统一寄存器堆432及/或常数寄存器堆440)读取源输入或将结果写入到寄 存器堆。 作为替代方案,根据一个或一个以上实施例,ALU 444由输入模块430、IEM 436及 输出模块442共享,然而,ALU 444可负责从一个或一个以上寄存器堆读取输入源数据及将 结果输出到所述一个或一个以上寄存器堆。在此情况下,ALU 444从另一模块(例如,输入 模块430、IEM 436及输出模块442)接收指令,从寄存器堆中的一者或一者以上读取输入源 数据,基于从输入模块430、IEM 436或输出模块442接收的指令/命令来执行一个或一个 以上操作,且将所得数据写入到一个或一个以上寄存器堆。在此替代性情况下,ALU阵列434与统一寄存器堆432之间的读取/写入通信路径 (图4中未展示)可由ALU 444使用以用于基于从输入模块430、IEM 436或输出模块442 接收的控制信号信息而将数据输入到统一寄存器堆434/从统一寄存器堆434输出数据。 类似地,读取通信路径(图4中也未展示)可由ALU阵列434使用以用于基于从输入模块 430、IEM 436或输出模块442接收的控制信号信息而将常数数据从常数寄存器堆440输入 到ALU 444。举例来说,所述通信路径可替代常数寄存器堆440或统一寄存器堆434与图4 中所示的输入模块430、IEM 436及输出模块442中的一者或一者以上之间的通信路径。根据一个或一个以上实施例,ALU阵列434可在相同或不同时钟周期中同时执行 用于色彩分量及α分量的指令。根据一个或一个以上实施例,使用PGPE 405所执行的每一指令可符合单一语法, 所述语法指定操作代码(操作码)、某一数目的目的地寄存器(例如,一个或两个目的地寄 存器)及某一数目的源寄存器(例如,四个源寄存器)。举例来说,指令中所指定的源寄存 器可为统一寄存器堆432中的寄存器、常数寄存器堆440中的寄存器或存储数据的另一位置。供根据本发明的实施例来使用的指令集可包含任何数目及类型的指令,每一指令 可对若干操作数进行运算。所述指令集可包括输入/输出、算术(例如,加、乘、减、倒数、Y 解码、Y编码等)、比较(例如,最小、最大、比较等)、逻辑(例如,如果、否则、另外、结束条 件等)、二进制(例如,与、或、异或、非等)、赋值、移动及结束指令。可使用利用PGPE 405实施的指令集来执行若干变化及不同图形操作中的任一 者。根据一个或一个以上实施例,PGPE 405可经配置以实施一个或一个以上使用此指令集 的掺合操作以及不使用着色器单元206来执行的片段着色操作。根据一个或一个以上实施例,像素掺合器208使从使用寄存器堆组262实施的 FIFO接收的色彩数据与纹理数据同步。其后,像素掺合器208可使用纹理组合操作(例如, 使用主要与次要输入像素对象)来执行某一量的片段着色。在此情况下,像素掺合器208 接收来自属性内插器204的主要输入像素对象(例如,经由使用寄存器堆组262所提供的FIFO)及次要输入像素对象。举例来说,所述次要输入像素对象可为指定使用纹理过滤操作所产生的纹理映射像素的纹理色彩及被识别为附近纹理像素(纹素)的纹素的色彩连同过 滤因子及/或权数的像素对象,其可由纹理引擎212来执行。使用纹理过滤操作所产生的新像素对象使用由次要输入像素对象指定的附近纹素的色彩来指定纹理映射像素的纹理色彩。可将新像素对象供应到像素掺合器208作为输 入到像素掺合器208的像素对象中的一者以执行片段着色操作(例如,纹理组合操作)。在 使用PGPE 405来实施像素掺合器208的情况下,PGPE 405使用主要输入像素对象及次要 输入像素对象来执行纹理组合操作。可存储结果以供像素掺合器208存取而对所述结果执 行像素掺合操作。根据一个或一个以上实施例,可使用PGPE 405来实施OpenVGAPI的VG_ BLEND_MULTIPLY 模式、VG_BLEND_SCREEN 模式及 VG_BLEND_DARKEN 模式,或实施波特-达 芙(Porter-Duff)掺合图形操作,例如(借助于某非限制性实例)波特-达芙“源”操作、“源上的目的地”操作、“目的地中的源”操作及“源中的目的地”操作。与着色器单元206相 比,PGPE 405在大小上相对较小,因此可使用较少功率消耗来对PGPE 405执行相同量的操 作。在一个或一个以上示范性实施例中,所描述的功能可以硬件、软件及/或固件或 其任何组合来实施。如果以硬件来实施,则可将所述功能实施于一个或一个以上微处理器、 微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其类 似物中。这些组件可驻留于通信系统、数据写入及/或读取系统或其它系统内。如果以软 件来实施,则可将所述功能作为一个或一个以上指令或代码来存储于计算机可读媒体上或 经由计算机可读媒体来传输。计算机可读媒体包括有形计算机存储媒体及通信媒体,所述 通信媒体包括促进将计算机程序从一个位置传送到另一位置的任何媒体。存储媒体可为 可由计算机存取的任何可用媒体。借助于实例而非限制,此类计算机可读媒体可包含RAM、快闪存储器、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、压缩光盘只读存储 器(CD-ROM)或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或者可用于以指令 或数据结构的形式存储所要程序代码且可由计算机存取的任何其它媒体。还可将术语“计 算机可读媒体”界定为有形计算机程序产品。如本文中所使用,磁盘与光盘包括压缩光盘 (CD)、激光光盘、光盘、数字通用光盘(DVD)、软盘及蓝光光盘,其中“磁盘”通常磁性地再现 数据,而“光盘”使用激光来光学地再现数据。以上各项的组合也应包括在计算机可读媒体 的范围内。尽管已就当前被认为是最实际且优选的实施例的内容来描述了所述设备及方法,但应理解,本发明无需限于所揭示的实施例。既定涵盖权利要求书的精神及范围内所包括 的各种修改与类似布置,所述权利要求书的范围应被赋予最广泛解释以便包含所有此类修 改与类似结构。本发明包括所附权利要求书的任何及所有实施例。
权利要求
一种供与图形处理单元一起使用的方法,其包含使用配置信息,做出能够执行顶点着色与片段着色两者的着色器单元是否将绕过片段着色的确定;使用所述着色器单元来执行顶点着色;及基于所述着色器单元将绕过片段着色的确定,绕过由所述着色器单元进行的片段着色。
2.根据权利要求1所述的方法,其中基于所述着色器单元将绕过片段着色的确定,所 述方法进一步包含 切断去往所述着色器单元的若干算术逻辑单元的功率,且将功率供应到所述算术逻辑 单元的剩余部分,所述剩余部分包含所述着色器单元的数目减少了的所述算术逻辑单元;调度若干顶点着色器线程以使用所述数目减少了的算术逻辑单元来执行顶点着色,其 中每一顶点着色器线程对数目减少了的顶点进行操作。
3.根据权利要求2所述的方法,其中基于所述着色器单元将绕过片段着色的确定,所 述方法进一步包含切断去往所述着色器单元的至少一个线程压缩缓冲器及输入总线的功率,所述输入总 线用以将信息从所述至少一个线程压缩缓冲器传送到所述着色器单元。
4.根据权利要求1所述的方法,其中基于所述着色器单元将绕过片段着色的确定,所 述方法进一步包含使用不同于所述着色器单元的处理单元来执行片段着色;将所述着色器单元的寄存器组用作用于所述另一处理单元的缓冲器,所述着色器单元 的寄存器组用以存储供所述另一处理单元用以执行片段着色的像素属性数据,所述像素属 性数据包括像素色彩数据;及将原本由所述着色器单元使用的纹理数据转发到所述另一处理单元。
5.根据权利要求4所述的方法,其中所述另一处理单元包含像素掺合器。
6.根据权利要求4所述的方法,其中用以执行片段着色的所述另一处理单元包含可编 程图形处理单元,所述方法进一步包含通过所述可编程图形处理元件来执行纹理组合与像素掺合操作。
7.一种设备,其包含图形处理单元,其包含命令解码器,所述命令解码器经配置使用配置信息,做出能够执 行顶点着色与片段着色两者的着色器单元是否将绕过片段着色的确定;所述着色器单元,其耦合到所述图形处理单元且经配置以执行顶点着色;及基于所述着色器单元将绕过片段着色的确定而绕过片段着色。
8.根据权利要求7所述的设备,其中所述着色器单元包含多个算术逻辑单元,所述设 备进一步包含功率管理单元,其耦合到所述多个算术逻辑单元,其中基于所述着色器单元绕过片段 着色的确定,所述功率管理单元经配置以切断去往若干所述算术逻辑单元的功率;及将功率供应到所述算术逻辑单元的剩余部分,所述剩余部分包含数目减少了的所述多个算术逻辑单元;及所述着色器单元的调度器,所述调度器经配置以调度若干顶点着色器线程以使用所述数目减少了的算术逻辑单元来执行所述顶点着 色,其中每一顶点着色器线程对数目减少了的顶点进行操作。
9.根据权利要求8所述的设备,其中基于所述着色器单元将绕过片段着色的确定,所 述功率管理单元进一步经配置以切断去往线程压缩缓冲器及输入总线的功率供应,所述输 入总线用以将信息从所述线程压缩缓冲器传送到所述着色器单元。
10.根据权利要求7所述的设备,其中基于着色器单元将绕过由所述着色器单元进行 的片段着色的确定,不同于所述着色器单元的处理单元经配置以执行片段着色,且其中所 述着色器单元的寄存器组用作用于所述另一处理单元的缓冲器,所述着色器单元的缓冲器 存储供所述另一处理单元用以执行片段着色的像素属性数据,所述像素属性数据包括像素 色彩数据。
11.根据权利要求10所述的设备,其中所述另一处理单元包含像素掺合器,所述像素 掺合器经配置以基于所述着色器单元将绕过片段着色的确定而执行片段着色。
12.根据权利要求10所述的设备,其中用以执行片段着色的所述另一处理单元包含可 编程图形处理元件。
13.根据权利要求12所述的设备,其中所述可编程图形处理元件经配置以执行纹理组 合与像素掺合操作。
14.一种存储有计算机可执行程序代码的计算机可读存储器媒体,所述程序代码用于 与图形处理单元一起使用且包含用于以下操作的代码使用配置信息来做出能够执行顶点着色与片段着色两者的着色器单元是否将绕过片 段着色的确定;使用所述着色器单元来执行顶点着色;及基于使所述着色器单元绕过片段着色的确定而绕过由所述着色器单元进行的片段着色。
15.根据权利要求14所述的媒体,其中基于所述使所述着色器单元绕过片段着色的确 定,所述代码进一步包含用于以下操作的代码切断去往所述着色器单元的若干算术逻辑单元的功率,且将功率供应到所述算术逻辑 单元的剩余部分,所述剩余部分包含所述着色器单元的数目减少了的所述算术逻辑单元;调度若干顶点着色器线程以使用所述数目减少了的算术逻辑单元来执行顶点着色,其 中每一顶点着色器线程对数目减少了的顶点进行操作。
16.根据权利要求15所述的媒体,其中基于所述使所述着色器单元绕过片段着色的确 定,所述代码进一步包含用于以下操作的代码切断去往所述着色器单元的至少一个线程压缩缓冲器及输入总线的功率,所述输入总 线用以将信息从所述至少一个线程压缩缓冲器传送到所述着色器单元。
17.根据权利要求14所述的媒体,其中基于所述使所述着色器单元绕过片段着色的确 定,所述代码进一步包含用于以下操作的代码使用不同于所述着色器单元的处理单元来执行片段着色;将所述着色器单元的寄存器组用作用于所述另一处理单元的缓冲器,所述着色器单元的寄存器组用以存储供所述另一处理单元用以执行片段着色的像素属性数据,所述像素属 性数据包括像素色彩数据;及将原本由所述着色器单元使用的纹理数据转发到所述另一处理单元。
18.根据权利要求17所述的媒体,其中所述另一处理单元包含像素掺合器。
19.根据权利要求17所述的媒体,其中所述另一处理单元包含可编程图形处理单元, 且其中所述代码进一步包含用以配置所述可编程图形处理单元以执行片段着色的代码,所 述片段着色包含纹理组合与像素掺合操作。
20.一种设备,其包含图形处理装置,其包含命令解码装置,其使用配置信息,做出能够执行顶点着色与片段着色两者的着色装置 是否将绕过片段着色的确定;所述着色装置,其耦合到所述图形处理装置,所述着色装置用于执行顶点着色及任选 地执行片段着色,所述着色装置基于所述命令解码装置做出的所述着色装置将绕过片段着 色的确定,绕过片段着色。
21.根据权利要求20所述的设备,其中所述着色装置包含多个算术处理装置,所述设 备进一步包含功率管理装置,其用于管理去往所述多个算术处理装置的功率供应,其中基于所述着 色装置将绕过片段着色的确定,所述功率管理装置管理去往所述多个算术处理装置的功 率,使得去往若干所述算术处理装置的功率被切断;且功率被供应到所述算术处理装置的剩余部分,所述剩余部分包含数目减少了的所述多 个算术处理装置;及所述着色装置的调度装置,所述调度装置用于调度着色器线程,其中基于所述着色装 置将绕过片段着色的确定,所述调度装置调度若干顶点着色器线程以使用所述数目减少了 的算术处理装置来执行所述顶点着色,其中每一顶点着色器线程对数目减少了的顶点进行 操作。
22.根据权利要求21所述的设备,其中基于所述着色装置将绕过片段着色的确定,所 述功率管理装置管理功率供应以便切断去往线程压缩缓冲器及输入总线的功率,所述输入 总线用以将信息从所述线程压缩缓冲器传送到所述着色装置。
23.根据权利要求20所述的设备,其中基于所述着色装置将绕过片段着色的确定,不 同于所述着色装置的处理装置用于片段着色,且其中所述着色装置的寄存器组用作用于所 述另一处理装置的缓冲器,所述缓冲器存储像素属性数据,所述像素属性数据包括像素色 彩数据。
24.根据权利要求23所述的设备,其中所述另一处理元件包含像素掺合器。
25.根据权利要求23所述的设备,其中用以执行片段着色的所述另一处理单元包含可 编程图形处理元件,所述可编程图形处理元件经配置以执行纹理组合与像素掺合操作。
全文摘要
使用配置信息以做出绕过由图形处理单元的着色器单元所进行的片段着色的确定,所述着色器单元能够执行顶点着色与片段着色器两者。基于所述确定,所述着色器单元执行顶点着色并绕过片段着色。可使用不同于所述着色器单元的处理元件(例如像素掺合器)来执行某种片段着色。管理功率以在所述片段着色被绕过的情况下“切断”去往未使用组件的功率。举例来说,可切断去往若干算术逻辑单元的功率,从而所述着色器单元使用数目减少了的算术逻辑单元来执行顶点着色。可将所述着色器单元的至少一个寄存器组用作FIFO缓冲器,所述FIFO缓冲器存储供与纹理数据一起用于由另一处理元件进行的片段着色操作的像素属性数据。
文档编号G06T15/00GK101802874SQ200880106821
公开日2010年8月11日 申请日期2008年9月12日 优先权日2007年9月14日
发明者于春, 杜云, 焦国方 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1