首页> 中国专利> 使用统一着色器的图形处理结构

使用统一着色器的图形处理结构

摘要

公开了一种使用单个着色器的图形处理结构。所述结构包括用于响应于控制信号选择多个输入中的一个的电路;以及着色器,其与判优器耦合,用于处理所述多个输入中所选择的一个,所述着色器包括执行顶点操作和像素操作的部件,并且其中所述着色器基于所述多个输入中所选择的一个执行所述顶点操作和像素操作中的一个。所述着色器包括寄存器模块,用于存储多个被选择的输入;序列器,其保存顶点操纵和像素操纵指令;以及处理器,其能够响应于保存在所述序列器中的指令对所选择的输入进行浮点算术和逻辑操作。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-10

    授权

    授权

  • 2007-06-06

    实质审查的生效

    实质审查的生效

  • 2007-04-11

    公开

    公开

说明书

技术领域

本发明通常涉及一种图形处理器,并且尤其涉及一种使用单个着色器的图形处理器结构。

背景技术

在计算机图形应用中,通过对多个被称为图元的简单对象的采样、互连和渲染而形成复杂形状和结构。这种图元可以是三角形或者其它适当的多边形。这些图元又由单独像素的互连形成。然后将颜色和纹理应用于单独像素,所述单独像素包括基于它们在图元中的位置的形状和相对于所产生的形状的图元方位;从而产生被渲染到相应的显示器以便以后观看的对象。

通常图形处理器执行图元的互连以及将颜色和纹理应用于所产生的形状。传统图形处理器包括一系列着色器,其指定如何以及以什么相应的属性在屏幕或者适当的显示装置上绘制最终图像。如图1所示,传统着色器10可表示为接收多个输入数据位的处理模块12,例如所述输入数据位可以为诸如对象空间(x,y,z)中的对象形状数据(14);诸如颜色(16)的对象的材料特性;纹理信息(18);亮度信息(20)和视角信息(22),并且提供有以应用于(x′,y′,z′)的纹理和其它外观特性表示对象的输出数据(28)。

例如,如图2A-2B所示,所述着色器接收表示立方体30(图2A)的顶点坐标数据作为输入并且提供表示例如立方体30′(图2B)的透视修正图的数据作为输出。例如,可以通过将适当的转换矩阵应用到表示初始立方体30的数据而提供所述修正图。更具体地,顶点着色器提供图2B中所示的表示,所述顶点着色器接收表示在立方体30中的顶点VX、VY和VZ的数据作为输入,并且提供包括相应的立方体30′的任何外观属性的角度定位顶点VX′、VY′和VZ′

除了上述顶点着色器外,当产生用于显示的对象时,还使用称为像素着色器的在像素级上操作的着色处理模块。通常,所述像素着色器提供与所渲染的对象的各个像素相关的颜色值。传统上,顶点着色器和像素着色器是被配置来只执行单个转换或操作的独立的元件。因此,为了执行输入的位置和纹理转换,需要使用至少两个着色操作和至少两个着色器。为了产生对象,传统图形处理器需要使用顶点着色器和像素着色器。因为需要两种类型的着色器,所以已知的图形处理器在尺寸上相对比较大,其大多数有效面积被顶点和像素着色器占据。

除了与传统图形处理器相关的有效面积损失外,还有相应的与其相关的性能损失。在传统图形处理器中,顶点着色器和像素着色器顺次地流水线式地并置,顶点着色器放置在前并且在像素着色器能够对单独像素数据进行操作之前对顶点数据进行操作。

因此,需要使用空间高效的和计算有效的着色器的改进的图形处理器。

发明内容

简言之,本发明设计了一种使用统一着色器的图形处理器,所述统一着色器能够以节省空间和计算高效的方式执行顶点操作和像素操作。在示例性实施例中,根据本发明的图形处理器包括:判优器电路,用于响应于控制信号选择多个输入中的一个用于处理;以及着色器,与判优器电路耦合,用于处理多个输入中的所选择的一个,所述着色器包括用于执行顶点操作和像素操作的部件,其中所述着色器基于多个输入中的所选择的一个执行顶点操作或像素操作中的一个。

所述着色器包括:通用寄存器模块,用于存储至少多个所选择的输入;序列器,用于存储执行顶点和像素操纵操作所用的逻辑和算术指令;以及处理器,能够根据保存在所述序列器中的指令对所选择的输入进行浮点算术和逻辑操作。本发明的着色器被称为“统一”着色器是因为它被配置来执行顶点和像素操作。通过使用本发明的统一着色器,相关的图形处理器比传统图形处理器更加空间有效,因为统一着色器比传统多着色器处理器结构占据更少的有效面积。

此外,根据本发明,所述统一着色器更加计算有效,因为它允许着色器基于工作量被灵活地分配给像素或顶点。

附图说明

结合以下附图,通过查看本发明的以下详细描述,可以更好地理解本发明及其相关优点和特征,在附图中,相同的数字代表相同的元件,其中:

图1为传统着色器的示意性方框图;

图2A-2B为由图1所示的着色器执行的操作的图形表示;

图3为传统图形处理器结构的示意性方框图;

图4A为根据本发明的图形处理器结构的示意性方框图;

图4B为根据本发明的替换实施例的图形处理器的可选输入组件的示意性方框图;以及

图5为在图4A中所示的图形处理器中使用的统一着色器的分解示意性方框图。

具体实施方式

图3描绘了结合有传统流水线结构的图形处理器。如图所示,图形处理器40包括顶点取得模块42,其通过线41接收来自片外存储器55的与待渲染的图元相关的顶点信息。然后通过线43将所取得的顶点数据传输到顶点高速缓存44以存储。一旦请求,就通过线45将保存在顶点高速缓存44中的顶点数据传输至顶点着色器46。如上所述,被顶点着色器46请求并传输至顶点着色器46的信息的实例包括对象形状、材料特性(例如颜色)、纹理信息以及视角。通常,顶点着色器46为可编程机制,该可编程机制将转换位置矩阵应用到输入的位置信息(从顶点高速缓存44获得),从而提供表示待渲染的对象的透视修正图像及其纹理或颜色坐标的数据。

在执行转换操作后,通过线47向顶点储存器48提供表示转换后的顶点的数据。然后顶点储存器48通过线49将其中包括的修改后的顶点信息传输至图元组合模块50。图元组合模块50将输入的顶点信息组合或者转换为多个待随后处理的图元。将输入的顶点信息组合为图元的适当的方法在本领域中公知并且在此将不再详细讨论。然后将所组合的图元传输至光栅化引擎52,光栅化引擎52通过称为步进(walking)的处理将先前组合的图元转换为像素数据。然后通过线53将产生的像素数据传输至像素着色器54。

像素着色器54产生将被应用于给定像素的颜色和额外外观属性,并且将外观属性应用到各个像素。此外,像素着色器54能够从由来自光栅化引擎52的像素数据索引的纹理地图57中取得纹理数据,而这是通过在线55上将这样的信息传输到纹理地图。然后通过线57′将所请求的纹理数据从纹理地图57传输回来,并且在通过线58被路由至像素着色器前存储在纹理高速缓存56中。一旦接收到纹理数据,像素着色器54对接收到的纹理数据进行指定的逻辑或算术操作以生成像素颜色或其它感兴趣的外观属性。然后将所生成的像素外观属性与通过线53由光栅化引擎提供的基色相结合,从而向感兴趣的位置处对应的像素提供像素颜色。然后将线59上的像素外观属性传输至后光栅处理模块(未显示)。

如上所述,传统图形处理器40需要使用两个独立的着色器:顶点着色器46和像素着色器54。与这样的结构相关的缺陷是图形处理器的总覆盖区相对大,因为两个着色器占据大量的有效面积。与传统图形处理器结构相关的另一缺陷是其计算效率较差。

现在参考图4A,在一个示例性实施例中,本发明的图形处理器60包括多路器66,所述多路器66具有在第一个输入处提供的顶点(例如索引)数据,以及在第二个输入处提供的来自光栅化引擎74的内插像素参数(例如位置)数据和属性数据。通过线63将由判优器64产生的控制信号传输至多路器66。判优器64确定将多路器66的两个输入中的哪个传输至统一着色器62用于进一步处理。判优器64使用的判优方案如下:如果在统一着色器62中有足够的资源可用,则通过线65将多路器66的第一个输入处的顶点数据传输至统一着色器62以对该顶点数据进行操作;否则,将第二个输入处的内插像素参数数据传递至统一着色器62用于进一步处理。

简要参考图5,现在描述统一着色器62。如图所示,统一着色器62包括通用寄存器模块92,多个源寄存器:包括源寄存器A 93、源寄存器B 95和源寄存器C 97,处理器(例如CPU)96和序列器99。通用寄存器模块92包括六十四个寄存器,或者可用的输入,用于储存通过线65从多路器66传输的信息或者任何其它要在统一着色器中保存的信息。通过线109将通用寄存器模块92中的数据传输至多个源寄存器。

处理器96可以包括专用硬件块或者可以配置成通用计算设备(即,个人计算机)的部分。在一个示例性实施例中,处理器96用于执行32位浮点算术操作和对相应操作数的一系列逻辑操作。如图所示,所述处理器被逻辑上分成两个部分。例如,部分96被配置来执行统一着色器的32位浮点算术操作。第二个部分96A被配置来执行统一着色器的定标器(scaler)操作(例如对数、指数、反平方根)。

序列器99包括常量模块91和指令储存器98。常量模块91例如包括用于连接顶点操纵操作的几个转换矩阵。指令储存器98包括由处理器96执行的必要指令,用于对通用寄存器模块92中保存的由源寄存器93-95提供的数据执行分别的算术和逻辑操作。指令储存器98还包括存储器取得指令,当执行所述存储器取得指令时,所述存储器取得指令使统一着色器62从存储器82(图4A)取得纹理以及其它类型的数据。在操作中,序列器99确定将要执行的下一指令(来自指令储存器98)是算术或逻辑指令还是存储器(例如纹理取得)指令。如果下一指令是存储器指令或者请求,则序列器99发送请求至取得模块(未显示),该取得模块从存储器82(图4A)检索所需信息。下面将详细描述通过顶点纹理高速缓存68(图4A)将所检索的信息传输至序列器99。

如果待执行的下一指令是算术或逻辑指令,则序列器99将适当的操作数从通用寄存器模块92转移至适当的源寄存器(93,95,97)用于执行,并且通过线101向处理器96发送适当的信号来指示将对源寄存器中的几个操作数进行什么操作或者什么系列操作。此时,处理器96对源寄存器中的操作数执行指令并且通过线85提供结果。线85上的信息可以被传输回通用寄存器模块92用于存储,或者被传输至图形处理器60后面的组件。

如上所述,指令储存器98保存顶点操纵指令和像素操纵指令。因此,本发明的统一着色器99能够执行顶点和像素操作以及执行存储器取得操作。同样地,本发明的统一着色器62能够基于从多路器传递来的信息对图形控制器中的数据执行顶点着色和像素着色操作。通过用来执行存储器取得,本发明的统一着色器能够执行传统顶点着色器不能执行的额外处理;同时执行像素操作。

通过能够非常快速地在保存于指令储存器98中的这种程序或指令之间自由地切换,统一着色器62能够以各种完成程度同时执行顶点操纵操作和像素操纵操作。在应用中,将待处理的顶点数据从多路器66传输至通用寄存器模块92。然后指令储存器98通过线101将相应的控制信号传递到处理器96以执行这种顶点操作。然而,如果通用寄存器模块92没有足够可用的空间以存储进入的顶点数据的话,则由于不满足判优器64的判优方案而不传输这种信息。通过这种方式,基于保存在指令储存器98中的指令,继续处理器96将要执行或者正在执行的任何像素计算操作,直到可获得足够的通用寄存器模块92中的寄存器。因此,通过共享统一着色器62中的资源,则由于不存在与处理器96相关的停机时间而增强了对图像数据的处理。

回头参考图4A,图形处理器60还包括高速缓存模块70,高速缓存模块70包括参数高速缓存70A和位置高速缓存70B,其通过线85接收统一着色器62的基于像素的输出并且将各自的像素参数和位置信息储存在相应的高速缓存中。然后通过线71将高速缓存模块70中的像素信息传输至图元组合模块72。图元组合模块72负责将从高速缓存模块70传输到其中的信息组合为一系列三角形或者其它适当的图元用于进一步处理。然后通过线73将所组合的图元传输至光栅化引擎模块74,在该光栅化引擎模块74处通过步进处理或任何其它适当的像素生成处理将所传输的图元转换为单独像素数据。从光栅化引擎模块74产生的像素数据为通过线75传输至多路器66的第二个输入的内插像素参数数据。

在通过多路器66将顶点数据传输至统一着色器62的情况下,将处理器96产生的结果顶点数据传输至渲染后端模块76,所述渲染后端模块76将产生的顶点数据转换成几种适于以后在显示装置84上显示的格式中的至少一种。例如,如果将被染色的玻璃外观效应应用到图像,则由渲染后端76将与这种外观效应对应的信息与适当的位置数据相关联。经由存储控制器78将来自渲染后端76的信息传输到存储器82和显示控制器线80。然后通过线83将这种适当地格式化后的信息传输以在显示装置84上表现。

现在参照图4B,其中显示了顶点模块61,其用于在根据本发明的替换实施例的多路器66的第一个输入处提供顶点信息。顶点模块61包括顶点取得模块61A,其负责当请求时从存储器82检索顶点信息,并且将所述顶点信息传输至顶点高速缓存61B。存储在顶点高速缓存61B中的信息包括耦合至多路器66的第一个输入的顶点信息。

如上所述,本发明的图形处理器60包括统一着色器62,其能够基于储存在指令储存器98中的指令执行顶点操纵操作和像素操纵操作。通过这种方法,由于不再需要单独的顶点着色器和像素着色器,所以本发明的图形处理器60比传统图形处理器占据更小的有效面积。此外,统一着色器62能够在执行顶点操纵操作和像素操纵操作之间转换,由于一种类型的数据操作不依赖于另一种类型的数据操作,所以提高了图形处理效率。因此,克服了由于传统图形处理器中的依赖性操作而产生的性能损失。

本发明的上述详细描述和其中描述的实例用于说明和描述的目的。因此希望本发明包括在这里公开和要求的基本原理范围之内的所有修改、变形和等价物。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号