CN1957376B - 可缩放着色器结构 - Google Patents
可缩放着色器结构 Download PDFInfo
- Publication number
- CN1957376B CN1957376B CN2005800164443A CN200580016444A CN1957376B CN 1957376 B CN1957376 B CN 1957376B CN 2005800164443 A CN2005800164443 A CN 2005800164443A CN 200580016444 A CN200580016444 A CN 200580016444A CN 1957376 B CN1957376 B CN 1957376B
- Authority
- CN
- China
- Prior art keywords
- shader
- section
- pixel data
- tinter
- pipelines
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000002950 deficient Effects 0.000 claims abstract 4
- 230000006870 function Effects 0.000 claims description 20
- 239000012634 fragment Substances 0.000 claims description 16
- 230000005055 memory storage Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 230000002596 correlated effect Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000002349 favourable effect Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- SEQDDYPDSLOBDC-UHFFFAOYSA-N Temazepam Chemical compound N=1C(O)C(=O)N(C)C2=CC=C(Cl)C=C2C=1C1=CC=CC=C1 SEQDDYPDSLOBDC-UHFFFAOYSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Abstract
本发明揭示一种可缩放着色器结构。根据所述结构,一着色器包括多个着色器管线,其每一者可对光栅化像素数据执行处理操作。可根据需要在功能上移除着色器管线,从而防止有故障着色器管线造成芯片报废。着色器包括一着色器分配器,所述着色器分配器处理光栅化像素数据且接着有利地以平衡工作负荷的方式将所处理的光栅化像素数据选择性地分配到各着色器管线。一着色器收集器将各着色器管线的输出格式化为适当次序以形成着色像素数据。着色器指令处理器(排程器)编程个别着色器管线以执行其既定任务。每个着色器管线具有一着色器门监,所述着色器门监与着色器分配器以及着色器指令处理器交互作用,以使得根据需要来控制并处理通过着色器管线的像素数据。
Description
对相关申请案的交叉参考
本申请案主张在2004年4月20日递交的题为“GRAPHICS SHADERARCHITECTURE”的美国临时专利申请案第60/561,617号(代理人案号为P001278)的权利,且所述申请案以引用的方式并入本文中。
技术领域
本发明涉及计算机系统,且更特定地说,涉及计算机着色。
背景技术
图形处理是现代高性能计算系统的重要特征。在图形处理中,数学程序经实施以在显示器上呈现或描绘图形图元(例如三角形或矩形),以产生所需视觉图像。实时图形处理是基于图形图元的高速处理来产生视觉上令人满意的移动图像。
早期图形系统限于显示由具有光滑表面的图形图元组成的图像对象。也就是说,视觉纹理、突起、划痕或其它表面特征不在图形图元中模拟。为了增强图像质量,引入真实世界属性的纹理映射。一般来说,纹理映射是将图像映射到图形图元表面以建立复杂图像的外观而无需与呈现对象的实际三维细节相关联的高计算成本。
通常通过使用应用程序界面(API)来执行图形处理,所述API提供一可在多个平台、操作系统上运行的标准软件界面和硬件。API的实例包括开放式图形库(OpenGL)和D3DTM。一般来说,此类开放式应用程序包括一预定的标准化组的命令,其由相关硬件执行。举例来说,在支持OpenGL标准的计算机系统中,操作系统和应用软件程序可根据所述标准来进行调用,而无需知道任何与系统硬件有关的细节。应用程序编写者可使用API来设计其应用程序的视觉方面,而无需关注将如何实施其命令。
API在由专用硬件支持时是特别有利的。事实上,通常通过使用专用图形处理单元(GPU)来执行图形图像的高速处理,所述GPU被制造在半导体衬底上。有利地,一GPU可经设计并用以在对其它系统资源具有微小影响的情况下快速且准确地处理命令。
图1说明图形系统100的简化方框图,所述图形系统100包括一图形处理单元102。如图所示,所述图形处理单元102具有一主机接口/前端104。所述主机接口/前端104从中央处理单元103接收原始图形数据,所述中央处理单元103运行一存储在记忆体105中的应用程序。所述主机接口/前端104缓冲输入信息且将所述信息提供到一几何引擎106。所述几何引擎能通过一帧缓冲器接口116来存取一帧缓冲器存储器120。几何引擎106产生、按比例缩放、旋转存储在帧缓冲器存储器120中的“模型”坐标中的图形图元的三维顶点,且将其投影到二维帧缓冲器坐标中。通常,三角形被用作为三维对象的图形图元,但矩形通常用于2维对象(例如文本显示)。
来自几何引擎106的图形图元的顶点的二维帧缓冲器坐标被应用到一光栅器108。所述光栅器108识别图形图元内所有像素的位置。此通常沿在限定图形图元的线之间延伸的光栅(水平)线来执行。光栅器108的输出被称为光栅化像素数据。
光栅化像素数据被应用到一着色器110,所述着色器通过使用一着色器程序(指令序列)来处理输入数据(代码、位置、纹理、条件、常数等)以产生输出数据。尽管相对于图形处理来描述着色器,但一般来说,着色器可用于多种其它功能。可认为着色器是多种处理能力的集合,其能(例如)通过并行处理数据而同时处理大量数据。
着色器110包括一纹理引擎112,所述纹理引擎112修改光栅化像素数据以得到所需纹理和光学特征。可通过使用以非常高速度来处理大量数据的硬件管线来实施纹理引擎112,所述纹理引擎112能存取存储在帧缓冲器存储器120中的数据。着色像素数据接着被发送到一光栅操作处理器114(图1中光栅op),所述光栅操作处理器114视情况对着色像素数据执行额外处理。结果像素数据由帧缓冲器接口116存储在帧缓冲器存储器120中。帧像素数据可用于各种处理,例如在显示器122上显示。
可编程着色器实现可达成视觉效应中的灵活性,且可降低图形功能变得可用与所述功能被标准化为图形API的一部分之间的时间。可编程着色器可具有一其中可实施标准图形API命令的标准API模式和一其中可编程新图形特征的非标准模式。
尽管着色器已证明其自身为有用的,但对于着色器性能的需求已超过了现有着色器的能力。尽管改进现有着色器可解决所述需求中的一些,但将难以实施此类改进。另外,预计未来需要将超过由改进的现有着色器结构和实施可达成的能力。因此,一种新型着色器结构将比较有利。一种实现软件编程的图形特征的新型高性能可编程着色器结构将更为有利。一种可根据需要来按比例缩放以满足着色器性能要求且可经扩展以实现高级图形功能性的新型高性能可编程着色器结构也将比较有利。
另外,由于GPU是以高速操作且产生大量热的大型复杂半导体元件,且由于着色器代表GPU的重要区域,因而着色器故障引起很大百分比的GPU芯片报废。具有启用或停用着色器的功能部分且同时仍提供着色器处理功能的能力的着色器结构将比较有利。
发明内容
本发明的原理供新型、有用且非明显可缩放着色器结构使用。此类着色器结构可根据需要来按比例放大或缩小,以满足性能需求且提供具有降低或增强的性能的系统。
本发明的原理的一些实施例可采用包括多个着色器管线的高性能可编程着色器的形式,其中每个着色器管线可经编程以对光栅化像素数据执行数据处理操作。有利地,着色器管线是相同的,其可经独立编程,个别着色器管线可被停用,且即使一个或一个以上着色器管线被停用也能执行着色器处理操作。
在本发明的实施例中,一着色器分配器有利地以使得着色器管线的工作负荷为相似的的平衡方式来将光栅化像素数据分配到各着色器管线。然而,可有利地在功能上停用一个或一个以上着色器管线,从而防止着色器管线中的故障造成非功能芯片。着色器收集器收集并组织着色器管线的输出,以使得其具有适当次序,从而获得着色像素数据。着色器指令处理器根据需要来编程个别着色器管线以执行其处理任务。本发明的一些实施例包括一个以上着色器指令处理器。
每个着色器管线包括一着色器门监,所述着色器门监与着色器分配器和着色器指令处理器相交互,以使得根据需要来控制并处理通过着色器管线的像素数据。
附图说明
从下文参看图式对本发明优选实施例的详细描述中可更好地理解前述内容和其它方面和优点,其中:
图1示意性说明现有技术图形系统;
图2A示意性说明三角形几何图元;
图2B说明像素沿每条扫描线对准的三角形几何图元;
图3为具有多个着色器管线且符合本发明原理的着色器结构的高阶方框图;和
图4是说明图3所示的着色器结构的选定结构特征且仅展示若干着色器管线中的一者的方框图。
具体实施方式
本发明的原理供新型、可缩放且可编程着色器结构使用。符合所述原理的着色器结构包括多个着色器管线,所述着色器管线可经编程以对光栅化像素数据执行处理操作以产生着色像素数据。一个或一个以上着色器管线可在功能上被停用而仍维持所述着色器的功能性。此能减少芯片报废,且允许通过仅调整一给定芯片中可用的管线数目来实施更低或更高性能的芯片。此类着色器结构包括一着色器分配器,其有利地以平衡其工作负荷的方式将光栅化像素数据(即使为经处理的光栅化像素数据)应用到各着色器管线。一着色器收集器收集着色器管线输出并将其组织成适当次序以产生着色像素数据。一着色器指令处理器(排程器)编程个别着色器管线以执行其期望任务。一些实施例可使用多个着色器指令处理器,例如使每个着色器管线具有一个着色器指令处理器。
每个着色器管线可经编程以执行实施各种处理操作的不同组程序命令(程序)。所述命令可包括分支指令、纹理处理和使用浮点、定点和/或整数值的数学运算。每个着色器管线包括一着色器门监,所述着色器门监与着色器分配器和着色器指令处理器相交互,以使得根据需要来处理通过着色器管线的数据。
为了更好地理解所述新型着色器结构,更详细地理解其功能是有帮助的。返回参看图1,着色器的输入是图形系统中所使用的图形图元的顶点的二维显示坐标。此外,纹理台112能存取帧缓冲器120中的数据。通常,所述图形图元为三角形,但并非总是这样。举例来说,图2A说明限定一图形图元三角形202的顶点的坐标(0,0)、(1,0)和(1,1)。如果使用矩形,那么在图形图元中将包括额外坐标(0,1)。然而,除例如文本的二维对象之外,三角形更常用。
一旦已知三角形202的顶点201,就可确定图形图元内的像素,这是因为其为位于形成图形图元的线210之间的像素。通常沿光栅扫描线来组织像素。举例来说,图2B说明三角形202内的复数个像素298,其由扫描线299对准。
图3为具有一符合本发明原理的结构的着色器300的高阶方框图。着色器300代表图1普通着色器110的新型、有用和不明显实施例。着色器300的用途是针对待发送到帧缓冲器的每个像素将来自光栅器108的光栅化像素数据(其具有每个片段的原始X,Y和用于每个顶点属性(例如色彩、深度、纹理、坐标等)的平面方程)转换为适当色彩和深度值。为此,着色器300响应于图形API功能且响应于应用程序命令执行大量运算来求解数学方程,以产生所要色彩和深度值,从而形成着色像素数据。在由光栅操作处理器执行额外处理之后,着色像素数据被转换为由帧缓冲器接口116存储在帧存储器120(参看图1)中的帧像素数据。
着色器300的一显著特征在于其多个着色器管线302。可通过存储在帧缓冲器记忆体120中的程序信息对每个着色器管线302进行独立编程,以对光栅化像素数据执行数学和其它处理操作,以产生着色像素数据。尽管着色器300被展示为具有四个着色器管线302,但一般可存在1到N个着色器管线302,其中N为整数。此缩放性可用于通过仅添加/删减着色器管线来控制着色器处理能力。此外,此缩放性赋予着色器管线302冗余,其依次又赋予在功能上停用有故障着色器管线302的能力,同时仍维持着色器300的整体操作。由于着色器管线302是有利地相同,因而根据需要来制造额外着色器管线302是一项相对简单的任务,这是由于可使用相同的掩模和半导体制造工艺。
着色器300还包括一着色器分配器304。所述着色器分配器304的一个功能是将来自光栅器108的信息(光栅化像素数据)分配到各着色器管线302,以使得其可处理所述光栅化像素数据。有利地,以提供着色器管线302之间的平衡工作负荷的方式来执行此分配。也就是说,每个着色器管线302执行相似量的处理,且没有一个优选于其它者。所述着色器分配器304的另一功能是处理来自光栅器108的数据,以使得着色器管线302仅接收其需要的数据。
来自未由着色器管线302使用的光栅器的一部分控制数据(被称为状态数据)由着色器分配器304应用到一先进先出缓冲器存储器306。除了状态数据之外,所述先进先出缓冲器存储器306还接收X-Y坐标和像素覆盖数据,所述X-Y坐标和像素覆盖数据也不通过着色器管线302。
因为着色器管线302独立处理光栅化像素数据,所以着色器管线302的输出必须以使得所得处理像素数据与帧缓冲器中的像素(由光栅扫描线)适当匹配的方式进行组织。着色器300因此包括一着色器收集器308,其接收着色器管线302的输出和先进先出缓冲器存储器306的输出,且组织着色器操作的结果以为光栅操作处理器114(ROP)产生着色像素数据。
着色器收集器308的输出通过帧缓冲器接口116应用到帧缓冲器存储器120,且因此应用到显示器122。由于着色器管线302都可向帧缓冲器存储器请求数据(通过纹理请求),因而着色器300还可包括一L2高速缓冲器存储器310以辅助所述处理。
着色器300具有一符合本发明原理的着色器结构。所述结构允许多个且可独立编程的着色器管线、一将数据分配到着色器管线的着色器分配器、一着色器收集器,所述着色器收集器收集着色器管线的计算结果且组织着色器管线结果以形成着色像素数据来供ROP 114使用,所述ROP 114进一步处理着色像素数据以形成帧缓冲器数据。尽管整个结构机制比较清晰,以辅助理解本发明的益处和应用,但着色器300的更详细解释可是有帮助的。为此,图4说明着色器300的部分400的更详细方框图。应了解,尽管部分400仅展示一个着色器管线302和一个排程器,但多个着色器管线302和多个排程器完全符合本发明原理。
参看图4,着色器分配器304接收来自光栅器108的信息,且接着将光栅流信息和矩形光栅流信息分配到着色器管线302内的着色器门监404(随后更详细描述)。来自光栅器108的信息具有两种主要格式:三角形平面方程信息,展示为平面方程设定;和以光栅流信息形式的三角形光栅化像素数据。另外,由于着色器300也处理参考矩形几何图元而输入的2维信息,因而着色器分配器304还接收矩形光栅化像素数据。
着色器分配器304的主要功能在于有利地以在可用着色器管线302之间平衡着色器管线工作负荷的方式而将三角形平面方程信息和光栅流信息分配到个别着色器管线302。也就是说,在处理中没有一个着色器管线302是优选的,且每一者具有相同的功能性。此通常将导致各着色器管线302执行相等的工作。如先前所注意,着色器管线302不需要的但需要用于其它目的的信息由着色器分配器304转发到先进先出缓冲器存储器306(见图3)。
实际上,以两个阶段来执行将数据分配到着色器管线302:分段和分配。此至少部分因为每个着色器管线302一次仅可对有限数目的像素执行操作。所述数目通常比完成图形操作所必须处理的像素的数目小得多。因此,引入的数据通过使用“段尾”标记而被分裂成若干部分。段尾标记和其它资源限制迫使引入的数据被斩断成若干被称为“段”的组。
分段是将引入的光栅流信息斩断成若干段的过程。对于分段,实际上存在多个理由。一个理由是在多个着色器管线302之间平衡负荷,另一个理由是可由单个着色器管线302进行的工作负荷大小。后者取决于可由着色器管线302内的管线处理台309处理的像素数目。所述数目由被称为死锁的条件限制,随后描述所述死锁。可由单个着色器管线302处理的像素的数目还受着色器寄存器文件(RAM)420的存储器存储容量限制。
除了可由管线处理台309处理的像素的最大数目和着色器寄存器文件(RAM)420的存储器存储容量之外,其它实用性也限制段的大小。每个着色器门监404具有有限量的RAM。实际上,所述RAM限制可作为段一部分的三角形(属性和像素)的数目。所述数目取决于每个三角形在着色器门监404RAM中占据的字数,其动态地取决于例如每个三角形正处理的纹理坐标的数目(及其各自维数)的因素。被处理的像素的实际数目取决于着色器管线的组织和着色器管线处理器309的有效等待时间。
分段的另一个原因在于着色器管线302可能不再使状态包循环,所述状态包是控制着色器管线302的操作的数据。由于一状态包不能成为所处理的数据的一部分,因而需要段边界且因此需要段。
与分段有关的是如何组织数据。在一个实施例中,着色器300对像素“四元组”(即,具有被一起处理的组份的2×2像素块)进行操作。接着,形成四元组段。然而,使用四元组不是本发明的原理的要求。一些实施例可根本不处理特定组的像素,而一些其它实施例可在一组中使用其它数目的像素,例如被称为三元组的三像素组。一般来说,一像素分组可从1到M,其中M为整数。
分配是选择着色器管线302中的一者且接着向那个着色器管线302供应一完整的段,接着将下一段供应下一着色器管线302等等的过程。在着色器300(见图3)中,段分配顺序是在可操作着色器管线302之间的简单循环法分配。例如,如果具有4个着色器管线302,但仅有三个是可操作的,那么分配顺序就在所述三个可操作着色器管线302之间。第一段将转到着色器管线0,接着下一段转到着色器管线1,接着下一段转到着色器管线2,且接着回到着色器管线0,等等。
如先前注意到,着色器分配器304可(在操作期间或在制造时)经配置以停用选定的着色器管线302。此使得有故障着色器管线302的功能能由其它着色器管线302执行,且使得制造者能提供降低或增强性能的设备。因此,有故障着色器管线302未必导致整个半导体芯片的报废。可使用任何用以确定哪个着色器管线在起作用的方法。举例来说,在制造时的芯片测试、测试程序、目测芯片或其结果可用于识别起作用的着色器管线302。
现转到图3,停用选定的着色器管线302与启用着色器管线有关。由于单个三角形非常大,因而其处理可横跨多个段。但是,由于一个着色器管线302可在一给定时间内仅处理一个段,一较大的三角形必须由多个着色器管线302处理。为了辅助如此完成,着色器分配器304将三角形信息广播到实际上不处理段的所有着色器管线302。每个接收着色器管线302试图通过使用程序信息来配置其本身,且准备接收引入的光栅化像素数据。接着,将处理段的着色器管线302接收光栅化像素数据且开始对其进行处理。光栅化像素数据被分配到一个(且仅一个)着色器管线302。
为了辅助实施分配且为了“关闭”不用的着色器管线302,着色器300可使用一管道启用屏蔽,所述屏蔽通知着色器300哪个着色器管线302是可操作的。此类屏蔽信号可通过总线408应用到着色器分配器304。可操作的着色器管线302可将其屏蔽位设定为一,将不可操作的像素管线的屏蔽设定为零。可由跳线切换、软件命令、硬连线或其它机制应用屏蔽信号。
配置不处理段的所有着色器管线具有明显优点,即如果三角形溢出到另一段,那么可将所述段发送到一已配置好的着色器管线302。接着,通过确认一个着色器管线302上的所述三角形,可处理所述段中三角形的光栅数据。此处理不仅避免了必须针对溢出到新段的较大三角形发送新编程数据,而且其还使得能在没有复杂机制的情况下确认额外的着色器管线302以重新传输来自着色器分配器304的段。可用的着色器管线302仅仅接受任何引入的段,且等候确认。如果三角形信息未被着色器管线使用,那么由着色器门监覆写所述三角形信息。
某些关于着色器分配器304输出流的注释可能是有帮助的。着色器分配器304仅转发具有至少一个非零像素的三角形信息。此机制被称为空值三角形丢弃。此通过确保一着色器管线302不会因为缺乏数据而浪费处理能力来改进处理操作。
在一些实施例中,一着色器分配器304具有与编程着色器管线302有关的功能性。在所述实施例中,编程指令由着色器分配器304发送到着色器管线302。在一些所述实施例中,仅发送最初N个(比如8个)编程指令。在此等实施例中,或在其中着色器分配器不将程序信息发送到着色器管线302的实施例中,排程器424将程序指令应用到着色器管线。排程器424接着必须协调光栅化像素数据从着色器分配器304到着色器管线302的应用。
参看图1和图3,程序指令的一副本有利地存储在帧缓冲器存储器120中。使用以下片段程序来对着色器管线302进行编程:实施整个图形程序的子集的小指令集。使用片段程序是因为一着色器管线302具有有限资源,此意味着整个图形程序通常会太大而不能被直接应用到一着色器管线302。因此,片段程序被形成且应用到一着色器管线302。举例来说,可获得N个(比如8个)程序指令且将其转换为一对应片段程序,且用于编程一着色器管线302。在N(8)个指令处理一片段之后,形成实施接下来的N(8)个指令的另一片段程序且应用到着色器管线302。
如先前所注意,在本发明一些实施例中,通过着色器分配器304来应用最初N个指令。此可以若干不同方式来执行。举例来说,最初N个指令可(直接或通过另一机制)发送到排程器424。排程器424接着可从最初N个指令中形成最初片段程序。接着可直接将所述最初片段程序发送到着色器管线302。接着可由着色器处理器424形成随后的片段程序和/或最初片段程序,所述着色器处理器424本身直接或通过一些其它机制来存取帧缓冲器存储器120。应注意到,尽管可仅使用一个片段程序来编程一给定着色器管线302,但可由不同片段程序编程不同着色器管线302。另外,根据需要来执行管线回路和分支,以实施所需的片段程序且连续运行片段程序。
在所说明的实施例中,可在最后一轮着色的末尾附加分支指令。当发生分支操作时,发生通过着色器管线的无效轮回,且同时提供新的编程指令。在着色器计算底部处重新开始下一轮。此使得能够读取着色器寄存器文件420的内容。尽管分支操作需要两轮,但分支操作可为有利的。举例来说,较大分支块通常不需要着色器再编译。
现转向图4,尽管已知可编程着色器管线,但参考(例如)前述所并入的专利文档,着色器300包括一新颖着色器门监404。所述着色器门监404从着色器分配器304接收分段、三角形方程信息和程序数据。其以使得虽然三角形流信息发送到所有着色器管线302的方式来进行。然而,着色器分配器304确认正被处理的三角形。
在已处理完着色像素数据之后,着色器收集器308从多个着色器管线302收集着色像素数据,且将所述数据与来自先进先出缓冲器存储器306的X,Y和覆盖数据组合,以形成一经组织的着色器像素数据包。所得数据被发送到执行额外处理的光栅操作处理器114;参考图形处理单元102。在光栅操作处理器处理之后,最终帧像素数据被输出到帧缓冲器接口116。
尽管上文已描述多个实施例,但应了解仅以实例方式而并非限制方式来将其展现。前文参考特定数字,例如四元组的使用仅出于解释和说明目的。因此,优选实施例的广度和范围不应由上述示范性实施例中的任一者限制,而是应仅根据以下权力要求书和其等效物来限定。
Claims (44)
1.一种着色器,其包含:
复数个着色器管线,所述复数个着色器管线的每一者用于处理光栅化像素数据的段;
复数个着色器排程器耦合到所述复数个着色器管线且经配置以选择图形程序的部分来产生段程序,所述段程序的每一者包括有限数目的程序指令,所述程序指令控制所述光栅化像素数据的段的处理,其中所述有限数目是基于所述复数个着色器管线的资源;
一着色器分配器,其用于将像素数据的光栅流信息分段成具有有限大小的所述光栅化像素数据的段,且将光栅化像素数据的段选择性地分配到所述复数个着色器管线,其中所述着色器分配器将三角形信息广播到在所述复数个着色器管线中的不处理光栅化像素数据段的所有可操作的着色器管线,以配置所述所有可操作的着色器管线,和确认所述三角形信息来处理光栅化像素数据的段;和
一着色器收集器,其用于收集所述复数个着色器管线的结果以形成适于显示的着色像素数据。
2.根据权利要求1所述的着色器,其中所述段程序包括一使至少一个着色器管线执行一分支操作的分支命令。
3.根据权利要求1所述的着色器,其进一步包括一光栅器以用于将所述像素数据的光栅流信息发送到所述着色器分配器。
4.根据权利要求3所述的着色器,其进一步包括在所述复数个着色器管线的每一者内的着色器寄存器文件,所述着色器寄存器文件具有一存储器存储容量,其中由所述着色器分配器产生的所述光栅化像素数据的段的大小是基于可存储在所述着色器寄存器文件内的光栅化像素数据的量。
5.根据权利要求1所述的着色器,其中所述复数个着色器管线中的至少一者处理所述光栅化像素数据的段以添加纹理信息。
6.根据权利要求1所述的着色器,其中所述复数个着色器管线中的至少一者对所述光栅化像素数据的段执行数学运算。
7.根据权利要求1所述的着色器,其中所述着色器分配器基于所接收到的配置信息在功能上停用有缺陷的所述复数个着色器管线中的至少一个着色器管线。
8.根据权利要求7所述的着色器,其中所述着色器分配器通过不将光栅化像素数据的片段分配到所述至少一个着色器管线来在功能上停用所述复数个着色器管线中的所述至少一个着色器管线。
9.根据权利要求1所述的着色器,其中不同的着色器管线以不同的段程序来编程。
10.根据权利要求1所述的着色器,其中在所述段程序的程序指令的有限数目为8。
11.根据权利要求1所述的着色器,其进一步包括先进先出缓冲存储器,其在所述着色器分配器和所述着色器收集器之间耦合,且经配置以存储不通过所述复数个着色器管线的x-y坐标和像素覆盖数据。
12.一种计算机系统,其包含:
一中央处理单元,其用于运行一使所述中央处理单元产生数据的应用程序;和
一处理单元,其用于将所述数据转换为适于显示的帧缓冲器像素数据,所述处理单元包括一着色器,所述着色器具有:
复数个着色器管线,每个着色器管线用于处理光栅化像素数据的段来产生着色像素数据;
复数个着色器排程器耦合到所述复数个着色器管线且经配置以选择图形程序的部分来产生段程序,所述段程序的每一者包括有限数目的程序指令,所述程序指令控制所述光栅化像素数据的段的处理,其中所述有限数目是基于所述复数个着色器管线的资源;
一着色器分配器,其用于将像素数据的光栅流信息分段成具有有限大小的所述光栅化像素数据的段,且将光栅化像素数据的段选择性地分配到所述复数个着色器管线,其中所述着色器分配器将三角形信息广播到在所述复数个着色器管线中的不处理光栅化像素数据段的所有可操作的着色器管线,以配置所述所有可操作的着色器管线,和确认所述三角形信息来处理光栅化像素数据的段;和
一着色器收集器,其用于从所述复数个着色器管线中收集所述着色像素数据来产生所述帧缓冲器像素数据。
13.根据权利要求12所述的计算机系统,其中所述计算机系统包括一用于存储所述帧缓冲器像素数据的帧缓冲器存储器。
14.根据权利要求12所述的计算机系统,其进一步包括一用于显示所述帧缓冲器像素数据的显示器。
15.根据权利要求12所述的计算机系统,其中所述段程序包括一使至少一个着色器管线执行一分支操作的分支命令。
16.根据权利要求12所述的计算机系统,其中所述处理单元进一步包括一光栅器以用于将所述像素数据的光栅流信息发送到所述着色器分配器。
17.根据权利要求16所述的计算机系统,其进一步包括在所述复数个着色器管线的每一者内的着色器寄存器文件,所述着色器寄存器文件具有一存储器存储容量,其中由所述着色器分配器产生的所述光栅化像素数据的帧的大小是基于可存储在所述着色器寄存器文件内的光栅化像素数据的量。
18.根据权利要求12所述的计算机系统,其中所述复数个着色器管线中至少一者选择性地处理光栅化像素数据的段以添加纹理信息。
19.根据权利要求12所述的计算机系统,其中至少一个着色器管线选择性地对所述光栅化像素数据的段执行数学运算。
20.根据权利要求12所述的计算机系统,其中所述着色器分配器基于所接收到的配置信息在功能上停用有缺陷的所述复数个着色器管线中的至少一个着色器管线。
21.根据权利要求20所述的计算机系统,其中所述着色器分配器通过不将所述光栅化像素数据的段分配到所述至少一个着色器管线来在功能上停用所述复数个着色器管线中的所述至少一个着色器管线。
22.根据权利要求12所述的计算机系统,其中不同的着色器管线以不同的段程序来编程。
23.根据权利要求12所述的计算机系统,其中在所述段程序的程序指令的有限数目为8。
24.根据权利要求12所述的计算机系统,其进一步包括先进先出缓冲存储器,其在所述着色器分配器和所述着色器收集器之间耦合,且经配置以存储不通过所述复数个着色器管线的x-y坐标和像素覆盖数据。
25.一种图形处理集成电路,其包含:
一前端,其用于接收原始图形数据;
一几何引擎,其用于将所述原始图形数据组织为几何图元;
一光栅器,其用于将所述几何图元转换为光栅化像素数据;和
一着色器,其用于处理所述光栅化像素数据,所述着色器包括:
复数个着色器管线,每个着色器管线用于处理光栅化像素数据的段来产生着色像素数据;
复数个着色器排程器耦合到所述复数个着色器管线且经配置以选择图形程序的部分来产生段程序,所述段程序的每一者包括有限数目的程序指令,所述程序指令控制所述光栅化像素数据的段的处理,其中所述有限数目是基于所述复数个着色器管线的资源;一着色器分配器,其用于接收所述光栅化像素数据,将所述光栅化像素数据分段成具有有限大小的所述光栅化像素数据的段,且用于选择性地将所述光栅化像素数据的段分配到所述复数个着色器管线,其中所述着色器分配器将三角形信息广播到在所述复数个着色器管线中的不处理光栅化像素数据段的所有可操作的着色器管线,以配置所述所有可操作的着色器管线,和确认所述三角形信息来处理光栅化像素数据的段;和
一着色器收集器,其用于从所述复数个着色器管线的输出中收集着色像素数据,其中所述着色像素数据适于显示。
26.根据权利要求25所述的图形处理集成电路,其进一步包括在所述复数个着色器管线的每一者内的着色器寄存器文件,所述着色器寄存器文件具有一存储器存储容量,其中光栅化像素数据的所述段的大小是基于可存储在所述着色器寄存器文件的存储器内的光栅化像素数据的量。
27.根据权利要求25所述的图形处理集成电路,其中所述着色器分配器在功能上禁用有缺陷的至少一个着色器管线。
28.根据权利要求27所述的图形处理集成电路,其中所述着色器分配器通过不将光栅化像素数据的所述段分配到所述至少一个着色器管线来在功能上停用所述至少一个着色器管线。
29.根据权利要求25所述的图形处理集成电路,其中至少一个着色器管线选择性地处理所述光栅化像素数据的段以添加纹理信息。
30.根据权利要求25所述的图形处理集成电路,其中所述复数个着色器管线中的至少一者对所述光栅化像素数据的段执行数学运算。
31.根据权利要求25所述的图形处理集成电路,其中所述复数个着色器管线中的至少一者执行一分支操作。
32.根据权利要求31所述的图形处理集成电路,其中在通过所述复数个着色器管线的所述至少一者执行无效轮回时,所述复数个着色器管线中的所述至少一者通过在当前执行程序段的结尾添加所述分支操作来执行所述分支操作,和读取由所述分支操作指定的新程序段。
33.根据权利要求25所述的图形处理集成电路,其进一步包括先进先出缓冲存储器,其在所述着色器分配器和所述着色器收集器之间耦合,且经配置以存储不通过所述复数个着色器管线的x-y坐标和像素覆盖数据。
34.一种操作一着色器的方法,其包含以下步骤:
从一光栅器接收光栅化像素数据,其中所述光栅化像素数据包括与几何图元相关的信息和与所述几何图元内的像素相关的信息;
将接收到的光栅化像素数据分段成具有预定长度的段;
将一段尾标签添加到所述段中的每一者;
将所述段选择性地分配到复数个着色器管线;和
选择图形程序的部分来产生段程序,所述段程序的每一者包括有限数目的程序指令,所述程序指令控制处理所述段;
其中所述有限数目基于所述复数个着色器管线的资源;
其中每个着色器管线处理所述段中的一者来产生适于显示的着色像素数据,
其中一第一着色器管线接收所述段中的一第一者,一第二着色器管线接收所述段中的一第二者;且如果可用,额外的着色器管线循序接收所述段中的一者,直到N个着色器管线已接收到所述段中的N个段;
其中在所有将接收段的着色器管线已接收到段之后,将所述段中的下一者应用到所述第一着色器管线。
35.根据权利要求34所述的操作一着色器的方法,其中并非所有的着色器管线都接收所述段中的一者。
36.根据权利要求35所述的操作一着色器的方法,其中在功能上停用一着色器管线。
37.根据权利要求34所述的方法,其进一步包括通过收集并组织来自所述复数个着色器管线的处理结果而形成着色像素数据。
38.一种操作一着色器的方法,其包含以下步骤:
选择图形程序的部分来产生第一段程序和第二段程序,所述第一段程序包括第一组程序指令,所述第二段程序包括第二组程序指令,其中所述第一段程序和所述第二段程序的每一者都具有有限数目的程序指令,所述程序指令用于控制光栅化像素数据的部分的处理,所述有限数目是基于第一着色管线和第二着色管线的资源;
使用所述第一组程序指令来编程所述第一着色管线以执行操作;
接收所述光栅化像素数据;
将所述光栅化像素数据的第一部分选择性地分配到所述第一着色管线;
使用所述第二组程序指令来编程所述第二着色管线以执行操作;
将所述光栅化像素数据的第二部分选择性地分配到所述第二着色管线;和
收集并组织至少所述第一着色管线的输出以形成适于显示的着色像素数据。
39.根据权利要求38所述的操作一着色器的方法,其中所述第一组程序指令和所述第二组程序指令是不同的。
40.根据权利要求38所述的操作一着色器的方法,其中所述选择性地分配所述光栅化像素数据的步骤包括将所述光栅化像素数据分段成所述第一部分和所述第二部分以防止死锁的步骤。
41.一种图形处理单元,其包含:
一前端,其用于接收原始图形数据;
一几何引擎,其用于将所述原始图形数据组织成几何图元;
一光栅器,其用于将所述几何图元转换为光栅化像素数据;
一用于处理所述光栅化像素数据的着色器,所述着色器包括复数个着色器管线,所述复数个着色器管线的每一者用于处理光栅化像素数据的段以产生着色像素数据,复数个着色器排程器耦合到所述复数个着色器管线且经配置以选择图形程序的部分来产生段程序,所述段程序的每一者包括有限数目的程序指令,所述程序指令控制所述光栅化像素数据的段的处理,其中所述有限数目是基于所述复数个着色器管线的资源,一着色器分配器,其用于将像素数据的光栅流信息分段成具有有限大小的所述光栅化像素数据的段,且将光栅化像素数据的段选择性地分配到所述复数个着色器管线,其中所述着色器分配器将三角形信息广播到在所述复数个着色器管线中的不处理光栅化像素数据段的所有可操作的着色器管线,以配置所述所有可操作的着色器管线,和确认所述三角形信息来处理光栅化像素数据的段,且所述着色器进一步包括一用于从所述复数个着色器管线输出中形成着色像素数据的着色器收集器;和
一光栅操作处理器,其用于将经处理的像素数据处理为适于显示的帧缓冲数据。
42.根据权利要求41所述的图形处理单元,其中不同的着色器管线以不同的段程序来编程。
43.根据权利要求41所述的图形处理单元,其中在所述段程序的程序指令的有限数目为8。
44.根据权利要求41所述的图形处理单元,其中所述复数个着色器管线经配置以在通过所述复数个着色器管线执行无效轮回时,通过在当前执行程序段的结尾添加分支操作来执行所述分支操作,和读取由所述分支操作指定的新程序段。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56161704P | 2004-04-12 | 2004-04-12 | |
US60/561,617 | 2004-04-12 | ||
US10/938,042 | 2004-09-10 | ||
US10/938,042 US7385607B2 (en) | 2004-04-12 | 2004-09-10 | Scalable shader architecture |
PCT/US2005/012107 WO2005101322A1 (en) | 2004-04-12 | 2005-04-08 | Scalable shader architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1957376A CN1957376A (zh) | 2007-05-02 |
CN1957376B true CN1957376B (zh) | 2010-08-18 |
Family
ID=34965907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800164443A Expired - Fee Related CN1957376B (zh) | 2004-04-12 | 2005-04-08 | 可缩放着色器结构 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7385607B2 (zh) |
EP (1) | EP1738330B1 (zh) |
JP (1) | JP4489806B2 (zh) |
CN (1) | CN1957376B (zh) |
TW (1) | TWI363312B (zh) |
WO (1) | WO2005101322A1 (zh) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7218291B2 (en) * | 2004-09-13 | 2007-05-15 | Nvidia Corporation | Increased scalability in the fragment shading pipeline |
US8189002B1 (en) * | 2004-10-29 | 2012-05-29 | PME IP Australia Pty, Ltd. | Method and apparatus for visualizing three-dimensional and higher-dimensional image data sets |
US7542042B1 (en) * | 2004-11-10 | 2009-06-02 | Nvidia Corporation | Subpicture overlay using fragment shader |
US7623132B1 (en) * | 2004-12-20 | 2009-11-24 | Nvidia Corporation | Programmable shader having register forwarding for reduced register-file bandwidth consumption |
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 |
CN1928918B (zh) * | 2005-10-14 | 2012-10-10 | 威盛电子股份有限公司 | 图形处理装置及于图形处理装置中执行着色操作的方法 |
US7692660B2 (en) * | 2006-06-28 | 2010-04-06 | Microsoft Corporation | Guided performance optimization for graphics pipeline state management |
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 |
US8243069B1 (en) * | 2006-11-03 | 2012-08-14 | Nvidia Corporation | Late Z testing for multiple render targets |
US8547395B1 (en) | 2006-12-20 | 2013-10-01 | Nvidia Corporation | Writing coverage information to a framebuffer in a computer graphics system |
KR101349171B1 (ko) * | 2007-01-17 | 2014-01-09 | 삼성전자주식회사 | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 |
FR2917199B1 (fr) * | 2007-06-05 | 2011-08-19 | Thales Sa | Generateur de code source pour une carte graphique |
US8004522B1 (en) * | 2007-08-07 | 2011-08-23 | Nvidia Corporation | Using coverage information in computer graphics |
US8325203B1 (en) | 2007-08-15 | 2012-12-04 | Nvidia Corporation | Optimal caching for virtual coverage antialiasing |
US8392529B2 (en) | 2007-08-27 | 2013-03-05 | Pme Ip Australia Pty Ltd | Fast file server methods and systems |
US8325184B2 (en) * | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8319781B2 (en) | 2007-11-23 | 2012-11-27 | Pme Ip Australia Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
US9904969B1 (en) | 2007-11-23 | 2018-02-27 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
WO2009067675A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Client-server visualization system with hybrid data processing |
WO2009067680A1 (en) | 2007-11-23 | 2009-05-28 | Mercury Computer Systems, Inc. | Automatic image segmentation methods and apparartus |
US10311541B2 (en) | 2007-11-23 | 2019-06-04 | PME IP Pty Ltd | Multi-user multi-GPU render server apparatus and methods |
EP2266027A2 (en) * | 2008-03-11 | 2010-12-29 | Core Logic, INC. | Processing 3d graphics supporting fixed pipeline |
KR101465771B1 (ko) | 2008-05-30 | 2014-11-27 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 셰이더 열 리페어를 위한 리던던시 방법 및 장치 |
US8502832B2 (en) * | 2008-05-30 | 2013-08-06 | Advanced Micro Devices, Inc. | Floating point texture filtering using unsigned linear interpolators and block normalizations |
JP5491498B2 (ja) * | 2008-05-30 | 2014-05-14 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 拡大縮小可能で且つ統合化されたコンピュータシステム |
US20090315909A1 (en) | 2008-05-30 | 2009-12-24 | Advanced Micro Devices, Inc. | Unified Shader Engine Filtering System |
US8456478B2 (en) * | 2008-10-30 | 2013-06-04 | Microchip Technology Incorporated | Microcontroller with integrated graphical processing unit |
US9013498B1 (en) * | 2008-12-19 | 2015-04-21 | Nvidia Corporation | Determining a working set of texture maps |
US8056080B2 (en) * | 2009-08-31 | 2011-11-08 | International Business Machines Corporation | Multi-core/thread work-group computation scheduler |
US20110134120A1 (en) * | 2009-12-07 | 2011-06-09 | Smart Technologies Ulc | Method and computing device for capturing screen images and for identifying screen image changes using a gpu |
US8587594B2 (en) * | 2010-05-21 | 2013-11-19 | International Business Machines Corporation | Allocating resources based on a performance statistic |
US8629867B2 (en) | 2010-06-04 | 2014-01-14 | International Business Machines Corporation | Performing vector multiplication |
US8692825B2 (en) | 2010-06-24 | 2014-04-08 | International Business Machines Corporation | Parallelized streaming accelerated data structure generation |
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9595074B2 (en) | 2011-09-16 | 2017-03-14 | Imagination Technologies Limited | Multistage collector for outputs in multiprocessor systems |
US9338036B2 (en) | 2012-01-30 | 2016-05-10 | Nvidia Corporation | Data-driven charge-pump transmitter for differential signaling |
US20130222411A1 (en) * | 2012-02-28 | 2013-08-29 | Brijesh Tripathi | Extended range color space |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US9105125B2 (en) * | 2012-12-05 | 2015-08-11 | Advanced Micro Devices, Inc. | Load balancing for optimal tessellation performance |
US11244495B2 (en) | 2013-03-15 | 2022-02-08 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
US8976190B1 (en) | 2013-03-15 | 2015-03-10 | Pme Ip Australia Pty Ltd | Method and system for rule based display of sets of images |
US9509802B1 (en) | 2013-03-15 | 2016-11-29 | PME IP Pty Ltd | Method and system FPOR transferring data to improve responsiveness when sending large data sets |
US9076551B2 (en) * | 2013-03-15 | 2015-07-07 | Nvidia Corporation | Multi-phase ground-referenced single-ended signaling |
US10540803B2 (en) | 2013-03-15 | 2020-01-21 | PME IP Pty Ltd | Method and system for rule-based display of sets of images |
US10070839B2 (en) | 2013-03-15 | 2018-09-11 | PME IP Pty Ltd | Apparatus and system for rule based visualization of digital breast tomosynthesis and other volumetric images |
US11183292B2 (en) | 2013-03-15 | 2021-11-23 | PME IP Pty Ltd | Method and system for rule-based anonymized display and data export |
CN103400338A (zh) * | 2013-07-25 | 2013-11-20 | 天津大学 | 嵌入式gpu中面积有效、功能复用的裁剪方法及模块 |
CN105446704B (zh) * | 2014-06-10 | 2018-10-19 | 北京畅游天下网络技术有限公司 | 一种着色器的解析方法和装置 |
US9536342B2 (en) * | 2014-08-15 | 2017-01-03 | Intel Corporation | Automatic partitioning techniques for multi-phase pixel shading |
US11599672B2 (en) | 2015-07-31 | 2023-03-07 | PME IP Pty Ltd | Method and apparatus for anonymized display and data export |
US9984478B2 (en) | 2015-07-28 | 2018-05-29 | PME IP Pty Ltd | Apparatus and method for visualizing digital breast tomosynthesis and other volumetric images |
CN105118089B (zh) * | 2015-08-19 | 2018-03-20 | 上海兆芯集成电路有限公司 | 三维图形管道中的可程序化像素设定方法及使用其的装置 |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
CN106648551A (zh) * | 2016-12-12 | 2017-05-10 | 中国航空工业集团公司西安航空计算技术研究所 | 一种混合图形处理器指令处理系统 |
CN106844044B (zh) * | 2016-12-30 | 2020-07-24 | 东方晶源微电子科技(北京)有限公司 | 一种数据处理方法和装置 |
US10290141B2 (en) | 2017-04-17 | 2019-05-14 | Intel Corporation | Cloud based distributed single game calculation of shared computational work for multiple cloud gaming client devices |
US10909679B2 (en) | 2017-09-24 | 2021-02-02 | PME IP Pty Ltd | Method and system for rule based display of sets of images using image content derived parameters |
DE102019101720A1 (de) * | 2018-01-26 | 2019-08-01 | Nvidia Corporation | Techniken zur Darstellung und Verarbeitung von Geometrie innerhalb einer erweiterten Grafikverarbeitungspipeline |
CN111831273B (zh) * | 2019-04-30 | 2022-10-28 | 厦门雅基软件有限公司 | 基于着色器的数据处理方法、装置及电子设备 |
US11216993B2 (en) | 2019-11-27 | 2022-01-04 | Arm Limited | Graphics processing systems |
US11210821B2 (en) * | 2019-11-27 | 2021-12-28 | Arm Limited | Graphics processing systems |
US11170555B2 (en) | 2019-11-27 | 2021-11-09 | Arm Limited | Graphics processing systems |
US11210847B2 (en) | 2019-11-27 | 2021-12-28 | Arm Limited | Graphics processing systems |
US20220414967A1 (en) * | 2021-06-24 | 2022-12-29 | Intel Corporation | Out-of-order pixel shading and rasterization |
US11935175B2 (en) * | 2022-04-07 | 2024-03-19 | Huawei Technologies Co., Ltd. | Apparatus, method, and computer-readable medium for image processing using variable-precision shading |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1096119A (zh) * | 1993-06-03 | 1994-12-07 | 郭玉霞 | 图形分层产生的方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4901064A (en) * | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
JP3097955B2 (ja) * | 1994-12-01 | 2000-10-10 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US5764228A (en) * | 1995-03-24 | 1998-06-09 | 3Dlabs Inc., Ltd. | Graphics pre-processing and rendering system |
JP3038139B2 (ja) * | 1995-08-30 | 2000-05-08 | 株式会社クボタ | グラフィックプロセッサ |
JP3090605B2 (ja) | 1995-12-26 | 2000-09-25 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ装置 |
US5821950A (en) * | 1996-04-18 | 1998-10-13 | Hewlett-Packard Company | Computer graphics system utilizing parallel processing for enhanced performance |
KR100261077B1 (ko) * | 1996-04-25 | 2000-07-01 | 윤종용 | 볼륨 렌더링 장치 및 이에 적합한 방법 |
US6351681B1 (en) | 1997-05-09 | 2002-02-26 | Ati International Srl | Method and apparatus for a multi-chip module that is testable and reconfigurable based on testing results |
JP2001014478A (ja) * | 1999-06-28 | 2001-01-19 | Nec Eng Ltd | グラフィックス並列処理装置 |
EP1266295B1 (en) | 2000-03-23 | 2011-10-19 | Sony Computer Entertainment Inc. | Image processing apparatus and method |
US6791559B2 (en) * | 2001-02-28 | 2004-09-14 | 3Dlabs Inc., Ltd | Parameter circular buffers |
US6925520B2 (en) * | 2001-05-31 | 2005-08-02 | Sun Microsystems, Inc. | Self-optimizing crossbar switch |
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 |
US7176914B2 (en) * | 2002-05-16 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for directing the flow of data and instructions into at least one functional unit |
JP4158413B2 (ja) * | 2002-05-22 | 2008-10-01 | ソニー株式会社 | 画像処理装置 |
US6952214B2 (en) * | 2002-07-12 | 2005-10-04 | Sun Microsystems, Inc. | Method for context switching a graphics accelerator comprising multiple rendering pipelines |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US7109987B2 (en) * | 2004-03-02 | 2006-09-19 | Ati Technologies Inc. | Method and apparatus for dual pass adaptive tessellation |
-
2004
- 2004-09-10 US US10/938,042 patent/US7385607B2/en active Active
-
2005
- 2005-04-08 CN CN2005800164443A patent/CN1957376B/zh not_active Expired - Fee Related
- 2005-04-08 JP JP2007508417A patent/JP4489806B2/ja active Active
- 2005-04-08 WO PCT/US2005/012107 patent/WO2005101322A1/en active Application Filing
- 2005-04-08 EP EP05735714A patent/EP1738330B1/en active Active
- 2005-04-12 TW TW094111547A patent/TWI363312B/zh active
-
2007
- 2007-12-14 US US11/957,358 patent/US7852340B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1096119A (zh) * | 1993-06-03 | 1994-12-07 | 郭玉霞 | 图形分层产生的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4489806B2 (ja) | 2010-06-23 |
US7852340B2 (en) | 2010-12-14 |
JP2007533029A (ja) | 2007-11-15 |
US20050225554A1 (en) | 2005-10-13 |
EP1738330B1 (en) | 2012-05-30 |
US7385607B2 (en) | 2008-06-10 |
TWI363312B (en) | 2012-05-01 |
US20080094405A1 (en) | 2008-04-24 |
WO2005101322A1 (en) | 2005-10-27 |
CN1957376A (zh) | 2007-05-02 |
TW200539059A (en) | 2005-12-01 |
EP1738330A1 (en) | 2007-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1957376B (zh) | 可缩放着色器结构 | |
US8319784B2 (en) | Fast reconfiguration of graphics pipeline state | |
US6088044A (en) | Method for parallelizing software graphics geometry pipeline rendering | |
US7663634B2 (en) | Drawing processing apparatus and drawing processing method for multipass rendering | |
JP3344597B2 (ja) | グラフィック画像をテッセレーション化する方法および装置 | |
DE102020115026A1 (de) | Systeme und Verfahren zur Tonabbildung von Bildern mit hohem Dynamikumfang für auf tiefem Lernen basierende Verarbeitung von hoher Qualität | |
DE102020124932A1 (de) | Vorrichtung und Verfahren zur Echtzeit-Grafikverarbeitung mittels lokaler und cloudbasierter Grafikverarbeitungsbetriebsmittel | |
DE102019135639A1 (de) | Auf Echtzeit-Strahlverfolgung (RTRT) basierende adaptive Mehrfrequenzschattierung (AMFS) | |
DE112017001703T5 (de) | Verfahren und Vorrichtung zum effizienteren Ray-Tracing von instanziierter Geometrie | |
US20170330372A1 (en) | Graphics processing systems | |
DE102020121814A1 (de) | Vorrichtung und Verfahren zum Verwenden von Dreieckspaaren und gemeinsam genutzten Transformationsschaltungen zum Verbessern der Strahlverfolgungsleistung | |
US6052128A (en) | Method and apparatus for clipping convex polygons on single instruction multiple data computers | |
DE102020118860A1 (de) | Techniken zum vorladen von texturen beim rendering von graphik | |
DE102017109472A1 (de) | Stereo-mehrfach-projektion implementiert unter verwendung einer graphikverarbeitungs-pipeline | |
DE102019101871A1 (de) | Verfahren und Vorrichtung zum Gewinnen von Abtastpositionen von Textuieroperationen | |
DE112020000848T5 (de) | Skalarkernintegration | |
US20180197268A1 (en) | Graphics processing | |
DE102020124872A1 (de) | Verwendung von innere-abdeckung-informationen durch eine konservative-rasterung-pipeline zum aktivieren von earlyz für eine konservative rasterung | |
DE102020134334A1 (de) | Vorrichtung und verfahren zur quantisierten konvergenten richtungsbasierten strahlsortierung | |
CN102982503B (zh) | 绘图处理单元 | |
DE102020132088A1 (de) | Berechnung effizienter kanalübergreifender operationen in parallelrechenmaschinen mit systolischen arrays | |
US10062140B2 (en) | Graphics processing systems | |
ITMI20082342A1 (it) | Modulo di renderizzazione per grafica a due dimensioni, preferibilmente basato su primitive di tipo bordo attivo | |
US20230401667A1 (en) | Graphics processing systems | |
DE102019100505A1 (de) | Durchführen einer Textur-Detaillierungsgrad-Näherung |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100818 |