CN101124613B - 片段着色管线中增加按比例缩放性的图形处理子系统及方法 - Google Patents

片段着色管线中增加按比例缩放性的图形处理子系统及方法 Download PDF

Info

Publication number
CN101124613B
CN101124613B CN2005800305441A CN200580030544A CN101124613B CN 101124613 B CN101124613 B CN 101124613B CN 2005800305441 A CN2005800305441 A CN 2005800305441A CN 200580030544 A CN200580030544 A CN 200580030544A CN 101124613 B CN101124613 B CN 101124613B
Authority
CN
China
Prior art keywords
fragment
fragment shader
pipeline
shader pipeline
receives
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2005800305441A
Other languages
English (en)
Other versions
CN101124613A (zh
Inventor
卡里姆·M·阿布达拉
埃米特·M·基尔加里夫
鲁伊·M·巴斯托斯
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN101124613A publication Critical patent/CN101124613A/zh
Application granted granted Critical
Publication of CN101124613B publication Critical patent/CN101124613B/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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Multi Processors (AREA)

Abstract

本发明揭示一种片段处理器,其包括片段着色器分配器、片段着色器收集器及多个片段着色器管线。每一片段着色器管线均对一部分片段执行片段着色器程序。所述多个片段着色器管线并行地操作,以执行相同或不同的片段着色器程序。片段着色器分配器从光栅化单元接收片段流并将所述片段流的一部分调度至所选片段着色器管线,直至达到所选片段着色器管线的容量为止。然后,所述片段着色器分配器选择另一片段着色器管线。每一片段着色器管线的容量受数种不同资源的限制。当所述片段着色器分配器调度片段时,其跟踪所选片段着色器管线的剩余可用资源。片段着色器收集器从所述多个片段着色器管线检索经处理的片段。

Description

片段着色管线中增加按比例缩放性的图形处理子系统及方法
技术领域
本发明涉及计算机制图领域。
背景技术
许多计算机图形图像是通过自一给定视点对光与三维景物的相互作用进行数学建模而产生。此过程-称作渲染-自所述给定视点产生景物的二维图像,且类似于拍摄现实世界景物的照片。
随着对计算机图形且特别是对实时计算机图形的需求的增加,具有适于使渲染过程加速的图形处理子系统的计算机系统已变得很普遍。在这些计算机系统中,是在计算机的通用中央处理器(CPU)与图形处理子系统之间划分渲染过程。通常,CPU执行高级操作,例如确定给定景物中物体的位置、运动及冲突。通过这些高级操作,CPU产生一组用于界定所期望渲染的图像的渲染命令及数据。例如,渲染命令及数据可界定景物几何形状、照明度、着色器度、纹理、运动、及/或景物的照相机参数。图形处理子系统根据该组渲染命令及数据产生一个或多个渲染图像。
图形处理子系统通常使用流处理模型,其中由一系列流处理单元接连地读取及操作各输入元件。一个流处理单元的输出输入至该系列中的下一流处理单元。通常,数据在该系列流处理单元中只单向流动(“顺流”)。流处理单元的实例包括:顶点处理器,其处理二维或三维顶点;光栅化器处理器,其将由各组二维或三维顶点所界定的几何图元处理成各组像素或子像素-称作片段;及片段处理器,其处理片段以确定其颜色及其他属性。
许多图形处理子系统具有高度的可编程性,从而尤其能够实施复杂的照明及着色器处理算法。为利用此种可编程性,应用程序可包含一个或多个图形处理子系统程序,其是与由CPU所执行的主程序并行地由图形处理子系统来执行。尽管并不仅限于执行着色器及照明处理算法,然而常常将这些图形处理子系统程序称作着色程序(shadingprogram)或着色器(shader)。
每一可编程流处理单元均可适于与在其他流处理单元上执行着色程序并行地执行其自身的单独的着色程序。复杂算法的实施方案常常取决于为每一流处理单元定制的单独的着色程序,这些单独的着色程序一同工作来获得所期望的结果。在这些实施方案中,可将一系列中的开头的流处理单元的着色程序的输出与该系列中后续流处理单元的着色程序的输入相链接。
可编程片段处理器常常是改善渲染性能的瓶颈。通常,可编程片段处理器必须针对所渲染的每一片段执行一次其着色程序。由于片段着色程序包含成百或上千个指令且每一所渲染图像均由上百万个片段产生,因而对片段处理器的计算要求非常大。
因此,对于图形处理而言,希望具有一种具有改良的性能的可编程片段处理器。进一步希望使可编程片段处理器可容易且有效地按比例缩放,以满足不同的成本及性能目标。
发明内容
在本发明的一实施例中,提供一种片段处理单元,其包括片段着色器分配器、片段着色器收集器、及多个片段着色器管线。每一片段着色器管线均适于对一部分片段执行片段着色器程序。所述多个片段着色器管线并行地运行,从而执行相同或不同的片段着色器程序。所述片段着色器分配器从光栅化单元接收片段流。
所述片段着色器分配器将所述片段流的一部分调度至所选的片段着色器管线,直至达到所选片段着色器管线的容量或者直至在预设定持续时间内不再有片段到达为止。然后,片段着色器分配器选择另一片段着色器管线。片段流中发送至所选片段着色器管线的部分称作一部分片段流。每一片段着色器管线的容量受限于几个不同的资源。在片段着色器分配器对片段进行调度时,其会跟踪所选片段着色器管线的剩余可用资源。片段着色器收集器从所述多个片段着色器管线中检索经处理的片段。所述片段着色器收集器遵循与片段着色器分配器相同的选择次序,以保持片段流的次序。
在一实施例中,一种图形处理子系统包括片段处理器,所述片段处理器适于为片段流中的每一片段确定至少一个值。所述片段处理器包括第一片段着色器管线,其适于对一部分片段执行片段着色器程序的至少一部分。所述片段处理器还包括片段着色器分配器。所述片段着色器分配器适于:接收片段流,选择第一片段着色器管线来执行所述片段流的第一部分,及针对所述流中的每一所接收片段,判定所接收片段是否在所选片段着色器管线的一部分片段内,及响应于判定出所接收片段确实在所选片段着色器管线的所述一部分片段内,将所接收片段调度至所选片段着色器管线。片段着色器收集器适于:选择第一片段着色器管线,及响应于指示由片段着色器收集器所选的片段着色器管线已对所述一部分片段完成片段着色器程序的执行的信号,从由片段着色器收集器所选的片段着色器管线中检索所述一部分片段中的每一片段。
在又一实施例中,在适于判定所接收片段是否在第一片段着色器管线的一部分片段范围内方面,所述片段着色器分配器适于判定所接收片段的某些资源要求、判定所选片段着色器管线的可用资源的测量值、及响应于判定出所接收片段的资源要求不超过所选片段着色器管线的可用资源的测量值,产生一指示所接收片段在所选片段着色器管线的所述一部分片段内的信号。
在另一实施例中,所述图形处理子系统包括第二片段着色器管线,其适于对一部分片段执行片段着色器程序的至少一部分。响应于判定出所接收片段确实在所选片段着色器管线的所述一部分片段内,所述片段着色器分配器适于选择第二片段着色器管线并将所接收片段调度至所选片段着色器管线。在另一实施例中,所述片段着色器收集器适于接收一指示对第二片段着色器管线的选择的信号。响应于该信号,所述片段着色器收集器适于选择第二片段着色器管线。所述片段着色器收集器进一步适于响应于一指示由片段着色器收集器所选的片段着色器管线已对所述一部分片段完成片段着色器程序的执行的信号,从由片段着色器收集器所选的片段着色器管线中检索所述一部分片段中的每一片段。
附图说明
下文将参照图式来说明本发明,图式中:
图1为一适于构建本发明实施例的实例性计算机系统的方块图;
图2图解说明一根据本发明实施例的图形处理子系统的渲染管线的方块图;
图3图解说明一根据本发明实施例的片段处理单元的片段着色器部分;
图4图解说明一根据本发明实施例的片段着色器分配器;及
图5图解说明一种根据本发明实施例的指令定时方案。
具体实施方式
图1为一计算机系统100(例如个人计算机、视频游戏控制台、个人数字助理、或适于实施本发明实施例的其他数字装置)的方块图。计算机系统100包括用于运行软件应用程序及视需要运行操作系统的中央处理器(CPU)105。在一实施例中,CPU105实际上为数个并行操作的独立中央处理器。存储器110存储要由CPU 105使用的应用程序及数据。存储器115为应用程序及数据提供非易失性存储,并可包括固定磁盘驱动器、可拆卸式磁盘驱动器、闪速存储装置、及CD-ROM、DVD-ROM、或其他光学存储装置。用户输入装置120将来自一个或多个用户的用户输入传送至计算机系统100,并可包括键盘、鼠标、操纵杆、触摸屏、及/或麦克风。网络接口125使计算机系统100能够通过电子通信网络与其他计算机系统进行通信,并可包括通过局域网及广域网(例如因特网)进行的有线或无线通信。计算机系统100的各个组件,包括CPU105、存储器110、数据存储器115、用户输入装置120、及网络接口125,通过一个或多个数据总线160相连。数据总线的实例包括ISA、PCI、AGP、PCI、PCI-Express、及HyperTransport数据总线。
图形子系统130进一步与数据总线160及计算机系统100的各组件相连。图形子系统可与计算机系统母板相集成或者集成于以固定或可拆卸方式与计算机系统相连的单独电路板上。图形子系统130包括图形处理单元(GPU)135及图形存储器。所述图形存储器包括显示存储器140(例如帧缓冲器),用于存储输出图像中每一像素的像素数据。像素数据可从CPU 105直接提供至显示存储器140。另一选择为,CPU 105为GPU 135提供用于界定所期望输出图像的数据及/或命令,GPU 135据此产生一个或多个输出图像的像素数据。用于界定所期望输出图像的数据及/或命令存储于附加存储器145中。在实施例中,GPU 135根据渲染命令及数据为输出图像产生像素数据,这些渲染命令及数据界定景物的几何形状、照明度、着色度、纹理、运动、及/或照相机参数。
在另一实施例中,显示存储器140及/或附加存储器145为存储器110的一部分并与CPU 105共享。或者,显示存储器140及/或附加存储器145为一个或多个专门供用于图形子系统130的单独存储器。图形子系统130周期性地自显示存储器140输出图像的像素数据并显示于显示装置150上。显示装置150为任一能够响应于来自计算机系统100的信号而显示可视信息的装置,包括CRT、LCD、等离子及OLED显示器。计算机系统100可为显示装置150提供模拟或数字信号。
在另一实施例中,图形处理子系统130包括一个或多个类似于GPU 135的附加GPU 155。在再一实施例中,图形处理子系统130包括图形协处理器165。图形处理协处理器165及附加GPU 155适于与GPU 135并行操作或取代GPU 135。类似于GPU135,附加GPU 155根据渲染命令来产生输出图像的像素数据。附加GPU 155可与GPU135一起运行,以同时产生输出图像的不同部分的像素数据,或同时产生不同输出图像的像素数据。在实施例中,图形协处理器165为GPU 135及/或附加GPU 155执行与渲染相关的任务,例如几何形状变换、着色器计算、及背面剔除(backface culling)操作。
附加GPU 155可与GPU 135位于同一电路板上并与GPU 135共享通至数据总线160的连接,或者可位于单独与数据总线160连接的附加电路板上。附加GPU 155也可与GPU 135集成至同一模块或芯片封装上。附加GPU 155可具有其自身的类似于显示存储器140及附加存储器145的显示存储器及附加存储器,或者可与GPU 135共享存储器140及145。在实施例中,图形协处理器165与计算机系统芯片组(未显示)集成在一起,例如与用于控制数据总线160的Northbridge或Southbridge芯片集成在一起。
图2图解说明一根据本发明实施例的图形处理子系统的渲染管线200的方块图。管线200可构建于GPU 135中及/或如上文所述加以构建。管线200包括顶点处理单元205、视口及剔除(VPC)单元210、设置单元215、光栅化器单元220、颜色组合块225、及片段处理单元230。
顶点处理单元205接收用于界定所期望渲染的一个或多个图像的渲染命令及数据,其中包括几何形状、照明、着色、纹理化、运动、及/或照相机参数。渲染数据可包括一个或多个界定几何图元的顶点。每一顶点均具有以二维或三维座标系表示的位置。除位置之外,每一顶点还具有与其相关联的各种属性。一般而言,顶点的属性可包括在逐顶点基础上加以规定的任何属性。在一实施例中,顶点属性包括用于确定例如颜色、透明度、照明、着色、及顶点动画以及其相关联几何图元等性质的标量或向量属性。
顶点处理单元205对每一顶点执行一个或多个顶点程序(亦称作顶点着色器),以形成经变换的顶点。顶点处理单元205是可编程的,且渲染应用程序可规定欲用于任一组既定顶点的顶点程序。在一简单的实施例中,顶点程序将顶点从三维世界座标系变换至二维屏幕座标系。可使用更复杂的顶点程序来构建各种各样的视觉效果,包括照明度及着色器度、程序性几何形状、及动画操作。这些“每顶点”的操作的诸多实例已在所属领域中为人们所知,且由于其对于理解本发明而言并不重要,因而不再对其进行详细说明。顶点着色器程序可对顶点及数据执行使用各种各样数学及逻辑运算的算法,并可包括条件或分支路径以及直接和间接存储器存取。
视口及剔除单元210剔除或舍弃处于视野以外或者在所渲染图像中看不到的几何图元及/或其某些部分。通过舍弃在所渲染图像中看不到的几何图元,剔除作业会减少渲染管线200中各下游处理级所要处理的几何图元的数量,并由此提高渲染速度。
设置单元215将一个或多个顶点组合成几何图元,例如三角形或四边形。光栅化级220然后将每一几何图元转换成一个或多个像素片段。像素片段界定有可能在所渲染图像中加以显示的一组一个或多个像素。来自光栅化器的每一像素片段均包含用于界定相关联几何图元在所渲染图像中的潜在覆盖范围的信息,例如与该片段相关联的各像素的图像座标及在该像素位置上相关联几何图元的子像素覆盖范围。各像素片段提供至下文所述的片段处理器。
颜色组合及平面方程式设置块225将从顶点处理单元205接收到的每顶点的属性(例如顶点颜色、顶点深度值、顶点法向向量及纹理座标)与经预先光栅化的几何图元的其他属性(例如顶点位置)相关联,并计算其他每几何图元属性,例如在给定像素片段的位置的情况下用于在那些像素片段内任一点处内插每顶点属性值的平面方程式系数。各片段的每几何图元属性提供至片段处理器230。
片段处理器230将由光栅化器所产生的与每一像素片段相关联的位置信息与来自颜色组合及平面方程式设置单元的每顶点及每几何图元的属性及与片段着色程序结合使用,以确定每一片段的输出值(例如颜色及深度)。如顶点处理器205一样,片段处理单元是可编程的。对每一像素片段执行像素片段程序(也称作像素或片段着色器),以确定像素的输出颜色值。尽管像素片段程序独立于顶点着色器程序运行,然而像素片段程序可依赖于通过前面各流处理单元形成或传递的信息,包括通过顶点程序形成的信息。
渲染应用程序可规定要对任一组既定像素片段使用的像素片段程序。像素片段程序可用于构建各种各样的视觉效果,包括照明及着色器效果、反射、纹理映射及程序性纹理产生。这些“每顶点”操作的诸多实例已在所属领域中为人们所知,且由于其对于理解本发明而言并不重要,因而不再对其进行详细说明。像素片段着色器程序可对片段及数据执行使用各种各样数学及逻辑运算的算法,并可包括条件或分支执行路径以及直接和间接存储器存取。
然后将经着色器处理的片段与例如片段颜色、深度及模版值等属性一起输出至光栅操作及存储单元235。光栅操作单元235将从片段处理单元230输出的片段与所渲染图像中早已存储于片段缓冲器中的部分相结合。可使用先前在帧缓冲器中写至所渲染图像的像素来混合或掩蔽各片段。也可使用深度缓冲器、α缓冲器、及模版缓冲器来确定每一输入片段(如果有)对所渲染图像的作用。然后将每一输入片段与先前存储于帧缓冲器中的任何像素值的组合作为所渲染图像的一部分输出至例如位于显示存储器140中的帧缓冲器。
图3图解说明一根据本发明实施例的片段处理单元的片段着色器部分。在该实施例中,片段着色器300包括片段着色器分配器310、多个片段着色器管线单元315、317、319及321、侧面FIFO 325、及片段着色器收集器330。在图3所示实例中,具有四个片段着色器管线。然而,替代实施例可包括仅一个或任意其他数量个片段着色器管线,此仅受限于用于形成图形处理子系统的制造过程。在该实施例中,片段着色器分配器310接收来自光栅化器305的片段流(及其相关联的由光栅化器产生的属性)连同来自颜色组合及平面方程式单元303的其相关联的每几何图元的片段属性,在又一实施例中,此对应于光栅化器单元220和颜色组合及平面方程式设置单元225的输出。
在又一实施例中,片段着色器分配器310接收呈片段群组流形式的片段流。每一片段群组包括空间相邻片段的群组。在一种实施方案中,片段群组包括2像素×2像素阵列大小的片段,有时称作四像素片段。在替代实施方案中,片段群组可包括任何其他片段排列。
与每一片段群组相关联的是直接来自光栅化器的一组片段属性,包括指示各片段位置的座标及指示各片段的潜在可见性的覆盖范围信息。每一输入片段群组还具有与其相关联的已从或将要从来自颜色组合及平面方程式设置单元的每几何图元的属性内插的一组额外属性。
这些内插的片段属性可包括基色、透明度、深度信息、纹理座标及纹理模式信息(例如纹理滤波及纹理边界行为)。在一实施例中,这些其他属性在开始时与由光栅化级220用于形成图元片段群组的几何图元相关联,且当几何图元转换成片段时,此种关联转移至片段群组。在又一实施例中,可由片段处理单元来内插几何图元的某些或所有属性的值,以确定每一组片段属性的值。
片段处理单元的片段着色器部分可使用与每一输入片段相关联的任何或所有属性来确定相应片段的输出(例如最终颜色及深度)。
片段着色器分配器310将所接收的片段群组流组织成一个或多个段。段是片段着色器管线可在一次中处理的一组片段群组。如在下文中所详细说明,片段着色器管线的一实施例是管线式处理单元,其适于对段中的每一片段执行片段着色器程序的指令。在一实施例中,段中的片段群组的数量受片段着色器管线的处理资源的限制,此包括片段着色器管线中的级的数量、每一片段群组为执行片段着色器程序而需要的数据寄存器的数量、及与所述段的片段群组相关联的属性组的数量。为使片段着色器管线的性能最佳,片段着色器分配器310尝试着将片段着色器管线的处理资源限制值考虑在内,以最大可能数量的片段群组来形成各个段。
在其初始状态中,片段着色器分配器310选择所述多个片段着色器管线中的一个来接收第一部分片段群组。当片段着色器分配器310接收片段群组时,其判定所述片段群组是否在当前段内。如果尚未达到所述段的限制值,则片段着色器分配器310将所述片段群组转接至所选片段管线。在一实施例中,在从光栅化器305接收片段群组时,片段着色器分配器310连续地处理各片段群组并将其调度至所选片段着色器管线。一旦达到当前段的限制值,片段着色器分配器310便选择另一片段着色器管线并开始一新的段。片段着色器分配器310将新的段中的后续片段群组发送至新选定的片段着色器管线。
在一实施例中,片段着色器分配器310使用一种循环方法来选择片段着色器管线。在该实施例的一实例中,片段着色器分配器310首先将片段群组发送至片段着色器管线315,直至达到第一部分的限制值为止。将后续片段群组发送至片段着色器管线317,直至达到第二段的限制值为止。此将对所有片段着色器管线重复进行,其中在完成与最末片段着色器管线321相关联的段之后,将片段群组重新引导至片段着色器管线315。如果所选片段着色器管线尚未从处理其先前的片段群组段中释放出足够的处理资源以允许接受新的段的片段群组,则片段着色器310暂停,直至所选片段着色器管线具有足够的资源来开始从新的段接受片段群组为止。
每一片段着色器管线315、317、319及321均适于对段中的每一片段执行片段着色器程序的指令。在一实施例中,每一片段着色器管线包括若干个执行级,其实施远景修正操作、纹理映像查找操作、混合操作及其他操作。每一片段管线单元中的寄存器文件存储在执行每一片段群组时与该片段群组相关联的数据值。对于复杂的片段着色器程序而言,段中的片段群组重新循环经过片段着色器管线一次或多次,其中在随后每次经过管线时执行片段着色器程序的其他部分。当片段群组重新循环至片段着色器管线的起始处以对片段群组应用其他指令时,使用在该次经过片段着色器管线期间所计算的寄存器值来更新相应片段的寄存器文件状态。在一实施例中,片段着色器管线的每一管线级均从着色器指令单元接收微代码形式的指令,在图3中,为清楚起见,省略了该着色器指令单元。
与段中各片段群组相关联的某些属性并不影响片段着色器管线对所述段进行的处理。这些属性称作直通式属性。此外,来自光栅化器305的片段流也可包括需要与图形管线中处于片段处理单元下游的其他部分(例如光栅操作单元335)进行交流的其他命令或数据(称作状态束)。
为改善所述多个片段着色器管线的性能,片段着色器300的实施例将这些直通式属性与发送至片段着色器管线的其对应的段分离,并使直通式属性及状态束转向至侧面FIFO 325。侧面FIFO 325是先进/先出缓冲器。在实施例中,在片段着色器分配器310将片段群组发送至所选片段着色器管线时,片段着色器分配器310也向侧面FIFO
325中插入对应的片段包。在又一实施例中,当片段着色器分配器310将段中的最末片段群组发送至片段着色器管线时,发送至侧面FIFO 325的对应片段包包含段结束指示符。如下文所述,所述段结束指示符由片段着色器收集器330用于将片段群组与其对应的直通式属性重新组合。另外,当片段着色器分配器310接收片段流中的状态束时,片段着色器分配器310将状态束直接发送至侧面FIFO 325。在实施例中,如果状态束影响该组片段着色器管线的模式,则除侧面FIFO 325之外,片段着色器分配器310还向所述多个片段着色器管线中的每一者分配状态束的副本。
片段着色器收集器330从片段着色器管线检索经处理的片段群组,将其与来自侧面FIFO 325的其对应直通式属性相结合,并将其转接至光栅操作单元335,如果所述片段群组未被例如深度缓冲器、模版缓冲器及/或α缓冲器掩蔽,则光栅操作单元335可然后将片段群组存储于帧缓冲器340中。在实施例中,片段着色器收集器330引用侧面FIFO 325来保持由片段着色器单元所处理的片段流的次序。在此实施例中,片段着色器收集器330的初始状态选择与片段着色器分配器310所选的相同的片段着色器管线。片段着色器收集器330然后从侧面FIFO 325中检索第一数据项。如果所检索的数据项为片段包,则片段着色器收集器330等待至所选片段着色器管线结束对对应片段群组的处理为止。片段着色器收集器330然后从所选片段着色器管线中检索对应的片段群组,将其与片段包的直通式属性相结合,并将片段群组发送至光栅操作单元335。此对侧面FIFO 325中的后续片段包重复进行。
如果片段包包含段结束指示符,则片段着色器收集器330将按顺序选择下一片段着色器管线来检索片段群组。片段着色器收集器330所使用的顺序与片段着色器分配器310所使用的顺序相同,例如为循环顺序。由于片段着色器分配器310与片段着色器收集器330二者使用同一顺序,因而片段着色器收集器330将以与片段着色器分配器310发送各片段群组段相同的次序来读取各片段群组段。此外,由于各片段着色器管线分别以与接收各片段群组相同的次序来输出各片段群组,因而侧面FIFO 325中各片段包的次序将与片段着色器管线输出各片段群组的次序相同。此外,通过使用单个段结束指示符而并非使用特定的片段着色器管线标识编号,使得无需加宽侧面FIFO325来保持增多的信息位便能够改变片段着色器管线的数量。
另外,由于侧面FIFO 325中的束并不具有任何对应的片段群组,因而片段着色器收集器330可从侧面FIFO 325读取束并将其输出至光栅操作单元335,而不等待片段着色器管线结束处理。由于侧面FIFO 325保持片段流的次序,因而在一实施例中,侧面FIFO 325必须包含足以容纳所有片段着色器管线在一既定时刻所正处理的所有段的片段包的项、加上用于束及其他开销(例如用于存储于每一着色器管线单元的输入及输出缓冲器中的片段群组)的项。
片段着色器300可包括任意数量的片段着色器管线,从而能够容易地对性能进行按比例缩放,以满足性能或成本目标。此外,增大片段着色器管线的数量几乎不会在所例示的附加片段着色器管线的实际面积之外引起附加的面积或复杂度开销。通常的装置制造工艺常常会引入点缺陷,此可损坏装置的一小部分、但仍使装置的其余部分能够正常工作。为提高制造良率,片段着色器300的一实施例制造有超过所需数量的片段着色器管线数量。在制造之后,测试每一片段着色器管线,且如果其因点缺陷而存在缺陷,则对一组熔丝或其他可一次性编程的存储器进行编程来指示所述有缺陷的片段着色器管线。通过使用此种所存储的指示符,片段着色器分配器310与片段着色器收集器330二者均适于跳过有缺陷的片段着色器管线。此使片段着色器300能够以其余无缺陷的片段着色器管线来正常工作。因此,能够将原本有缺陷的装置挽救为可使用的装置,从而提高制造良率并降低成本。
图4图解说明根据本发明一实施例的片段着色器分配器400。如上文所述,片段着色器分配器将片段流组织成段并将段中的片段分配至所选片段着色器管线。在一实施例中,片段着色器分配器400从光栅化器以8-区块流形式接收片段流。在图4中,片段流包括片段的两个实例性8-区块404及408。在该实例中,光栅化器自几何图元402及406产生片段的实例性8-区块。片段的每一8-区块包含八个片段群组。如上文所述,在一实施例中,每一片段群组对应于呈2×2阵列形式的四个像素。片段的每一8-区块覆盖其相关联几何图元的至少一部分。例如,在8-区块404中,片段群组432、434、436、438及440被几何图元402的至少一部分覆盖。8-区块404中的其余片段群组-片段群组460、462及464-则未被几何图元402覆盖。
片段着色器分配器400包括用于确定片段边界的分段器410。如上文所述,段是片段着色器管线将在一次中处理的一组片段群组。段的大小受片段着色器管线的资源的限制。片段着色器管线资源可包括管线级的数量,此可限制片段或片段群组的数量、数据寄存器的数量及与段的片段群组相关联的几何图元的相关属性的数量。在又一实施例中,在达到所选片段着色器管线的任何资源限制值之前,其他事件(例如在预设定的时间限制值内未从光栅化器305接收到更多的片段群组)可使段关闭。
在一实施例中,分段器410预先确定任一单个即将到来的片段群组在其将由片段着色器分配器400加以处理时所将消耗的片段着色器管线资源的量。每片段资源使用量是基于当前的图形状态,且在又一实施例中,是基于任一既定片段是否来自一不同于前一片段的几何图元。另外,一组计数器跟踪在处理一片段群组之后所消耗的累计片段管线资源。每一计数器对应于片段着色器管线中的一资源。在一实施例中,分段器410包括片段群组计数器415、几何图元属性计数器420、及片段程序寄存器使用量计数器425。在片段着色器分配器400处理每一片段群组时,该组计数器的值会发生改变,以反映该片段群组所消耗的资源。
每一计数器均进一步具有与片段着色器管线中的资源限制值相对应的限制值。当达到一个或多个计数器的限制值时,分段器410便发送信号来指示当前所选片段着色器管线的段完成。响应于此,片段着色器分配器400按顺序选择下一片段着色器管线,并将分段器410的该组计数器复位至其初始值,以指示尚未对新的段使用任何资源。在另一实施例中,片段着色器分配器400还对与段中最末片段群组相关联的片段包添加段结束指示符。片段着色器分配器400然后继续处理来自光栅化器的流中的后续片段群组,将后续片段着色器群组发送至新选定的片段着色器管线。
在一实例中,在从光栅化器接收到8-区块404时,分段器410将使片段群组计数器415改变5,此对应于所覆盖的这五个片段群组432、434、436、438及440。如在下文中所详细说明,分段器410不考虑8-区块404中其余未被覆盖的片段群组-其为片段群组460、462及464,因为压缩器430将舍弃这些空的片段群组。在一实施例中,每一片段着色器管线可处理段中的多达220个片段群组;因而,片段群组计数器415的限制值为220。
另外,片段群组432、434、436、438及440全部与几何图元402相关联。每一几何图元进一步与一组属性相关联。在一实施例中,该组属性包括平面方程式参数、颜色、灰雾值、纹理座标、剪切面、及/或其他要应用于或内插于几何图元上的标量或向量值。在片段着色器分配器400处理片段群组时,属性计数器会变化与片段群组相关联的属性的数量。例如,如果几何图元402与五个属性(例如颜色、灰雾、三分量纹理座标)相关联,则在处理与属性计数器420相关联的片段群组时,属性计数器420会变化5。在一种实施方案中,每一片段着色器管线可为六十四个不同几何图元中的每一个存储一组四个属性;因此,属性计数器420的限制值为256个属性。在另一实施例中,可以减小段中片段的最大数量为代价来增大每一几何图元的属性的数量,或者反之。
在又一实施例中,无论与一既定几何图元相关联的片段群组的数量如何,均通过仅存储图元的所述一组属性的一个副本来使属性存储空间要求最小化。在该实施例中,分段器410仅需要对几何图元进行一次计时,而非针对与所述图元相关联的每一片段进行计数。在该实施例的一种实施方案中,光栅化器依次处理每一几何图元;因此,光栅化器在输出与另一几何图元相关联的片段之前,输出与既定几何图元相关联的所有片段群组。一旦完成对既定几何图元的处理,光栅化器便向片段群组流中插入图元结束指示符。一旦接收到图元结束指示符,分段器410便使属性计数器420递增与包含所述流中下一片段群组的几何图元相关联的属性数量。在此种实施方案中,分段器410并不针对所述流中的各后续片段群组来递增属性计数器420,直至其接收到另一图元结束指示符为止。在该实施例中,可以减小可存储及与段中的片段相关联的几何图元的最大数量为代价来增大每一几何图元的属性数量,从而有可能但未必一定限制段中的片段群组的数量,反之亦然。
此外,片段着色器管线通常在对每一片段执行片段着色器程序的同时,使用数个数据寄存器来临时存储数据。由于每一片段均由片段着色器程序的一单独实例来执行,因而每一片段均需要其自身的一组数据寄存器。在一实施例中,每一片段着色器管线可在段中的各片段群组之中动态地分配其数据寄存器集合。例如,如果片段着色器管线包括880个数据寄存器,则一每片段群组使用四个数据寄存器来执行其片段着色器程序的段可包括多达220个片段群组。类似地,一每片段群组使用五个数据寄存器的段可包括多达176个片段群组。在片段着色器分配器400处理片段群组时,分段器410改变寄存器计数器425,以反映为执行片段着色器程序,每一片段群组所需的数据寄存器的数量。
压缩器430舍弃未被覆盖的片段群组,例如8-区块404中的片段群组460、462、及464,且在一实施例中,将其余片段群组重新组织成4-区块一其分别为可与相同或不同几何图元相关联的一组四个片段群组。例如,压缩器430将片段群组432、434、436及438组织成4-区块450,并将片段群组440、442、444及446组织成4-区块455。应注意,4-区块455包括与不同几何图元(在本实例中为几何图元402及406)相关联的片段群组。在该实例中,片段群组448将包含于下一4-区块中(为清楚起见,已将其省略)。片段着色器分配器400将由压缩器430形成的4-片段群组区块发送至所选片段着色器管线。
对于并行运行的多个片段着色器管线,如在图3中所示,各片段着色器管线将通常大致同时地执行纹理查找及其他存储器存取。因此,高速缓冲存储器及外部存储器数据存取请求的速率将不均匀,其中长的空闲周期与存在大量存取的周期相夹杂。为使存储器存取的速率变均匀并减小总体延迟,本发明的一实施例使用一种指令定时方案来使各存储器存取相交错。
图5图解说明一种根据本发明实施例的指令定时方案500。在定时方案500中,发出用于第一片段着色器管线的第一遍505的一组片段着色器指令,且第一片段着色器管线开始执行这些指令。定时方案500此后等待一简短的时间周期,然后发送用于第二片段着色器管线的第一遍510的一组片段着色器指令。在另一延时之后,分别对用于第三及第四片段着色器管线的第一遍515及520的各组片段着色器指令重复进行此作业。因此,各片段着色器管线以交错方式执行其各自的片段着色器程序,以使该组片段着色器管线对存储器的存取分布于更长的时间周期中,从而减少同时进行的存储器请求的峰值数量且因而减小存储器存取的平均延迟。对于其他各遍的片段着色器指令,例如对于该组片段着色器管线的第二遍525、530、535及540的各组片段着色器指令,重复实施此种指令交错。
本发明使能够容易且有效地按比例缩放拟缩放的图形处理子系统片段处理单元的性能,以实现不同的成本及性能目标。尽管上文是参照具有四个片段着色器管线的实例性片段处理单元来说明本发明,然而本发明也可应用于流处理系统中具有任意数量并行管线的处理单元。虽然上文是参照本发明的具体实例及其实施例来说明本发明,但这些实例及实施例仅例示而非限定本发明。因此,本发明的范围将仅由权利要求书来确定。

Claims (27)

1.一种图形处理子系统,其包括一片段处理器,所述片段处理器适于为一片段流中的每一片段确定至少一个值,所述片段处理器包括:
一第一片段着色器管线,其适于对一部分片段执行一片段着色器程序的至少一部分;
一片段着色器分配器,其适于:接收一片段流;选择所述第一片段着色器管线来执行所述片段流的一第一部分;及针对所述流中的每一所接收片段判定所述所接收片段是否在所选片段着色器管线的所述一部分片段范围内;及响应于判定所述所接收片段确实在所述所选片段着色器管线的所述一部分片段范围内,将所述所接收片段调度至所述所选片段着色器管线;及
一片段着色器收集器,其适于:选择所述第一片段着色器管线;及响应于指示所述片段着色器收集器所选择的所述片段着色器管线已对所述一部分片段完成所述片段着色器程序的执行的一信号,从所述片段着色器收集器所选择的所述片段着色器管线中检索所述一部分片段中的每一片段。
2.如权利要求1所述的图形处理子系统,其中在适于判定所述所接收片段是否在所述第一片段着色器管线的所述一部分片段范围内,所述片段着色器分配器适于判定所述所接收片段的某些资源要求;判定所述所选片段着色器管线的可用资源的一测量值;及响应于判定所述所接收片段的资源要求不超过所述所选片段着色器管线的可用资源的所述测量值,产生指示所述所接收片段在所述所选片段着色器管线的所述一部分片段范围内的一信号。
3.如权利要求2所述的图形处理子系统,其中所述片段着色器分配器进一步包括多个计数器,每一计数器对应于所述所选片段着色器管线的一资源,且其中所述片段着色器分配器进一步适于根据所述所接收片段中每一者的资源要求改变所述多个计数器的值。
4.如权利要求3所述的图形处理子系统,其中所述多个计数器中的每一者均与代表所述所选片段着色器管线中对应资源的限制的一资源限制值相关联,且在适于产生指示所述所接收片段在所述第一片段着色器管线的所述一部分片段范围内的一信号中,所述片段着色器分配器适于判定所述多个计数器均尚未达到其相关联的资源限制值。
5.如权利要求1所述的图形处理子系统,其进一步包括:
一第二片段着色器管线,其适于对一部分片段执行一片段着色器程序的至少一部分;及
其中响应于判定所述所接收片段不在所述所选片段着色器管线的所述一部分片段范围内,所述片段着色器分配器适于选择所述第二片段着色器管线并将所述所接收片段调度至新选定的片段着色器管线。
6.如权利要求5所述的图形处理子系统,其中所述片段着色器收集器适于接收指示选定所述第二片段着色器管线的一信号且响应于所述信号:
选择所述第二片段着色器管线且响应于指示所述片段着色器收集器所选择的所述片段着色器管线已对所述一部分片段完成所述片段着色器程序的执行的一信号,从所述片段着色器收集器所选择的所述片段着色器管线中检索所述一部分片段中的每一片段。
7.如权利要求6所述的图形处理子系统,其中所述片段着色器收集器通过侧面先进先出缓冲器接收所述信号。
8.如权利要求7所述的图形处理子系统,其中所述片段着色器分配器进一步适于针对被调度至所述片段着色器管线中一者的每一所接收片段在所述侧面先进先出缓冲器中插入一片段包。
9.如权利要求8所述的图形处理子系统,其中每一片段包包含所述所接收片段的一组属性。
10.如权利要求9所述的图形处理子系统,其中所述片段着色器收集器适于使每一片段包的所述一组属性与从所述片段着色器收集器所选择的所述片段着色器管线中检索的对应片段相匹配。
11.如权利要求6所述的图形处理子系统,其进一步包括:
一第三片段着色器管线,其适于对一部分片段执行一片段着色器程序的至少一部分;
其中响应于判定所述所接收片段不在所述第二片段着色器管线的所述一部分片段范围内,所述片段着色器分配器适于选择所述第三片段着色器管线并将所述所接收片段调度至新选定的片段着色器管线;及
其中所述片段着色器收集器适于接收指示选定所述第三片段着色器管线的一信号且响应于所述信号:
选择所述第三片段着色器管线且响应于指示所述片段着色器收集器所选择的所述片段着色器管线已对所述一部分片段完成所述片段着色器程序的执行的一信号,从所述片段着色器收集器所选择的所述片段着色器管线中检索所述一部分片段中的每一片段。
12.如权利要求11所述的图形处理子系统,其中所述片段着色器分配器及片段着色器收集器适于以一循环次序从多个片段着色器管线中进行选择。
13.如权利要求5所述的图形处理子系统,其中所述第一及第二片段着色器管线适于并行地执行同一片段着色器程序的单独实例。
14.如权利要求5所述的图形处理子系统,其中所述第一及第二片段着色器管线适于并行地执行不同片段着色器程序的单独实例。
15.如权利要求2所述的图形处理子系统,其中所述所选片段着色器管线的所述可用资源包括所述一部分片段中片段的一最大数量。
16.如权利要求15所述的图形处理子系统,其中所述一部分片段中片段的所述最大数量对应于所述所选片段着色器管线中管线级的数量。
17.如权利要求2所述的图形处理子系统,其中所述所选片段着色器管线的所述可用资源包括一组数据寄存器,且其中所述所接收片段的所述资源要求包括一数据寄存器要求,所述数据寄存器要求由将对所述所接收片段执行的所述片段着色器程序决定。
18.如权利要求2所述的图形处理子系统,其中所述所选片段着色器管线的所述可用资源包括一属性数据存储器,且其中所述所接收片段的所述资源要求包括与所述所接收片段相关联的一组属性。
19.如权利要求18所述的图形处理子系统,其中与所述所接收片段相关联的所述一组属性是从一几何图元的一组属性继承而来。
20.如权利要求1所述的图形处理子系统,其中所述片段着色器分配器适于响应于判定所述所接收片段不涵盖一相关联的几何图元而舍弃所述所接收片段。
21.如权利要求20所述的图形处理子系统,其中所述所接收片段是包含多个片段的一片段群组的一部分,且其中所述片段着色器分配器适于以一第二所接收片段来取代所述片段群组中被舍弃的片段并将包含所述第二所接收片段的所述片段群组调度至所述所选片段着色器管线。
22.如权利要求18所述的图形处理子系统,其中和所述一部分片段相关联的几何图元的一最大数量与和所述所接收片段相关联的所述一组属性的大小成反比。
23.一种用于为一片段流中的每一像素片段确定至少一个值的方法,所述方法包括:
选择适于对一部分片段执行一片段着色器程序的至少一部分并具有至少一个可用资源的一第一片段着色器管线;
接收一片段流中的一片段;
根据所述所接收片段的一资源要求减小所述所选片段着色器管线的可用资源的一测量值;
将所述所接收片段调度至所述所选片段着色器管线以供所述所选片段着色器管线的所述片段着色器程序进行处理;
将包含所述所接收片段的一属性的一片段包调度至一先进先出缓冲器;
重复所述接收、减小、调度所述所接收片段和响应于所述所选片段着色器管线的所述可用资源的所述测量值未达到资源限制值为所述片段流中的一第一多个后续片段调度一片段包的步骤;
响应于所述所选片段着色器管线的所述可用资源的所述测量值达到所述资源限制值,选择适于对一部分片段执行片段着色器程序的至少一部分并具有至少一个可用资源的一第二片段着色器管线;及
重复所述接收、减小、调度所述所接收片段和响应于所述所选片段着色器管线的所述可用资源的所述测量值未达到一资源限制值为所述片段流中的一第二多个后续片段调度一片段包的步骤。
24.如权利要求23所述的方法,其中所述调度所述片段包的步骤包括:响应于所述所选片段着色器管线的所述可用资源的所述测量值达到所述资源限制值而将一段结束指示符包含在所述片段包中。
25.如权利要求24所述的方法,其进一步包括:
选择所述第一片段着色器管线以用于片段检索;
从所述先进先出缓冲器中检索所述片段包;
从被选择用于片段检索的所述片段着色器管线中检索一对应片段;
将所述所检索片段包的属性与所述对应片段相组合以形成一组合片段;
将所述组合片段调度至一后续流处理单元;
响应于判定所述片段包不包含所述段结束指示符,对所述先进先出缓冲器中的一后续片段包重复所述检索、组合及调度步骤;及
响应于所述片段包包含所述段结束指示符,选择所述第二片段着色器管线以用于片段检索。
26.如权利要求23所述的方法,其中所述第一及第二片段着色器管线与一带高速缓冲存储器的存储器子系统介接,且所述方法进一步包括:
在重复所述接收、减小、调度所述所接收片段及为所述片段流中的第二多个后续片段调度一片段包的步骤之前,暂停一时间周期,其中所述时间周期的长度使从所述第一及第二片段着色器管线至所述带高速缓冲存储器的存储器系统的一组存储器存取得到优化。
27.如权利要求23所述的方法,其中所述片段包的属性包括一片段位置。
CN2005800305441A 2004-09-13 2005-08-19 片段着色管线中增加按比例缩放性的图形处理子系统及方法 Active CN101124613B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/940,070 US7218291B2 (en) 2004-09-13 2004-09-13 Increased scalability in the fragment shading pipeline
US10/940,070 2004-09-13
PCT/US2005/029930 WO2006031389A2 (en) 2004-09-13 2005-08-19 Increased scalability in the fragment shading pipeline

Publications (2)

Publication Number Publication Date
CN101124613A CN101124613A (zh) 2008-02-13
CN101124613B true CN101124613B (zh) 2010-06-16

Family

ID=36033397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800305441A Active CN101124613B (zh) 2004-09-13 2005-08-19 片段着色管线中增加按比例缩放性的图形处理子系统及方法

Country Status (6)

Country Link
US (1) US7218291B2 (zh)
EP (1) EP1789927B1 (zh)
JP (1) JP4639232B2 (zh)
KR (1) KR100887012B1 (zh)
CN (1) CN101124613B (zh)
WO (1) WO2006031389A2 (zh)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1687732A4 (en) * 2003-11-19 2008-11-19 Lucid Information Technology Ltd METHOD AND SYSTEM FOR A MULTIPLEXED 3D GRAPHIC PIPELINE VIA A PC BUS
US20080068389A1 (en) * 2003-11-19 2008-03-20 Reuven Bakalash Multi-mode parallel graphics rendering system (MMPGRS) embodied within a host computing system and employing the profiling of scenes in graphics-based applications
US7961194B2 (en) * 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US20070291040A1 (en) * 2005-01-25 2007-12-20 Reuven Bakalash Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation
US7812844B2 (en) * 2004-01-28 2010-10-12 Lucid Information Technology, Ltd. PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application
US20080094403A1 (en) * 2003-11-19 2008-04-24 Reuven Bakalash Computing system capable of parallelizing the operation graphics processing units (GPUs) supported on a CPU/GPU fusion-architecture chip and one or more external graphics cards, employing a software-implemented multi-mode parallel graphics rendering subsystem
US8497865B2 (en) 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
US20090027383A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US7385604B1 (en) * 2004-11-04 2008-06-10 Nvidia Corporation Fragment scattering
GB0425204D0 (en) * 2004-11-15 2004-12-15 Falanx Microsystems As Processing of 3-dimensional graphics
US7548244B2 (en) * 2005-01-12 2009-06-16 Sony Computer Entertainment Inc. Interactive debugging and monitoring of shader programs executing on a graphics processor
US20090096798A1 (en) * 2005-01-25 2009-04-16 Reuven Bakalash Graphics Processing and Display System Employing Multiple Graphics Cores on a Silicon Chip of Monolithic Construction
US8223845B1 (en) 2005-03-16 2012-07-17 Apple Inc. Multithread processing of video frames
US7830390B2 (en) * 2005-07-19 2010-11-09 Graphics Properties Holdings, Inc. Color computation of pixels using a plurality of vertex or fragment shader programs
US7616202B1 (en) * 2005-08-12 2009-11-10 Nvidia Corporation Compaction of z-only samples
US7559914B2 (en) * 2005-12-14 2009-07-14 Alcon, Inc. Priming a microsurgical system
JP4834446B2 (ja) * 2006-04-11 2011-12-14 株式会社東芝 画像処理装置
US8111260B2 (en) * 2006-06-28 2012-02-07 Microsoft Corporation Fast reconfiguration of graphics pipeline state
US8954947B2 (en) * 2006-06-29 2015-02-10 Microsoft Corporation Fast variable validation for state management of a graphics pipeline
US7750913B1 (en) 2006-10-24 2010-07-06 Adobe Systems Incorporated System and method for implementing graphics processing unit shader programs using snippets
KR101349171B1 (ko) * 2007-01-17 2014-01-09 삼성전자주식회사 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법
US8203558B2 (en) * 2008-01-28 2012-06-19 Apple Inc. Dynamic shader generation
US8509569B2 (en) * 2008-02-11 2013-08-13 Apple Inc. Optimization of image processing using multiple processing units
JP5491498B2 (ja) * 2008-05-30 2014-05-14 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 拡大縮小可能で且つ統合化されたコンピュータシステム
GB2475375B (en) * 2008-06-04 2011-12-14 Advanced Risc Mach Ltd Graphics processing systems
US8581912B2 (en) 2008-06-27 2013-11-12 Microsoft Corporation Dynamic subroutine linkage optimizing shader performance
US9665968B2 (en) * 2008-08-22 2017-05-30 Autodesk, Inc. Computerized image rendering with per-frame buffer scene segmentation
GB2466078B (en) * 2008-12-15 2013-11-13 Advanced Risc Mach Ltd Apparatus and method for tracing activities of a shader program executed on shader circuitry of a data processing apparatus
US8379024B2 (en) * 2009-02-18 2013-02-19 Autodesk, Inc. Modular shader architecture and method for computerized image rendering
US8416238B2 (en) 2009-02-18 2013-04-09 Autodesk, Inc. Modular shader architecture and method for computerized image rendering
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
JP5166343B2 (ja) 2009-04-17 2013-03-21 株式会社ディジタルメディアプロフェッショナル 3次元コンピュータグラフィック用プロセッサ
US8368694B2 (en) * 2009-06-04 2013-02-05 Autodesk, Inc Efficient rendering of multiple frame buffers with independent ray-tracing parameters
US8369564B2 (en) * 2009-06-30 2013-02-05 Apple Inc. Automatic generation and use of region of interest and domain of definition functions
US8970588B1 (en) * 2009-07-31 2015-03-03 Pixar System and methods for implementing object oriented structures in a shading language
US9244690B2 (en) * 2009-09-09 2016-01-26 Advanced Micro Devices, Inc. Variable frequency output to one or more buffers
JP2011086235A (ja) * 2009-10-19 2011-04-28 Fujitsu Ltd 画像処理装置、画像処理方法および画像処理プログラム
JP5311491B2 (ja) 2009-11-17 2013-10-09 Necシステムテクノロジー株式会社 グラフィクス頂点処理装置およびグラフィクス頂点処理方法
KR101719485B1 (ko) 2010-09-20 2017-03-27 삼성전자주식회사 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법
US8842121B2 (en) * 2011-02-03 2014-09-23 Intel Corporation Stream compaction for rasterization
US9595074B2 (en) 2011-09-16 2017-03-14 Imagination Technologies Limited Multistage collector for outputs in multiprocessor systems
CN103108197A (zh) 2011-11-14 2013-05-15 辉达公司 一种用于3d视频无线显示的优先级压缩方法和系统
US9829715B2 (en) 2012-01-23 2017-11-28 Nvidia Corporation Eyewear device for transmitting signal and communication method thereof
US9105250B2 (en) 2012-08-03 2015-08-11 Nvidia Corporation Coverage compaction
US9578224B2 (en) 2012-09-10 2017-02-21 Nvidia Corporation System and method for enhanced monoimaging
US9002125B2 (en) 2012-10-15 2015-04-07 Nvidia Corporation Z-plane compression with z-plane predictors
JP6066755B2 (ja) * 2013-02-07 2017-01-25 株式会社ソニー・インタラクティブエンタテインメント 描画処理装置および描画処理方法
KR102161742B1 (ko) 2013-10-11 2020-10-05 삼성전자주식회사 피드백 경로를 포함하는 파이프 라인 시스템 및 그 동작방법
US9946658B2 (en) 2013-11-22 2018-04-17 Nvidia Corporation Memory interface design having controllable internal and external interfaces for bypassing defective memory
US10935788B2 (en) 2014-01-24 2021-03-02 Nvidia Corporation Hybrid virtual 3D rendering approach to stereovision
US9536342B2 (en) * 2014-08-15 2017-01-03 Intel Corporation Automatic partitioning techniques for multi-phase pixel shading
US10002404B2 (en) * 2015-04-15 2018-06-19 Mediatek Singapore Pte. Ltd. Optimizing shading process for mixed order-sensitive and order-insensitive shader operations
CN105574925A (zh) * 2015-12-11 2016-05-11 中国航空工业集团公司西安航空计算技术研究所 一种自适应的光照处理算法动态选择策略
US9906981B2 (en) 2016-02-25 2018-02-27 Nvidia Corporation Method and system for dynamic regulation and control of Wi-Fi scans
US10152819B2 (en) 2016-08-15 2018-12-11 Microsoft Technology Licensing, Llc Variable rate shading
US10417815B2 (en) * 2017-01-27 2019-09-17 Advanced Micro Devices, Inc. Out of order pixel shader exports
US10650566B2 (en) 2017-02-15 2020-05-12 Microsoft Technology Licensing, Llc Multiple shader processes in graphics processing
US10147227B2 (en) 2017-02-17 2018-12-04 Microsoft Technology Licensing, Llc Variable rate shading
US10515466B2 (en) * 2017-06-09 2019-12-24 Sony Interactive Entertainment Inc. Optimized deferred lighting in a foveated rendering system
US10289393B2 (en) 2017-06-22 2019-05-14 Microsoft Technology Licensing, Llc GPU-executed program sequence cross-compilation
US10657698B2 (en) * 2017-06-22 2020-05-19 Microsoft Technology Licensing, Llc Texture value patch used in GPU-executed program sequence cross-compilation
US10241766B2 (en) 2017-06-22 2019-03-26 Microsoft Technology Licensing, Llc Application binary interface cross compilation
US10102015B1 (en) 2017-06-22 2018-10-16 Microsoft Technology Licensing, Llc Just in time GPU executed program cross compilation
US11012694B2 (en) 2018-05-01 2021-05-18 Nvidia Corporation Dynamically shifting video rendering tasks between a server and a client
US10713756B2 (en) * 2018-05-01 2020-07-14 Nvidia Corporation HW-assisted upscaling and multi-sampling using a high resolution depth buffer
CN108958921B (zh) * 2018-07-19 2023-06-20 南京军微半导体科技有限公司 Gpu中一种染色片段调度管理的硬件加速实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256385A (ja) * 2002-03-04 2003-09-12 Hitachi Ltd データ処理装置
WO2004006189A1 (en) * 2002-07-08 2004-01-15 Sidec Technologies Ab Imaging apparatus and method
JP2004021682A (ja) * 2002-06-18 2004-01-22 Canon Inc データ処理システム及び画像データ処理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6731303B1 (en) * 2000-06-15 2004-05-04 International Business Machines Corporation Hardware perspective correction of pixel coordinates and texture coordinates
US7187383B2 (en) 2002-03-01 2007-03-06 3D Labs Inc., Ltd Yield enhancement of complex chips
US7162620B2 (en) * 2002-03-13 2007-01-09 Sony Computer Entertainment Inc. Methods and apparatus for multi-processing execution of computer instructions
US7009605B2 (en) * 2002-03-20 2006-03-07 Nvidia Corporation System, method and computer program product for generating a shader program
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7714858B2 (en) * 2003-04-18 2010-05-11 Hewlett-Packard Development Company, L.P. Distributed rendering of interactive soft shadows
US7385607B2 (en) * 2004-04-12 2008-06-10 Nvidia Corporation Scalable shader architecture
US7744538B2 (en) * 2004-11-01 2010-06-29 Siemens Medical Solutions Usa, Inc. Minimum arc velocity interpolation for three-dimensional ultrasound imaging
US7681187B2 (en) * 2005-03-31 2010-03-16 Nvidia Corporation Method and apparatus for register allocation in presence of hardware constraints
US7830390B2 (en) * 2005-07-19 2010-11-09 Graphics Properties Holdings, Inc. Color computation of pixels using a plurality of vertex or fragment shader programs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256385A (ja) * 2002-03-04 2003-09-12 Hitachi Ltd データ処理装置
JP2004021682A (ja) * 2002-06-18 2004-01-22 Canon Inc データ処理システム及び画像データ処理システム
WO2004006189A1 (en) * 2002-07-08 2004-01-15 Sidec Technologies Ab Imaging apparatus and method

Also Published As

Publication number Publication date
KR20070064337A (ko) 2007-06-20
JP4639232B2 (ja) 2011-02-23
KR100887012B1 (ko) 2009-03-04
JP2008512771A (ja) 2008-04-24
EP1789927B1 (en) 2013-03-27
US20060055695A1 (en) 2006-03-16
US7218291B2 (en) 2007-05-15
EP1789927A2 (en) 2007-05-30
CN101124613A (zh) 2008-02-13
WO2006031389A3 (en) 2007-06-14
WO2006031389A2 (en) 2006-03-23
EP1789927A4 (en) 2008-06-04

Similar Documents

Publication Publication Date Title
CN101124613B (zh) 片段着色管线中增加按比例缩放性的图形处理子系统及方法
CN1938730B (zh) 基于寄存器的对纹理请求的排队
US7928990B2 (en) Graphics processing unit with unified vertex cache and shader register file
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
US6900800B2 (en) Tile relative origin for plane equations
JP5740704B2 (ja) レイトレース・レンダリングのための並列化された交差テストおよびシェーディングのアーキテクチャ
US6731288B2 (en) Graphics engine with isochronous context switching
US7830392B1 (en) Connecting multiple pixel shaders to a frame buffer without a crossbar
US6798421B2 (en) Same tile method
US7187383B2 (en) Yield enhancement of complex chips
US7737982B2 (en) Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video
CN109978751A (zh) 多gpu帧渲染
US6424345B1 (en) Binsorter triangle insertion optimization
US20100123717A1 (en) Dynamic Scheduling in a Graphics Processor
US20030174132A1 (en) Image processing unit, image processing system using the same, and image processing method
CN105321143A (zh) 来自片段着色程序的采样掩膜的控制
US20020126126A1 (en) Parameter circular buffers
KR20010085424A (ko) 지연 쉐이딩을 갖는 그래픽 프로세서
US7747842B1 (en) Configurable output buffer ganging for a parallel processor
US10810784B1 (en) Techniques for preloading textures in rendering graphics
CN103886634A (zh) 利用每像素着色器线程的高效超级采样
US20070211070A1 (en) Texture unit for multi processor environment
CN103810669A (zh) 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块
CN102651142A (zh) 图像渲染方法和装置
US20030164823A1 (en) 3D graphics accelerator architecture

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