CN1947156A - 使用统一着色器的图形处理结构 - Google Patents

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

Info

Publication number
CN1947156A
CN1947156A CNA2004800405708A CN200480040570A CN1947156A CN 1947156 A CN1947156 A CN 1947156A CN A2004800405708 A CNA2004800405708 A CN A2004800405708A CN 200480040570 A CN200480040570 A CN 200480040570A CN 1947156 A CN1947156 A CN 1947156A
Authority
CN
China
Prior art keywords
tinter
pixel
data
vertex
process unit
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.)
Granted
Application number
CNA2004800405708A
Other languages
English (en)
Other versions
CN1947156B (zh
Inventor
史蒂文·莫雷因
劳伦特·勒费布尔
安迪·格鲁伯
安迪·斯肯德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34591071&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1947156(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of CN1947156A publication Critical patent/CN1947156A/zh
Application granted granted Critical
Publication of CN1947156B publication Critical patent/CN1947156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Abstract

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

Description

使用统一着色器的图形处理结构
技术领域
本发明通常涉及一种图形处理器,并且尤其涉及一种使用单个着色器的图形处理器结构。
背景技术
在计算机图形应用中,通过对多个被称为图元的简单对象的采样、互连和渲染而形成复杂形状和结构。这种图元可以是三角形或者其它适当的多边形。这些图元又由单独像素的互连形成。然后将颜色和纹理应用于单独像素,所述单独像素包括基于它们在图元中的位置的形状和相对于所产生的形状的图元方位;从而产生被渲染到相应的显示器以便以后观看的对象。
通常图形处理器执行图元的互连以及将颜色和纹理应用于所产生的形状。传统图形处理器包括一系列着色器,其指定如何以及以什么相应的属性在屏幕或者适当的显示装置上绘制最终图像。如图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能够在执行顶点操纵操作和像素操纵操作之间转换,由于一种类型的数据操作不依赖于另一种类型的数据操作,所以提高了图形处理效率。因此,克服了由于传统图形处理器中的依赖性操作而产生的性能损失。
本发明的上述详细描述和其中描述的实例用于说明和描述的目的。因此希望本发明包括在这里公开和要求的基本原理范围之内的所有修改、变形和等价物。

Claims (20)

1、一种图形处理器(60),包括:
判优器电路(64),用于响应于控制信号选择多个输入中的一个;以及
着色器(62),与所述判优器电路(64)耦合,用于处理所述多个输入中所选择的一个,所述着色器(62)包括执行顶点操作和像素操作的部件,并且基于所述多个输入中所选择的一个执行所述顶点操作或者像素操作中的一个,其中所述着色器(62)提供外观属性。
2、根据权利要求1所述的图形处理器,还包括顶点储存模块(70),用于保存顶点信息。
3、根据权利要求2所述的图形处理器,其中所述顶点储存模块(70)还包括参数高速缓存(70A),用于为相应的顶点保存外观属性数据;以及位置高速缓存(70B),用于为相应的顶点保存位置数据。
4、根据以上权利要求中任一项所述的图形处理器,其中所述外观属性是颜色、光照、纹理、标准和位置数据中的至少一种。
5、根据权利要求4所述的图形处理器,其中所述外观属性为颜色,并且当所述多个输入中所选择的一个为像素数据时将所述颜色与相应的像素相关联。
6、根据权利要求4或权利要求5所述的图形处理器,其中所述外观属性为位置,并且当所述多个输入中所选择的一个为顶点数据时将所述位置属性与相应的顶点相关联。
7、根据以上权利要求中任一项所述的图形处理器,其中所述外观值为深度。
8、根据以上权利要求中任一项所述的图形处理器,包括选择电路,所述选择电路包括多路器(66),其与所述判优器(64)耦合,其中所述判优器(64)提供控制信号以控制所述多路器选择所需输入(66)。
9、根据以上权利要求中任一项所述的图形处理器,其中所述着色器(62)提供顶点位置数据并且还包括图元组合模块(72),其与所述着色器(62)耦合,用于响应于所述顶点位置数据而产生图元。
10、根据权利要求9所述的图形处理器,还包括光栅引擎(74),其与所述图元组合模块(72)耦合,用于响应于组合后的顶点数据产生像素参数数据。
11、根据以上权利要求中任一项所述的图形处理器,其中所述着色器(62)响应于所述多个输入中所选择的一个产生像素颜色信息。
12、根据以上权利要求中任一项所述的图形处理器,其中所述着色器(62)包括寄存器模块,用于保存所述多个输入中所选择的一个;计算元件,用于对保存在所述寄存器模块中的所述数据执行算术和逻辑操作;以及序列器,用于保存由所述计算元件执行的指令。
13、根据以上权利要求中任一项所述的图形处理器,其中所述着色器(62)还包括用于访问存储器(82)的电路。
14、一种统一着色器,包括:
通用寄存器模块(92),用于保存数据;
处理器单元(96);以及
序列器(99),其与所述通用寄存器模块(92)和所述处理器单元(96)耦合,所述序列器(99)保存指令,所述指令用于使所述处理器单元(96)对保存在所述通用寄存器模块(92)中的所选择的数据执行顶点计算和像素计算操作。
15、根据权利要求14所述的着色器,其中所述序列器(99)还包括用于从存储器取得数据的电路。
16、根据权利要求14或权利要求15所述的着色器,还包括选择电路,用于响应于控制信号向所述通用寄存器模块(92)提供信息。
17、根据权利要求16所述的着色器,其中所述选择电路为多路器(66)并且由判优器(64)提供所述控制信号。
18、根据权利要求14至17中任一项所述的着色器,其中所述处理器单元(96)响应于所述多个输入中所选择的一个执行产生像素颜色的指令。
19、根据权利要求14至18中任一项所述的着色器,其中当所述像素计算仍在进行时,所述处理器单元(96)执行顶点计算。
20、根据权利要求14至19中任一项所述的着色器,其中所述处理器单元(96)响应于所述多个输入中所选择的一个产生顶点位置和外观数据。
CN2004800405708A 2003-11-20 2004-11-19 使用统一着色器的图形处理结构 Active CN1947156B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/718,318 2003-11-20
US10/718,318 US6897871B1 (en) 2003-11-20 2003-11-20 Graphics processing architecture employing a unified shader
PCT/IB2004/003821 WO2005050570A1 (en) 2003-11-20 2004-11-19 A graphics processing architecture employing a unified shader

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201110085042.6A Division CN102176241B (zh) 2003-11-20 2004-11-19 使用统一着色器的图形处理结构

Publications (2)

Publication Number Publication Date
CN1947156A true CN1947156A (zh) 2007-04-11
CN1947156B CN1947156B (zh) 2013-07-10

Family

ID=34591071

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2004800405708A Active CN1947156B (zh) 2003-11-20 2004-11-19 使用统一着色器的图形处理结构
CN201110085042.6A Active CN102176241B (zh) 2003-11-20 2004-11-19 使用统一着色器的图形处理结构

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201110085042.6A Active CN102176241B (zh) 2003-11-20 2004-11-19 使用统一着色器的图形处理结构

Country Status (8)

Country Link
US (13) US6897871B1 (zh)
EP (8) EP2876606B1 (zh)
CN (2) CN1947156B (zh)
AU (2) AU2004292018B2 (zh)
CA (1) CA2585860C (zh)
HK (1) HK1099111A1 (zh)
WO (1) WO2005050570A1 (zh)
ZA (2) ZA200605069B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425175B (zh) * 2007-12-06 2012-03-21 威盛电子股份有限公司 着色器处理系统与方法
CN101441761B (zh) * 2007-08-15 2012-09-19 辉达公司 图形处理器单元管线中的条件执行位
CN103974062A (zh) * 2013-06-24 2014-08-06 福州瑞芯微电子有限公司 图像显示装置、图像显示系统和图像显示方法
CN106204408A (zh) * 2014-12-23 2016-12-07 联发科技股份有限公司 绘图处理电路及其前置深度信息处理方法

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922557B2 (en) * 2000-10-18 2005-07-26 Psion Teklogix Inc. Wireless communication system
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7336275B2 (en) * 2002-09-06 2008-02-26 Ati Technologies Inc. Pseudo random number generator and method
US20040046765A1 (en) * 2002-09-06 2004-03-11 Laurent Lefebvre Gradient noise engine with shared memory
US7061495B1 (en) * 2002-11-18 2006-06-13 Ati Technologies, Inc. Method and apparatus for rasterizer interpolation
US7796133B1 (en) 2002-11-18 2010-09-14 Ati Technologies Ulc Unified shader
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US8933945B2 (en) * 2002-11-27 2015-01-13 Ati Technologies Ulc Dividing work among multiple graphics pipelines using a super-tiling technique
US7787142B2 (en) * 2003-05-09 2010-08-31 Ppg Industries Ohio, Inc. Method and system for designing the color of a coating composition on an article
US7239322B2 (en) 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US9659339B2 (en) 2003-10-29 2017-05-23 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US8860737B2 (en) 2003-10-29 2014-10-14 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US6897871B1 (en) 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US7310722B2 (en) 2003-12-18 2007-12-18 Nvidia Corporation Across-thread out of order instruction dispatch in a multithreaded graphics processor
US8643659B1 (en) 2003-12-31 2014-02-04 3Dlabs Inc., Ltd. Shader with global and instruction caches
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7570267B2 (en) 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US8736620B2 (en) 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US8860722B2 (en) 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8044951B1 (en) * 2004-07-02 2011-10-25 Nvidia Corporation Integer-based functionality in a graphics shading language
US7339590B1 (en) * 2004-09-02 2008-03-04 Nvidia Corporation Vertex processing unit supporting vertex texture mapping
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US20060082593A1 (en) * 2004-10-19 2006-04-20 Microsoft Corporation Method for hardware accelerated anti-aliasing in 3D
US7385609B1 (en) * 2004-11-02 2008-06-10 Nvidia Corporation Apparatus, system, and method for increased processing flexibility of a graphic pipeline
US7439979B1 (en) * 2004-11-10 2008-10-21 Nvidia Corporation Shader with cache memory
US7542042B1 (en) * 2004-11-10 2009-06-02 Nvidia Corporation Subpicture overlay using fragment shader
US8738891B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Methods and systems for command acceleration in a video processor via translation of scalar instructions into vector instructions
JP4692956B2 (ja) * 2004-11-22 2011-06-01 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法
US7623132B1 (en) * 2004-12-20 2009-11-24 Nvidia Corporation Programmable shader having register forwarding for reduced register-file bandwidth consumption
US20070070082A1 (en) * 2005-09-27 2007-03-29 Ati Technologies, Inc. Sample-level screen-door transparency using programmable transparency sample masks
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
WO2007049610A1 (ja) * 2005-10-25 2007-05-03 Mitsubishi Electric Corporation 画像処理装置
US7594095B1 (en) 2005-11-29 2009-09-22 Nvidia Corporation Multithreaded SIMD parallel processor with launching of groups of threads
US7447873B1 (en) * 2005-11-29 2008-11-04 Nvidia Corporation Multithreaded SIMD parallel processor with loading of groups of threads
US7404056B1 (en) 2005-12-07 2008-07-22 Nvidia Corporation Virtual copying scheme for creating multiple versions of state information
US7404059B1 (en) 2005-12-07 2008-07-22 Nvidia Corporation Parallel copying scheme for creating multiple versions of state information
US7593971B1 (en) 2005-12-07 2009-09-22 Nvidia Corporation Configurable state table for managing multiple versions of state information
US7788468B1 (en) 2005-12-15 2010-08-31 Nvidia Corporation Synchronization of threads in a cooperative thread array
US7861060B1 (en) 2005-12-15 2010-12-28 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior
US7584342B1 (en) 2005-12-15 2009-09-01 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and SIMD instruction issue
US8077174B2 (en) 2005-12-16 2011-12-13 Nvidia Corporation Hierarchical processor array
US7634637B1 (en) 2005-12-16 2009-12-15 Nvidia Corporation Execution of parallel groups of threads with per-instruction serialization
US8074224B1 (en) * 2005-12-19 2011-12-06 Nvidia Corporation Managing state information for a multi-threaded processor
US7865894B1 (en) 2005-12-19 2011-01-04 Nvidia Corporation Distributing processing tasks within a processor
US8081184B1 (en) * 2006-05-05 2011-12-20 Nvidia Corporation Pixel shader program thread assembly
US8154554B1 (en) * 2006-07-28 2012-04-10 Nvidia Corporation Unified assembly instruction set for graphics processing
US7928990B2 (en) * 2006-09-27 2011-04-19 Qualcomm Incorporated Graphics processing unit with unified vertex cache and shader register file
US8155316B1 (en) 2006-10-19 2012-04-10 NVIDIA Corporaton Contract based memory management for isochronous streams
US8212840B2 (en) * 2006-10-23 2012-07-03 Qualcomm Incorporated 3-D clipping in a graphics processing unit
US8087029B1 (en) 2006-10-23 2011-12-27 Nvidia Corporation Thread-type-based load balancing in a multithreaded processor
US20080094408A1 (en) * 2006-10-24 2008-04-24 Xiaoqin Yin System and Method for Geometry Graphics Processing
US8108625B1 (en) 2006-10-30 2012-01-31 Nvidia Corporation Shared memory with parallel access and access conflict resolution mechanism
US8176265B2 (en) 2006-10-30 2012-05-08 Nvidia Corporation Shared single-access memory with management of multiple parallel requests
US7680988B1 (en) 2006-10-30 2010-03-16 Nvidia Corporation Single interconnect providing read and write access to a memory shared by concurrent threads
US7937567B1 (en) * 2006-11-01 2011-05-03 Nvidia Corporation Methods for scalably exploiting parallelism in a parallel processing system
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8108659B1 (en) 2006-11-03 2012-01-31 Nvidia Corporation Controlling access to memory resources shared among parallel synchronizable threads
US8243069B1 (en) * 2006-11-03 2012-08-14 Nvidia Corporation Late Z testing for multiple render targets
US7649538B1 (en) * 2006-11-03 2010-01-19 Nvidia Corporation Reconfigurable high performance texture pipeline with advanced filtering
US7663621B1 (en) * 2006-11-03 2010-02-16 Nvidia Corporation Cylindrical wrapping using shader hardware
US7692659B1 (en) * 2006-11-06 2010-04-06 Nvidia Corporation Color-compression using automatic reduction of multi-sampled pixels
US8233004B1 (en) 2006-11-06 2012-07-31 Nvidia Corporation Color-compression using automatic reduction of multi-sampled pixels
US8438370B1 (en) 2006-12-08 2013-05-07 Nvidia Corporation Processing of loops with internal data dependencies using a parallel processor
US7999821B1 (en) 2006-12-19 2011-08-16 Nvidia Corporation Reconfigurable dual texture pipeline with shared texture cache
US8321849B2 (en) * 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
US8421794B2 (en) * 2007-03-23 2013-04-16 Qualcomm Incorporated Processor with adaptive multi-shader
US8907964B2 (en) * 2007-04-10 2014-12-09 Vivante Corporation System and method for dynamically reconfiguring a vertex cache
US20080252652A1 (en) * 2007-04-13 2008-10-16 Guofang Jiao Programmable graphics processing element
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US7624107B1 (en) 2007-08-09 2009-11-24 Nvidia Corporation Radix sort algorithm for graphics processing units
US7689541B1 (en) 2007-08-09 2010-03-30 Nvidia Corporation Reordering data using a series of offsets
US8094157B1 (en) * 2007-08-09 2012-01-10 Nvidia Corporation Performing an occurence count of radices
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) * 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8599208B2 (en) * 2007-08-15 2013-12-03 Nvidia Corporation Shared readable and writeable global values in a graphics processor unit pipeline
US8736624B1 (en) 2007-08-15 2014-05-27 Nvidia Corporation Conditional execution flag in graphics applications
US8314803B2 (en) 2007-08-15 2012-11-20 Nvidia Corporation Buffering deserialized pixel data in a graphics processor unit pipeline
US8521800B1 (en) 2007-08-15 2013-08-27 Nvidia Corporation Interconnected arithmetic logic units
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US8775777B2 (en) * 2007-08-15 2014-07-08 Nvidia Corporation Techniques for sourcing immediate values from a VLIW
US8698819B1 (en) * 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8502832B2 (en) * 2008-05-30 2013-08-06 Advanced Micro Devices, Inc. Floating point texture filtering using unsigned linear interpolators and block normalizations
US8195882B2 (en) * 2008-05-30 2012-06-05 Advanced Micro Devices, Inc. Shader complex with distributed level one cache system and centralized level two cache
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8525924B2 (en) * 2008-12-29 2013-09-03 Red.Com, Inc. Modular motion camera
GB2486485B (en) 2010-12-16 2012-12-19 Imagination Tech Ltd Method and apparatus for scheduling the issue of instructions in a microprocessor using multiple phases of execution
US9727385B2 (en) 2011-07-18 2017-08-08 Apple Inc. Graphical processing unit (GPU) implementing a plurality of virtual GPUs
US8525846B1 (en) * 2011-11-11 2013-09-03 Google Inc. Shader and material layers for rendering three-dimensional (3D) object data models
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9424685B2 (en) 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9317251B2 (en) 2012-12-31 2016-04-19 Nvidia Corporation Efficient correction of normalizer shift amount errors in fused multiply add operations
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
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
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
US9613392B2 (en) * 2014-09-03 2017-04-04 Mediatek Inc. Method for performing graphics processing of a graphics system in an electronic device with aid of configurable hardware, and associated apparatus
KR102399686B1 (ko) 2015-07-28 2022-05-19 삼성전자주식회사 3d 렌더링 방법 및 장치
CN106776023B (zh) * 2016-12-12 2021-08-03 中国航空工业集团公司西安航空计算技术研究所 一种自适应gpu统一染色阵列任务负载均衡方法
GB2567507B (en) * 2018-04-05 2019-10-02 Imagination Tech Ltd Texture filtering with dynamic scheduling
US11790479B2 (en) * 2021-01-29 2023-10-17 Arm Limited Primitive assembly and vertex shading of vertex attributes in graphics processing systems

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4985848A (en) 1987-09-14 1991-01-15 Visual Information Technologies, Inc. High speed image processing system using separate data processor and address generator
JP2770598B2 (ja) * 1990-06-13 1998-07-02 株式会社日立製作所 図形表示方法およびその装置
JP3359393B2 (ja) 1993-10-07 2002-12-24 富士通株式会社 図形データ並列処理表示装置
JPH07282272A (ja) 1994-04-13 1995-10-27 Hitachi Ltd 描画処理システム
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5808690A (en) 1996-01-02 1998-09-15 Integrated Device Technology, Inc. Image generation system, methods and computer program products using distributed processing
GB2311882B (en) 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
CN1147785C (zh) 1996-08-27 2004-04-28 松下电器产业株式会社 执行多个指令流的多程序流程同时处理器
US5815023A (en) * 1997-03-20 1998-09-29 Sun Microsystems, Inc. Unbalanced multiplexer and arbiter combination
US5818469A (en) 1997-04-10 1998-10-06 International Business Machines Corporation Graphics interface processing methodology in symmetric multiprocessing or distributed network environments
US6278645B1 (en) * 1997-04-11 2001-08-21 3Dlabs Inc., Ltd. High speed video frame buffer
US6118452A (en) * 1997-08-05 2000-09-12 Hewlett-Packard Company Fragment visibility pretest system and methodology for improved performance of a graphics system
US6650327B1 (en) * 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6417858B1 (en) * 1998-12-23 2002-07-09 Microsoft Corporation Processor for geometry transformations and lighting calculations
JP5285828B2 (ja) 1999-04-09 2013-09-11 ラムバス・インコーポレーテッド 並列データ処理装置
US6459429B1 (en) * 1999-06-14 2002-10-01 Sun Microsystems, Inc. Segmenting compressed graphics data for parallel decompression and rendering
CN1201268C (zh) * 1999-06-30 2005-05-11 国际商业机器公司 实现运动模糊化的图像处理
US6384824B1 (en) 1999-07-07 2002-05-07 Microsoft Corporation Method, system and computer program product for multi-pass bump-mapping into an environment map
US6784882B1 (en) * 1999-09-10 2004-08-31 Sony Computer Entertainment Inc. Methods and apparatus for rendering an image including portions seen through one or more objects of the image
JP2001118082A (ja) * 1999-10-15 2001-04-27 Toshiba Corp 描画演算処理装置
US6353439B1 (en) * 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6573900B1 (en) 1999-12-06 2003-06-03 Nvidia Corporation Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads
US6665765B1 (en) * 2000-02-29 2003-12-16 Hewlett-Packard Development Company, L.P. Hot docking drive wedge and port replicator
US6819325B2 (en) * 2000-03-07 2004-11-16 Microsoft Corporation API communications for vertex and pixel shaders
US6731289B1 (en) * 2000-05-12 2004-05-04 Microsoft Corporation Extended range pixel display system and method
US6724394B1 (en) 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
JP2002133438A (ja) * 2000-10-19 2002-05-10 Mitsubishi Electric Corp 3次元グラフィックス描画装置、3次元グラフィックス描画方法および3次元ポリゴンデータを記録したコンピュータで読取可能な記録媒体
US6573893B1 (en) * 2000-11-01 2003-06-03 Hewlett-Packard Development Company, L.P. Voxel transfer circuit for accelerated volume rendering of a graphics image
US6697074B2 (en) * 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
KR100803114B1 (ko) * 2000-11-30 2008-02-14 엘지전자 주식회사 메모리 중재 방법 및 시스템
US6943800B2 (en) * 2001-08-13 2005-09-13 Ati Technologies, Inc. Method and apparatus for updating state data
US20030076320A1 (en) 2001-10-18 2003-04-24 David Collodi Programmable per-pixel shader with lighting support
US7376811B2 (en) 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
JP2003181136A (ja) * 2001-12-14 2003-07-02 Sega Corp 音声制御方法
US7187383B2 (en) * 2002-03-01 2007-03-06 3D Labs Inc., Ltd Yield enhancement of complex chips
US7015909B1 (en) * 2002-03-19 2006-03-21 Aechelon Technology, Inc. Efficient use of user-defined shaders to implement graphics operations
US6980209B1 (en) 2002-06-14 2005-12-27 Nvidia Corporation Method and system for scalable, dataflow-based, programmable processing of graphics data
US6809732B2 (en) * 2002-07-18 2004-10-26 Nvidia Corporation Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions
US6864893B2 (en) 2002-07-19 2005-03-08 Nvidia Corporation Method and apparatus for modifying depth values using pixel programs
US7321369B2 (en) 2002-08-30 2008-01-22 Intel Corporation Method and apparatus for synchronizing processing of multiple asynchronous client queues on a graphics controller device
US6839062B2 (en) * 2003-02-24 2005-01-04 Microsoft Corporation Usage semantics
US7646817B2 (en) * 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
US7151543B1 (en) * 2003-04-16 2006-12-19 Nvidia Corporation Vertex processor with multiple interfaces
US7233335B2 (en) 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource
US7079147B2 (en) * 2003-05-14 2006-07-18 Lsi Logic Corporation System and method for cooperative operation of a processor and coprocessor
US7015913B1 (en) 2003-06-27 2006-03-21 Nvidia Corporation Method and apparatus for multithreaded processing of data in a programmable graphics processor
US7038685B1 (en) * 2003-06-30 2006-05-02 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
DE602004017879D1 (de) * 2003-08-28 2009-01-02 Mips Tech Inc Integrierter mechanismus zum suspendieren und endznem prozessor
US7239322B2 (en) * 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US6897871B1 (en) 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
JP2005260592A (ja) * 2004-03-11 2005-09-22 Fujitsu Ltd アンテナ装置、指向性制御方法及び通信装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441761B (zh) * 2007-08-15 2012-09-19 辉达公司 图形处理器单元管线中的条件执行位
TWI484441B (zh) * 2007-08-15 2015-05-11 Nvidia Corp 算術邏輯單元管路階段、圖形處理器單元管線和在其中處理資料的方法
CN101425175B (zh) * 2007-12-06 2012-03-21 威盛电子股份有限公司 着色器处理系统与方法
CN103974062A (zh) * 2013-06-24 2014-08-06 福州瑞芯微电子有限公司 图像显示装置、图像显示系统和图像显示方法
CN106204408A (zh) * 2014-12-23 2016-12-07 联发科技股份有限公司 绘图处理电路及其前置深度信息处理方法

Also Published As

Publication number Publication date
AU2011200479B2 (en) 2013-08-29
EP2299408A2 (en) 2011-03-23
US20070285427A1 (en) 2007-12-13
US20210233205A1 (en) 2021-07-29
CN1947156B (zh) 2013-07-10
AU2004292018A1 (en) 2005-06-02
EP2296116A2 (en) 2011-03-16
EP2876606B1 (en) 2020-07-22
EP2309460B1 (en) 2014-06-25
US20220222770A1 (en) 2022-07-14
US7327369B2 (en) 2008-02-05
US20230186423A1 (en) 2023-06-15
EP2299408B1 (en) 2014-02-12
US11328382B2 (en) 2022-05-10
EP1706847B1 (en) 2012-12-19
US10489876B2 (en) 2019-11-26
US20200043127A1 (en) 2020-02-06
EP2296116A3 (en) 2011-04-06
EP3748582A1 (en) 2020-12-09
US6897871B1 (en) 2005-05-24
AU2004292018B2 (en) 2010-11-11
EP2296115B1 (en) 2013-10-16
EP4071722A1 (en) 2022-10-12
HK1099111A1 (en) 2007-08-03
CN102176241A (zh) 2011-09-07
ZA200605069B (en) 2008-06-25
EP2876606A1 (en) 2015-05-27
US20160307356A1 (en) 2016-10-20
AU2011200479A1 (en) 2011-02-24
US20150154731A1 (en) 2015-06-04
US11023996B2 (en) 2021-06-01
US20200394750A1 (en) 2020-12-17
EP2296115A2 (en) 2011-03-16
US9582846B2 (en) 2017-02-28
EP2309460A1 (en) 2011-04-13
EP2296116B1 (en) 2012-12-19
CN102176241B (zh) 2014-04-16
US20100231592A1 (en) 2010-09-16
US10796400B2 (en) 2020-10-06
US20110216077A1 (en) 2011-09-08
EP2299408A3 (en) 2011-04-13
US20050110792A1 (en) 2005-05-26
US20140300613A1 (en) 2014-10-09
US8760454B2 (en) 2014-06-24
CA2585860A1 (en) 2006-06-02
ZA200705692B (en) 2008-08-27
EP1706847A1 (en) 2006-10-04
US20050200629A1 (en) 2005-09-15
US11605149B2 (en) 2023-03-14
WO2005050570A1 (en) 2005-06-02
EP3748582B1 (en) 2022-04-27
CA2585860C (en) 2014-10-28
EP2296115A3 (en) 2011-04-06

Similar Documents

Publication Publication Date Title
CN1947156B (zh) 使用统一着色器的图形处理结构
US6807620B1 (en) Game system with graphics processor
CA2298337C (en) Game system with graphics processor

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