CN101091203B - 图形处理系统和方法 - Google Patents
图形处理系统和方法 Download PDFInfo
- Publication number
- CN101091203B CN101091203B CN2005800154386A CN200580015438A CN101091203B CN 101091203 B CN101091203 B CN 101091203B CN 2005800154386 A CN2005800154386 A CN 2005800154386A CN 200580015438 A CN200580015438 A CN 200580015438A CN 101091203 B CN101091203 B CN 101091203B
- Authority
- CN
- China
- Prior art keywords
- pixel
- module
- data
- graphics pipeline
- level
- 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 title claims abstract description 82
- 238000012545 processing Methods 0.000 title abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000013075 data extraction Methods 0.000 claims description 46
- 238000012360 testing method Methods 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000009877 rendering Methods 0.000 abstract description 6
- 230000010365 information processing Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 52
- 239000000284 extract Substances 0.000 description 50
- 238000003860 storage Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000000605 extraction Methods 0.000 description 8
- 238000006073 displacement reaction Methods 0.000 description 7
- 238000011144 upstream manufacturing Methods 0.000 description 7
- 230000000644 propagated effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000013078 crystal Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000003319 supportive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 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/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种像素处理系统和方法,其允许使用一包括减少的门数和低功率操作的浅图形管线来渲染复杂三维图像。像素包信息包括在一单个统一数据提取级中检索到的像素表面属性值。确定所述像素包信息是否有助于一图像显示呈现(例如,可执行Z值的一深度比较)。根据所述确定的结果来处理所述像素包信息处理。如果所述像素表面属性值被遮蔽,那么就移除所述像素表面属性值和像素包信息不对其进行进一步处理。在一个示范性实施方案中,所述像素包包括复数个行,且为所述复数个行协调所述处理。若干下游管级中的任一者可去除所述被遮蔽像素信息,并响应于所述去除,可通知一门监(gatekeeper)管级所述宽松度增加,使得可允许更多像素进入所述管线中。
Description
相关申请案的交叉参考
本案涉及以下同在申请中的共同转让的美国专利申请案,题为:
Hutchins等人的“A Coincident Graphics Pixel Scoreboard Tracking System andMethod”(代理人案号NVID-P001250)序列号__;
Hutchins等人的“A Kill Bit Graphics Processing System and Method”(代理人案号NVID-P001251)序列号10/846,201;
Hutchins等人的“A Unified Data Fetch Graphics Processing System and Method”(代理人案号NVID-P001252)序列号__;
Battle等人的“Arbitrary Size Texture Palettes for Use in Graphics Systems”(代理人案号NVID-P001253)序列号__;
Hutchins等人的“A Single Thread Graphics Processing System and Method”(代理人案号NVID-P001255)序列号__;
其以引用的方式并入本文中。
技术领域
本发明涉及图形处理领域,且涉及一种早期取消去除(early kill removal)图形处理系统和方法。
背景技术
电子系统和电路已对现代社会的进步作出了显著贡献,并用于许多应用中以实现有利结果。例如数字计算机、计算器、音频装置、视频设备和电话系统的许多电子技术有助于提高生产力并在分析和传送大多数商业、科学、教育和娱乐领域的数据、观念和趋势方面减少成本。经设计以产生这些结果的电子系统通常涉及与用户建立连接,且所述连接常涉及向用户呈现图形图像呈现,显示图形图像传统上涉及密集型数据处理和协调,这需要相当多资源且常消耗大量功率。
图像通常表示为逻辑图片元素(像素)的光栅(阵列)。对应于图像的某一表面属性(例如,色彩、深度、纹理等)的像素数据分配给每一像素,且像素数据确定与逻辑像素相关联的显示屏区域上的投影的性质。常规的三维图形处理器通常涉及大范围且众多连续级或“管线”型过程,其根据各种顶点参数值和指令来操纵像素数据以将世界坐标系统中的三维场景映射为图像的二维投影(例如,在显示屏上)。通常需要相对大量的处理和存储器资源来实施传统管线的众多级。
正涌现许多新型装置(例如,便携式游戏控制台、便携式无线通信装置、便携式计算机系统等),其中尺寸和功率消耗是显要关注的问题。这些装置中的许多装置足够小而可以握在用户手中使得它们非常便利,且随着其它活动(例如,通信、游戏应用、因特网应用等)的潜在基本潜能渐增,所述装置的显示能力正变得愈加重要。然而,许多装置和系统的资源(例如,处理能力、存储资源等)通常相对有限。这些局限性可使得非常难以或甚至不可能检索、协调和操纵与在显示器上渲染或呈现的最后图像相关联的信息。另外,传统的图形信息处理可消耗大量功率,且对于有限的功率供应(例如电池)来说是较大消耗。
发明内容
本发明像素处理系统和方法通过以不同方式处理无助于图像显示的像素来提供像素信息的有效处理。本发明像素处理系统和方法的实施例也允许用包括减少的门计数的浅图形管线来渲染复杂三维图像。本发明也通过与无助于图像显示呈现的像素(例如,被遮蔽的像素)相关联的像素包有效负载而促进功率节约。
在一个实施例中,在图形管线的管级处接收像素包信息。举例来说,接收像素包信息包括在单个统一数据提取级检索像素表面属性值。确定像素包信息是否有助于图像显示呈现呈现。举例来说,分析与像素包信息相关联的像素是否被遮蔽(例如,可执行Z值的深度比较)。根据确定结果来处理像素包信息处理。如果像素表面属性值有助于图像显示呈现,那么转发并入像素包信息中的像素表面属性值以用于进行进一步的下游处理。如果像素表面属性值无助于图像显示呈现,那么不对像素表面属性值和像素包信息进行进一步处理。在一个示范性实施方案中,像素包包括复数个行,且为所述复数个行协调处理。在一个实施例中,多个管级可去除被遮蔽像素信息。
在一个实施例中,上游管级控制进入统一单个数据提取图形管线级中的复数个像素包。所述控制包括通过调节输入像素流来防止对所述复数个像素包进行操作的管线中出现停滞来维持足够的宽松度。所述控制还包括当不对与第一像素包相关联的像素包信息进行进一步处理时允许与所述复数个像素包中的另一者相关联的信息流入到统一单个数据提取图形管线级中。在一个示范性实施方案中,所述流动控制由门监级提供,所述门监级被通知是否不对像素包信息进行进一步处理。去除被遮蔽像素的管级因此当被遮蔽像素被去除时通知门监。
在一个实施例中,门监下游的复数个管级可消除属于被遮蔽像素的像素包,当每一像素经如此特征化时,各个管级通知门监使得可允许较多像素进入管线中。在一个实施例中,上游数据提取管级进行遮蔽确定,如上文所述。在另一实施例中,复数个下游管级中的任一者也可进行遮蔽确定。实际上,由于遮蔽而从管线中去除像素包增加了管线中的宽松度。响应于宽松度增加,门监允许较多像素进入管线中。
附图说明
附图并入本说明书中并组成本说明书的一部分,附图以举例的方式而不是限制的方式说明本发明实施例。除非明确规定,否则本说明书中参看的附图不应理解为是按比例绘制的。
图1A是根据本发明一个实施例示范性图形管线的方框图。
图1B是根据本发明一个实施例示范性像素包的方框图。
图1C是根据本发明一个实施例示范性像素包行的方框图。
图1D是根据本发明一个实施例交错的像素包行的方框图。
图2A是展示根据本发明一个实施例计算机系统的方框图。
图2B是根据本发明一个替代实施例计算机系统的方框图。
图3A是根据本发明一个实施例图形数据提取方法的步骤的流程图。
图3B是根据本发明一个实施例示范性统一数据提取模块的方框图。
图3C是根据本发明一个实施例具有多个提取路径的统一数据提取模块的一个示范性实施方案的方框图。
图3D是根据本发明一个实施例在单个线程中处理信息的示范性像素处理方法的步骤的流程图。
图4A是根据本发明一个实施例像素处理方法的流程图。
图4B是根据本发明一个实施例另一像素处理方法的流程图。
图4C是根据本发明一个实施例在图形管线中跟踪像素信息的示范性方法的流程图。
图4D是根据本发明一个实施例示范性管级电路的方框图。
图4E是根据本发明一个实施例示范性图形管线的方框图。
图4F是根据本发明一个实施例具有多个像素包行的图形管线模块的示范性实施方案的方框图。
图5A说明根据本发明实施例包含任意尺寸的纹理调色板表格的示范性数据结构的图。
图5B说明根据本发明实施例产生指数以存取任意尺寸的纹理调色板表格中的纹素数据(texel data)的示范性逻辑的图。
图5C-5F是说明根据本发明实施例存取具有任意尺寸纹理调色板表格的纹理调色板存储器的示范性技术的图。
图6A是说明根据本发明实施例提供任意尺寸纹理调色板表格的过程的流程图。
图6B是说明根据本发明实施例存取存储在任意尺寸纹理调色板表格中的数据的过程的步骤的流程图。
图7A说明根据本发明实施例示范性图形管线的方框图。
图7B说明根据本发明实施例记分板级的示范性位屏蔽(bit mask)的图。
图8是说明根据本发明实施例处理图形管线中的像素的示范性过程的流程图。
具体实施方式
现将具体参照本发明优选实施例,附图中说明其实例。虽然将结合优选实施例描述本发明,但将了解,不希望其将本发明限于这些实施例。相反,本发明希望涵盖可包括在如所附权利要求书所界定的本发明精神和范围内的替代形式、修改和等效物。此外,在本发明的以下详细描述中,陈述许多特定细节以便提供对本发明的彻底理解。然而,所属领域的技术人员将了解,可在没有这些特定细节的情况下实践本发明。在其它例子中,为了不会不必要地混淆本发明的各方面,未描述众所周知的方法、程序、组件和电路。
以下详细描述的一些部分依照程序、逻辑块、处理和对于计算机存储器内的数据位的操作的其它符号表示而提供。这些描述和表示是通常由数据处理领域的技术人员用以有效地将其作品的主旨传送到所属领域中的其他技术人员的手段。此处程序、逻辑块、过程等通常构思为导致期望的结果的步骤或指令的自洽序列。所述步骤包括对物理量的物理操纵。通常(尽管不必要),这些物理量采取能够在计算机系统中被存储、转移、组合、比较和以另外的方式操纵的电、磁、光或量子信号的形式。已多次证实(主要由于统一用法的原因),将这些信号表示为位、值、元素、符号、字符、项、数字或类似形式是便利的。
然而应注意,所有这些和类似术语与适当物理量相关联,且仅仅是应用于这些量的便利的标志。除非另外明确规定(如从以下讨论中了解),否则应了解在本申请案全文中,利用例如“处理”、“计算机计算”、“计算”、“确定”、“显示”或类似表述的术语的讨论内容表示计算机系统或操纵并转换表示为物理(例如,电子)量的数据的类似处理装置(例如,电、光、量子计算装置)的动作和处理。所述术语表示操纵计算机系统的组件(例如,寄存器、存储器、逻辑、其它此类信息存储器、传输或显示装置等)内的物理量或将其转换成类似地表示为其它组件内的物理量的其它数据的处理装置的动作和处理。
本发明提供有效和便利的图形数据组织和处理。本发明图形系统和方法可有助于在将减少量的资源专用于图形信息处理的情况下呈现图形图像,且还可有助于增加功率节约。在本发明一个实施例中,简化了图形信息的检索。举例来说,可在单个统一级中提取若干类型的像素数据(例如,色彩、纹理、深度等),且所述像素数据也可被转发以便作为单个线程进行处理。本发明图形系统和方法也可促进不同像素之间的图形信息的协调。举例来说,如果包括在像素包有效负载中的像素数据信息不影响(例如,有助于、修改等)图像显示呈现,那么通过“取消”像素(例如,不通过图形管线来对像素包有效负载计时)而最小化消耗用于处理信息的功率。或者,可从图形管线中去除所有像素包。信息检索也可经协调以确保适当(例如,最新的)信息正被检索并以适当序列转发(例如,以避免读取-修改-写入问题)。另外,本发明实施例可提供图形信息的灵活组织。举例来说,本发明可编程配置的纹理调色板允许有效且灵活地实施用于纹理映射操作的多样纹理表。
图1A是根据本发明一个实施例示范性图形管线100的方框图。图形管线100有助于高效率且有效地利用处理资源。在一个实施例中,图形管线100以有组织且协调的方式处理图形信息。图形管线100可作为图形处理核心而实施在多种不同组件中(例如,图形处理芯片中、特殊用途集成电路中、集成在主机处理单元中的中央处理单元等)。各方面图形管线100和本发明其它实施例在以下描述的若干部分中为了方便的惯例起见描述为对图形图元(例如,三角形)进行操作。应了解,本发明具有较好适用性,且也可利用多种其它几何图元来实施。
图形管线100包括设置级105、光栅级110、门监级120、统一数据提取级130、算术逻辑单元级140和数据写入级150。在本发明一个实施例中,主机(例如,主机101)向图形管线100提供顶点数据(例如,被渲染的三维空间中的点)、用于渲染顶点数据中给定的特定三角形的命令,和管线的编程信息(例如,用于将指令载入到不同的图形管线100级中的寄存器写入)。图形管线100的级协作地操作以处理图形信息。
设置级105接收顶点数据并准备信息以供在图形管线100中进行处理。设置级105可执行坐标的几何转换、执行视口转换、执行剪辑并准备透视修正参数以供在光栅级110中使用,所述透视修正参数包括参数系数。在一个实施例中,设置单元对顶点信息(例如,x、y、z、色彩和/或纹理属性等)应用用户定义的视图转换,并确定每一三角形的屏幕空间坐标。设置级105也可支持保护带剪辑、向后的三角形(例如,背朝着观察者的三角形)的剔除,和确定细节的内插纹理等级(例如,基于三角形等级而不是像素等级的细节等级)。另外,设置级105可从其它图形处理块收集统计资料和调试信息。设置级105可包括顶点缓冲器(例如,顶点高速缓冲存储器),其可经编程控制(例如,通过软件、驱动器等)以有效地利用资源(例如,针对不同的位尺寸字顶点格式)。举例来说,可跟踪经转换的顶点数据并将其保存在顶点缓冲器中以供进一步使用,而不必对相同顶点再次执行转换操作。在一个实施例中,设置级105为光栅110设置重心系数。在一个示范性实施方案中,设置级105是浮点超大指令字(VLIW)机器,其支持32位IEEE浮点、S15.16定点和压缩.8定点格式。
光栅级110确定哪些像素对应于特定三角形,并内插与所述三角形相关联的来自设置级105的参数以提供一组内插参数变量,和与每一像素相关联(例如,描述每一像素)的指令指示符或序列号。举例来说,光栅级100可提供从图像的三角形视图到像素视图的“转译”或光栅化。在一个实施例中,光栅级110扫描或迭代三角形与剪取矩形的交点处的每一像素。举例来说,光栅级110可处理给定三角形的像素,并确定哪些处理操作适于像素渲染(与色彩、纹理、深度和雾化等有关的操作)。光栅级110可支持提供屏幕上像素的有效保护带光栅化的保护带(例如,+/-1K)坐标,并促进剪辑操作的减少。在一个示范性实施方案中,光栅级110与Open GL-ES和D3DM光栅化规则兼容。与其中特征为不管是否使用都要消耗时间或功率(或两者)的硬编码光栅器单元相比,光栅级110也可经编程以有助于减小否则将由不使用的特征消耗的功率,并有助于快速渲染简单的绘图任务。
光栅级110还产生用于图形管线100中的像素包。每一像素包包括一个或一个以上行,且每一行包括有效负载部分和边频带部分。有效负载部分包括用于各种值的字段,所述值包括内插参数值(例如,作为光栅内插操作的结果的值)。举例来说,所述字段可经创建以保存与像素表面属性(例如,色彩、纹理、深度、雾化(x,y)位置等)相关联的值。与像素处理相关联的指令序列号分配到像素包并放置在边频带部分的指令序列字段中。边频带信息也包括状态字段(例如,取消字段)。
图1B是根据本发明一个实施例像素包170的方框图。像素包170包括行171到174,但像素包可包括更多或更少的行(例如,像素包可仅包括一行)。每一行171到174分别包括有效负载部分181到184,且分别包括边频带部分185到188。每一有效负载部分包括复数个内插参数值字段和用于存储其它数据的位置。每一边频带部分可包括序列号、奇/偶指示符和状态指示符(例如,取消位指示符)。图1C是根据本发明一个实施例示范性像素包行171的方框图。示范性像素包行171的有效负载部分181包括字段191到198。字段的尺寸和内容可变化,在一个示范性实施方案中,光栅级可产生多达四个高精确度和四个低精确度透视修正内插参数变量值(例如,与8个不同类型参数内插的结果相关联)以及一深度指示(例如,Z指示)。光栅级产生的高精确度和低精确度透视修正内插参数变量值以及深度指示可包括在像素包行中。示范性像素包行171的边频带部分185可包括序列号字段175、奇/偶指示符字段177和取消位指示符字段179。在一个实施例中,有效负载部分可为80位宽。
在一个实施例中,光栅级110计算像素包的重心坐标。在重心坐标系统中,相对于三角形的顶点来测量三角形中的距离。重心坐标的使用减小所需要的动态范围,这允许使用与浮点计算相比需要较少功率的定点计算。在一个实施例中,光栅级110也可使偶数像素行与奇数像素行交错以解决下游管级的多时钟周期等待时间。在一个示范性实施方案中,下游ALU级可计算来自第N行的某个量,将结果保存到临时寄存器,且相同像素的第N+1行可参考临时寄存器中的值。在ALU的等待时间为两个时钟周期的实施方案中,交错工作使得当处理像素的第N+1行时,两个时钟已过去,且第N行的结果完成。图1D是根据本发明一个实施例交错像素包行的方框图。
图1A的门监级120调节像素通过图形管线100的流动。在本发明一个实施例中,门监120通过计数来控制像素包流动以维持管线中的下游打滑(skid)。门监级120可检测闲置或停滞状况(例如,在图形管线100的后续级中),并对像素流动进行调节以优化管线资源利用率(例如,保持管线是满的)。门监级120也可支持像素包的“再循环”以便进行复杂的管线操作(例如,复杂的着色操作)。举例来说,门监级120可合成取值范围起点(span start)以跟踪再循环的坐标(X,Y)位置。在一个示范性实施方案中,门监120也可从其它图形管线110级收集调试读回信息(例如,可处理调试寄存器读取)。
在本发明一个实施例中,门监级120有助于数据提取级130(例如,提取缓冲器131中的数据中)与数据写入级150(例如,在写入缓冲器141中的数据)的数据一致性维持。举例来说,门监级120可通过使用进行中的读取-修改-写入操作对重合的像素进入图形管线100的后续级中进行协调来防止读取-修改-写入危险。在一个示范性实施方案中,门监级120利用记分板技术来跟踪并识别重合像素问题。门监级120还跟踪完成通过管线的处理(例如,通过写入到存储器或被取消)的像素。
统一数据提取级130负责从单个级中的存储器(例如,存储器132)提取(例如,读取)复数个不同的数据类型(例如,色彩数据、深度数据、纹理数据等)。在一个实施例中,统一数据提取130检索与从光栅级110接收的像素信息和指令相关联的像素表面属性值(例如,在像素包行有效负载部分中)。单个统一数据提取级可包括用于检索像素表面属性值的多种不同路径配置。举例来说,统一数据提取级130可包括用于纹理色彩和深度(例如,z值)的单独路径和高速缓冲存储器(未图示)。统一数据提取级130将表面属性值放置在像素包有效负载部分的相应变量字段中,并将包括表面属性值的所产生的像素包行转发到图形管线100的其它级(例如,ALU级140)。在本发明一个实施例中,转发像素包以便在单个线程中进行处理。
在本发明一个实施例中,统一数据提取级130能够有效地与图形管线100外部的存储器接口的宽存储器存取带宽特征相交互。在一个示范性实施方案中,统一数据提取级130临时存储从存储器存取接收到的信息,尽管所接收的数据的整个带宽对于特定像素来说为不必要的。举例来说,将从存储器接口接收的信息放置在缓冲器(例如,寄存器、高速缓冲存储器等)中。
在本发明一个实施例中,数据提取级130有助于通过限制对无助于图像显示呈现的像素进行处理来有效地利用资源。在一个示范性实施方案中,数据提取级130确定包括在像素包有效负载中的信息是否影响(例如,有助于、修改等)图像显示呈现。举例来说,数据提取级130分析像素有效负载值是否指示像素被遮蔽(例如,通过Z深度比较,且可相应地设定取消位)。如果包括在像素包有效负载中的信息无助于图像显示呈现,那么可灵活地实施数据提取级130以解决各种功率消耗和性能目的。
在一个实施例中,数据提取级130使像素包信息与用于指示包括在像素包中的信息是否有助于图像显示呈现的状态指示符相关联(作标记),并转发像素包以便根据状态指示符进行下游处理。在一个示范性实施方案中,不管状态指示符(例如,取消位)设定如何,在管线的后续级中对像素包的边频带部分中的数据计时,而如果状态指示符经设定指示像素包有效负载无助于图像显示呈现,那么在后续级中不对有效负载部分中的数据计时。在替代实施例中,如果信息无助于图像显示呈现,那么数据提取级130可从管线中去除与像素相关联的像素信息(例如,像素包行),并通知门监120。此实施方案可实际上增加管线滑动(pipeline skid),且可触发门监120允许较多像素进入管线中。
图1A的算术逻辑级140(例如,ALU)对从数据提取级130接收的像素包行有效负载信息(例如,像素表面属性信息)执行着色协调操作。通用算术逻辑级可对像素数据执行运算以实施多种不同功能。举例来说,算术逻辑级140可执行与三维图形相关的着色器操作(例如,混合和组合),包括纹理组合(纹理环境)、模板印刷、雾化、α混合、α测试和深度测试。算术逻辑级140每子级可具有多周期等待时间,且因此可对像素表面属性信息执行多种算术和/或逻辑运算(例如,A*B+C*D)以实现着色协调。在一个示范性实施方案中,算术逻辑级140对标量值(例如,与像素表面属性信息相关联的标量值)执行运算。算术逻辑单元140可对如图1D(其说明具有管线次序的行)所示的交错像素包行执行运算。另外,算术逻辑级140可经编程以将结果写入到多种管线寄存器(例如,算术逻辑级140内的临时寄存器)或可经编程而不写入结果。在一个实施例中,算术逻辑级140在单个线程中执行操作。
数据写入级150将色彩和Z深度结果发出到存储器(例如,存储器133)。数据写入级150是可通用或一般灵活编程的数据写入级。在一个实施例中,数据写入级150处理像素包行。在数据写入级150的一个示范性实施方案中,所述处理包括在管线中再循环像素包行(例如,将像素包行发送回门监级120)并通知门监级120被取消的像素。
现参看图2A,展示根据本发明一个实施例的计算机系统200。计算机系统200可提供用于实施本发明的某一基于软件的功能的执行平台。如图2中所描绘,计算机系统200包括CPU 201,其通过主机接口202耦合到3-D处理器205。主机接口202将在CPU 201与3-D处理器205之间通过的数据和命令转译成其各自的格式。CPU 201和3-D处理器205两者均通过存储器控制器220耦合到存储器221。在系统200实施例中,存储器221为共享存储器,这是指存储器221藉以存储CPU 201和3-D处理器205两者的指令和数据的特性。通过存储器控制器220对共享存储器221进行存取。共享存储器221也存储包含视频帧缓冲器的数据,所述视频帧缓冲器驱动耦合的显示器225。
如上所述,在一个实施例中,本发明的某些过程和步骤实现为驻存在计算机系统(例如,系统200)的计算机可读存储器(例如,存储器221)内的一系列指令(例如,软件程序),并由系统200的CPU 201和图形处理器205执行。当执行时,所述指令促使计算机系统200实施本发明的如下文所述的功能。
如图2A所示,系统200展示可实施本发明功能的计算机系统平台的基本组件。因此,系统200可实施为(例如)许多不同类型的便携式手持电子装置。这些装置可包括(例如)便携式电话、PDA、手持游戏装置和类似物。在这些实施例中,将包括经设计以添加外围总线、专用通信组件、对专用IO装置的支持和类似物的组件。
另外,应了解,尽管图2A和2B中将组件201-257描绘为离散组件,但可将所述组件中的若干者实施为单个单片式集成电路装置(例如,单个集成电路晶粒),其经配置以利用现代半导体制造工艺提供的高度集成。举例来说,在一个实施例中,将CPU 201、主机接口202、3-D处理器205和存储器控制器220制造成单个集成电路晶粒。
图2B展示根据本发明一个替代实施例的计算机系统250。计算机系统250大体上类似于图2A的计算机系统200。然而,计算机系统250利用具有专用系统存储器252的处理器251,和具有专用图形存储器253的3-D处理器255。主机接口254将在CPU 201与3-D处理器255之间通过的数据和命令转译成其各自的格式。在系统250实施例中,系统存储器251存储用于在CPU 251上执行的处理/线程的指令和数据,且图形存储器253存储用于在3-D处理器255上执行的处理/线程的指令和数据。图形存储器253存储驱动显示器257的视频帧缓冲器的数据。与图2A的计算机系统200一样,计算机系统250的组件251-253中的一个或一个以上可集成到单个集成电路晶粒上。
图3A是根据本发明的数据提取管级的一个实施例图形数据提取方法310的流程图。图形数据提取方法310利用针对多种类型像素信息并针对来自存储器的多种不同的图形操作的数据提取(例如,在单个图形管线级中)。举例来说,图形数据提取方法310在单个图形管线级中利用各种不同像素表面属性(例如,与色彩、深度、纹理等相关的数据)的数据提取。
步骤311中,接收像素信息(例如,像素包行)。在一个实施例中,所述像素信息由光栅模块(例如,图3B中所示的光栅模块392)产生。在一个实施例中,像素包行包括边频带部分和包括内插参数变量字段的有效负载部分。在一个示范性实施方案中,从图形管线光栅级(例如,光栅级110)或从门监级120接收像素包行。
步骤312处,在单个统一数据提取图形管线级(例如,统一数据提取级130)中检索或提取与像素信息相关联的像素表面属性值(例如,在像素包行中)。在一个实施例中,所述检索是对服务不同类型像素表面属性数据的像素表面属性值的统一检索。举例来说,像素表面属性值可对应于任意表面数据(例如,色彩、纹理、深度、图案、α等)。
数据提取方法310中信息的检索可灵活地以单个级中一个数据提取路径(例如,利用较小门计数)或多个数据提取路径(例如,以便允许较大灵活性)来实施。在一个实施例中,通过单个路径检索复数个不同类型像素表面属性值。举例来说,复数个不同类型像素表面属性值作为纹理而被检索。在一个实施例中,表面深度属性和表面色彩属性可合并,并作为纹理表面属性值的一部分而被检索。或者,通过不同的相应专用路径来检索复数个不同类型像素表面属性值。举例来说,流入到单个数据提取级中的用于色彩的路径、用于深度的路径和用于纹理的路径。每一路径可具有其自身的高速缓冲存储器。在一个实施例中,可与色彩提取(例如,α混合)或z值提取并行来执行纹理提取。或者,可并行地完成所有数据提取操作(例如,α、z值和纹理)。
步骤313中,将所获得的像素表面属性值插入或添加到像素信息。举例来说,将像素表面属性值放置在像素包行的相应字段中。在一个示范性实施方案中,像素包行的边频带部分中的指令指示其中插入有像素表面属性值的像素包的字段。举例来说,像素包的边频带部分中的指令可引导将检索到的色彩、深度或纹理属性放置在特定的像素包有效负载字段中。
步骤314中,将像素属性值转发到其它图形管线级。在一个示范性实施方案中,在后续图形管线级中对像素信息执行算术/逻辑功能。在一个实施例中,对像素信息执行数据写入功能(例如,在单个数据写入图形管线级中写入像素渲染数据)。在本发明一个实施例中,在执行算术/逻辑功能之后再循环像素信息。举例来说,将像素信息再循环到统一数据提取级130。
图3B是根据本发明一个实施例另一图形管线390的方框图。图形管线390包括设置模块391、光栅模块392、门监模块380、统一数据提取模块330、算术逻辑单元(ALU)模块393和数据写入模块350。在一个实施例中,图形管线390可实施为图形管线处理核心(例如,在图形处理芯片中,在特殊用途集成电路中,集成在主机处理单元中的中央处理单元等)。
在一个实施例中,利用图形管线390的模块来实施图形管线100的相应的级。在一个示范性实施方案中,图形管线390的模块是包括在图形处理单元中的硬件组件。设置模块392从主机301接收信息并将顶点和参数信息提供给光栅模块392。光栅模块392内插来自设置模块392的参数,并将像素包转发到门监模块380。门监模块380控制像素包流动到统一数据提取级330。统一数据提取模块330通过在单个级中的统一数据提取操作从存储器302检索多种不同类型的表面属性信息。算术逻辑单元393对像素包信息执行运算。数据写入模块350将像素渲染数据写入到存储器303(例如,帧缓冲器)。
统一数据提取模块330获得与像素(例如,由光栅化模块产生的像素)相关的表面信息。所述表面信息与将要对像素执行的复数个图形功能相关联,且其中所述表面信息存储在与像素相关联的像素信息(例如,像素包)中。复数个图形功能可包括色彩混合和纹理映射。在本发明一个实施例中,统一数据提取模块330实施统一数据提取级(例如,统一数据提取级130)。
在一个实施例中,复数个统一数据提取模块包括在单个统一数据提取级中。复数个统一数据提取模块有助于组件配置(例如,多个纹理提取模块)和数据检索操作的灵活性。在一个示范性实施方案中,像素包信息(例如,像素包行)可按路线发送到复数个不同的后续图形管线资源。举例来说,统一数据提取模块330之间的交换可将像素按路线发送到算术逻辑单元模块340内的多种ALU组件。
在本发明一个实施例中,统一数据提取级330能够有效地与图形管线390外部的存储器接口(例如,存储器302)的宽存储器存取带宽特征相交互。在一个示范性实施方案中,统一数据提取级330临时存储从存储器存取接收到的信息(例如,在提取高速缓冲存储器331中),尽管所接收的数据的整个带宽(例如,128位宽)对于特定像素来说是不必要的(例如,16位宽的数据)。存取带宽中的额外数据可含有与其它即将出现的操作相关的数据。举例来说,后续像素通常在空间上彼此接近(例如,在相同三角形中另一像素渲染),且其它像素的表面属性数据通常包括在存储器存取返回中,因为表面属性通常存储在外部存储器中的彼此接近的位置中。因此,统一数据提取模块330可包括通过在后续操作需要信息的情况下临时快速存储存储器存取信息来有效地利用存储器存取带宽的特征。
应了解,统一数据提取模块330可实施在多种实施例中。在一个实施例中,数据提取模块330包括用于获得信息的复数个路径。图3C是具有多个提取路径的统一数据提取模块330的一个示范性实施方案的方框图。举例来说,数据提取模块330可实施有包括各自纹理高速缓冲存储器335的纹理路径339、包括各自色彩高速缓冲存储器334的色彩路径338,和包括各自深度高速缓冲存储器333的深度路径337。在替代实施例中,数据提取模块330包括具有各自纹理高速缓冲存储器的单个提取路径(例如,纹理路径)。数据提取模块330利用单个纹理引擎来通过单个纹理路径检索数据、色彩和纹理属性。
算术逻辑单元(ALU)模块393经通信地耦合以接收从统一数据提取模块370输出的像素信息,且数据写入模块394经通信地耦合以接收从ALU模块393输出的像素信息。在一个示范性实施方案中,再循环数据路径397(图3B)将数据写入模块394通信地耦合到统一数据提取模块397以便将像素信息再循环回统一数据提取模块397。
根据本发明实施例单个级中的统一操作(例如,针对与特定像素相关的数据)提供许多有利特征。本发明通过将信息放置在多个像素包行中并且通过在管线内再循环必需的像素包行,能够在管线内在时间上分配像素信息(例如,指令、表面属性数据等)。在本发明一个实施例中,对像素包信息(例如,特定像素包行)的组件的处理次序可在本发明管线内动态地变化,而不会改变应用所规定的像素处理的次序。在一个示范性实施方案中,存储器存取和存储器写入两者利用类似的“统一协议”。举例来说,针对特定像素的像素渲染数据类似地写入单个统一数据写入图形管线级中。统一数据写入图形管线级(例如,由数据写入模块351所实施)可再循环信息(例如,像素包行)以供在后续处理操作中利用。举例来说,数据写入级150可发送信息(例如,第0像素包行回到门监120)。
在本发明一个实施例中,统一数据提取也有助于单个线程中的像素包有效负载处理。在一个示范性实施方案中,对与像素相关联的数据(例如,表面属性值)进行的统一数据提取可“保证”后续像素处理所必需的信息可用于单个线程处理。根据本发明的单个线程处理减少与在不同时间将像素信息的不同组件带入到图形管线中相关联的问题。举例来说,根据本发明的单个线程处理简化算术逻辑运算的资源管理问题,因为从单个统一数据提取级到算术逻辑级的所提取数据是可用的。
如图3C所示,可使用高速缓冲存储器失效信号使高速缓冲存储器333和/或色彩高速缓冲存储器334两者失效。
图3D是根据本发明一个实施例在单个线程中处理信息的像素处理方法320的流程图。
在步骤321中,在图形管线的单个级中执行像素表面属性值的统一数据提取。举例来说,当执行统一数据提取时,提取不同类型的像素表面属性值。在一个实施例中,并行地提取个别像素的复数个数据。所述复数个数据与将要对像素执行的多个图形功能相关联。举例来说,所述复数个数据可包括纹理信息和色彩信息,且所述多个图形功能可包括纹理映射功能和色彩混合功能。多个数据还可包括深度信息。在一个实施例中,个别像素通过数据提取级一次以获得算术逻辑级所需要的关于所述个别像素的所有数据。
步骤322中,将像素表面属性值插入在像素包有效负载中。像素表面属性值可对应于表面的不同属性,包括深度、色彩、纹理、模板印刷和α像素属性值。
步骤323中,转发像素包有效负载以便进行单个线程处理。单个线程处理在单个线程中对不同类型的像素表面属性值进行操作。在一个实施例中,复数个数据包括在像素包中,且被供应到图形管线的后续级(例如,算术逻辑级),且对所述复数个数据执行多个功能。算术逻辑级可根据软件控制以任意次序执行复数个图形功能。
本发明图形管线系统和方法可有助于通过限制对无助于图像显示呈现的像素进行处理来有效地利用资源。在一个示范性实施方案中,如果包括在像素包中的信息无助于图像显示呈现,那么可灵活地实施数据提取级(例如,数据提取级130)以解决各种功率消耗和性能目的。数据提取的统一允许进行多种不同的分析以在图形管线中相对“早期”地确定一像素是否有助于图像显示呈现。举例来说,在统一数据提取级相对早期地执行关于像素是否为被遮蔽(例如,具有与无助于图像显示呈现的“隐藏”表面相关联的值)的分析。本发明可防功率被消耗在对原本在管线结束时被丢弃的像素的处理上。
如果包括在像素包有效负载中的信息无助于图像显示呈现,那么可灵活地实施对于识别为无助于图像显示呈现的像素的处理以解决各种功率消耗和性能目的。在一个实施例中,像素包行的边频带部分转发通过图形管线的后续级,但不针对取消的像素而对像素包行的有效负载部分计时(例如,有效负载部分的CMOS组件不切换)。这允许否则将消耗在有效负载部分上的功率得以保留,且边频带信息流过而完成,使得保留了像素包操作的次序。不需要附加控制资源(例如,用于维持适当次序的像素处理流动和跟踪),因为在允许对边频带计时的实施方案中像素包在某种意义上继续以适当次序流过管线。在替代实施例中,通过从管线中去除像素包的边频带部分和有效负载部分两者并当从管线去除像素包信息时通知门监级来提供额外功率节约。
图4A是根据本发明一个实施例像素有效负载处理方法410的流程图。在一个实施例中,在图形处理管线的数据提取级中执行像素有效负载处理方法410。
步骤411中,接收像素包信息。在本发明一个实施例中,像素包信息包括在从图形管线光栅级(例如,光栅级110)或从门监级接收的像素包行中。在一个示范性实施方案中,接收像素包信息也包括在单个统一数据提取级中检索像素表面属性值。可将像素表面属性值插入在像素包行中。
步骤412处确定像素包信息是否有助于图像显示呈现。在一个实施例中,所述确定包括分析与像素包信息相关联的像素是否被遮蔽。举例来说,执行Z值的深度比较以确定已经处理并写入到帧缓冲器的另一像素是否处于当前进入数据提取级的像素“前方”。在此情况下,将当前像素区分为被取消的。
步骤413中,使像素包信息与状态指示符相关联。状态指示符指示像素包信息(例如,行)是否有助于图像显示呈现。在一个实施例中,状态指示符是包括在像素包的边频带数据中的位。在一个示范性实施方案中,状态指示符是包括在像素包的边频带数据中的取消位,且经设定以便当状态指示符指示像素包有效负载不影响图像显示呈现时,防止逻辑组件在继续对像素包边频带信息计时的同时对像素包有效负载计时。或者,状态指示符是包括在像素包的边频带数据中的取消位,且经设定以便当状态指示符指示像素包有效负载确实影响图像显示呈现时,启用逻辑组件。
步骤414中,转发像素包信息以便根据像素包有效负载状态指示符进行下游处理。在一个实施例中,像素包状态指示符用作对下游管级的逻辑组件的启用指示。或者,数据提取管级可立即丢弃像素包信息。
在像素有效负载处理方法410的一个实施例中,像素包信息包括在复数个像素包行中,且执行状态指示符协调过程来协调分别与复数个像素包行的每一者相关联的复数个状态指示符。在一个示范性实施方案中,复数个状态指示符的每一者经设定以便当与像素相关联的复数个状态指示符中的任一者指示所述像素无助于图像显示呈现时,指示相应的像素包行无助于所述图像显示呈现。
图4D是根据本发明一个实施例示范性下游管级电路的方框图。尽管为取消的像素设定取消位,但管级继续通过图形管线的后续管级电路传播边频带部分。举例来说,通过逻辑组件471到473连续地对边频带部分计时,且不通过逻辑组件475到477对有效负载部分计时。在一个实施例中,下游数据写入模块向上游记分板模块报告已通过图形管线传播了特定像素包。以此方式,将写入和取消的像素标记为退出的(retired)。
图4B是根据本发明一个实施例像素处理方法420的流程图。
步骤421中,接收像素包信息。在本发明一个实施例中,像素包信息包括在(例如)由图形管线光栅级(例如,光栅级110)产生或从门监模块接收的像素包行中。
步骤422处,在统一单个数据提取图形管线级中,使像素表面属性值与像素包信息相关联。可将像素表面属性值插入在像素包行中。
步骤423处,确定像素包信息是否有助于图像显示呈现。在一个实施例中,所述确定包括分析与像素包信息相关联的像素是否被遮蔽。
步骤424中,根据步骤413中进行的确定的结果来处理像素包信息处理。在一个实施例中,如果像素有助于图像显示呈现,那么将像素表面属性值并入在像素包信息中以进行进一步处理。否则,如果像素表面属性值无助于图像显示呈现,那么不对像素(例如,像素表面属性值和像素包信息)进行进一步处理。像素包可包括复数个行,且为所述复数个行协调处理。举例来说,如果在处理与像素相关联的一行时确定所述像素无助于图像显示呈现,那么从管线中去除或删除与像素相关联的多个行。在一个示范性实施方案中,如果所述复数个行的一者包括指示像素包不影响图像显示呈现的像素表面属性值,那么通知图形管线的其它级。也就是说,取消位可快速地通过像素包的与取消的像素相关联的行而传播。
图4E是根据本发明一个实施例图形管线490的方框图,其中允许管线的多个级向门监级提供通知。图形管线490包括执行与图形管线390中相应组件类似操作的设置模块491、光栅模块492、门监模块480、统一数据提取模块430、算术逻辑单元(ALU)模块493和数据写入模块450。在一个实施例中,图形管线490实施为图形管线处理核心(例如,在图形处理芯片中,在特殊用途集成电路中,集成在主机处理单元中的中央处理单元等)。图形管线490的模块也可用来实施图形管线100的相应的级。
在本发明一个实施例中,可在图形管线的多个级中进行像素“取消”确定。在一个示范性实施方案中,统一数据提取模块、算术逻辑单元(ALU)模块和数据写入模块可进行“取消”确定。图形管线的多个级也可向图形管线的门监模块提供通知。
除了执行与图形管线390类似的操作外,图形管线490的组件也处理早期取消像素状况。统一数据提取模块430包括取消确定组件432,其用于确定像素信息是否无助于图像显示呈现。在一个实施例中,取消确定组件432分析像素是否被遮蔽。举例来说,取消确定组件432执行经指定用于显示在相同屏幕显示区域中的两个像素(例如,单个或复数个监视屏像素)之间的深度比较(例如,比较Z值)。这两个像素包括正进入统一数据提取模块430的像素和先前进入统一数据提取模块430的像素。
除了像素信息再循环路径497和像素清除路径498外,在一个实施例中,图形管线490还包括可由多个管级利用的像素去除通知路径499。像素信息再循环路径497允许数据写入模块450将像素包信息(例如,像素包行)再循环到门监模块480。像素清除路径498允许数据写入模块450在将像素写入到存储器430时通知门监模块480。像素去除通知路径499允许统一数据提取模块430、算术逻辑单元模块441和数据写入模块451当这些组件的每一者分别从管线中去除像素包行进而增加管线内的滑动时通知门监模块480。去除的像素包被立即丢弃(例如,有效负载以及边频带部分)。在状态指示符取消位包括在像素包边频带中的示范性实施方案中,图形管线490不包括像素去除通知路径499,因为不从管线中去除像素。尽管像素有效负载未经处理且未将像素写入到存储器403,但为了通知门监模块480(例如,通过像素清除路径498)将像素视为正常地完成。响应于来自路径499的像素去除通知,门监可允许较多像素进入下游管级中。
图4F是根据本发明一个实施例具有多个像素包行的图形管线490模块的示范性实施方案的方框图。统一数据提取模块430、算术逻辑单元模块441和数据写入模块450视是否存在状态指示符(例如,包括在边频带部分中的取消位)而以不同方式处理无助于图像显示呈现的像素。如果取消位包括在像素包行的边频带部分中,那么统一数据提取模块430、算术逻辑单元模块441和数据写入模块450将状态指示符设定抹到与像素包相关联的其它行上,进而将功率节省散布到所有行。举例来说,如果像素包1第1行当被接收在算术逻辑单元模块441中时不包括设定的取消位,且像素包1第2行不包括设定的取消位,那么算术逻辑单元模块441改变取消位以将其设定在像素包1第1行中并停止处理有效负载部分。在其中从图形管线中去除“取消的”像素的实施方案中,统一数据提取模块430、算术逻辑单元模块441和数据写入模块450去除与像素相关联的所有像素包行,并通知门监模块行的去除。举例来说,如果像素1被取消,那么算术逻辑单元模块441去除像素包第1行和第2行。
现返回参看图4B,在一个实施例中,像素处理方法420也包括控制复数个像素包的输入流进入统一单个数据提取图形管线级中。举例来说,所述控制包括维持输入流中足够的宽松度以防止对复数个像素包进行操作的管线中出现停滞。所述控制还包括当不对与第一像素包相关联的像素包信息进行进一步处理时允许与复数个像素包的另一者相关联的信息流入统一单个数据提取图形管线级中。通知门监级是否不对像素包信息进行进一步处理。管线内的宽松量(例如,流过的数据“洞”的量)也称为“滑动”。
图4C是根据本发明一个实施例在图形管线中跟踪像素信息的方法440的流程图。
步骤441中,通过图形管线的管线化模块来传播像素包,其中每一管线化模块包含各自的管级电路。
步骤442中,确定特定像素包是否不需要用于渲染。在一个实施例中,图形管线包括上游数据提取模块(例如,统一数据提取模块430),其确定特定像素包是否不需要用于渲染。在一个示范性实施方案中,在对特定像素包执行深度测试后而进行所述确定。
响应于步骤442的确定结果,如果特定像素包是否不需要用于渲染,那么在步骤443中在特定像素包内设定取消位。在一个实施例中,与像素包的复数个行相关联的管级模块设定取消位响应于确定结果而执行所述设定。
响应于设定取消位,在步骤443中防止通过图形管线的后续管级电路来对特定像素包的数据部分计时。在一个实施例中,取消位用作图形管线的后续管级电路的计时设备的启用信号。
任意尺寸纹理调色板
本发明还有助于有效的纹理应用操作。在一个实施例中,通过将纹理添加到少量相对较大的多边形的每一者而不是在渲染大量没有纹理的相对较小的多边形,来更有效地渲染物体。举例来说,渲染具有现实外观的树可需要用较淡和较深色带来渲染树干,以及树叶的复杂图案。可在对给出树干外观的每一多边形应用纹理的情况下用少数几个相对较大的多边形来有效且逼真地渲染树干。在一个示范性实施方案中,可通过对一个或少数几个相对较大的多边形应用树叶纹理来渲染所有树叶。另外,与试图通过在不应用纹理的情况下渲染许多较小多边形来产生细节相比,对少数几个相对较大的多边形应用纹理更有效。
在一个实施例中,本发明包括纹理调色板,其包括许多条目,每一条目定义可应用于纹理以产生“调色纹理”的性质(例如,色彩)。本发明可允许软件程序在有效地使用系统资源的同时使用彼此具有不同分辨率的多个纹理调色板表格。以此方式使用纹理调色板的一个原因是提供纹理映射的数据压缩。
在一个实施例中,本发明可允许利用相对少量的资源(例如,存储纹理调色板的计算机存储器、芯片空间、功率消耗等)来渲染调色纹理。本发明实施例还可允许灵活地实施纹理调色板和纹理映射。在一个示范性实施方案中,可将相同纹理调色板灵活地调节为任意尺寸、适于多种不同纹理映射的纹理调色板表格。
本发明实施例提供图5A说明本发明的包含任意尺寸的纹理调色板表格502的纹理调色板数据结构500的实施例。纹理调色板表格502包含由许多纹素数据条目界定的尺寸。如本描述内容全文中所使用,术语“任意尺寸”意味着除了调色板数据结构500的总尺寸外,还允许具有至少两个尺寸的纹理调色板表格502。不要求允许每个可能尺寸的纹理调色板表格502。举例来说,在一些实施例中,纹理调色板表格502每一者包含尺寸为16个条目的倍数的尺寸。在另一实施例中,允许纹理调色板表格502的尺寸是配合数据结构500且不会与另一纹理调色板表格重叠的任何尺寸。
计算机可读媒体的经分配用于纹理调色板存储器500的部分可以是可覆写的。因此,纹理调色板数据结构500的配置为可任意重新配置的,使得可改变对纹理调色板数据结构500的划分。举例来说,当一个或一个以上纹理调色板表格502不再处于使用状态时,它们可被适于纹理调色板存储器500的新近未被占用的任何尺寸纹理调色板表格502的部分代替。然而,出于便利和性能起见,可能需要在某一时间周期内使用一组给定的纹理调色板表格502来工作。
图5A中的纹理调色板存储器500包含n个条目,其中“n”是寻址纹理调色板存储器500中的条目的唯一指数(通常幂为二)的计数。这些条目可具有任何合适的宽度,例如,16位、32位等。此外,因为纹理调色板存储器500相对较小,所以根据本发明的实施例有助于节约功率。然而,可使用任何便利的尺寸。每一条目可含有纹素数据。纹理调色板存储器500可具有任何便利的宽度,例如,16位、32位等。根据一个实施方案,每一条目含有红色、绿色、蓝色和一个纹素的α信息。然而,本发明不限于任何特定数据格式的纹素数据。
根据本发明实施例,给定的纹理调色板表格502可包含任何数目的条目,多达纹理调色板存储器500的尺寸。每一条目可描述单个纹素的数据。如所属领域的技术人员所了解,可通过基于纹理映射的“纹素”应用来自纹理调色板表格502的一者的数据来将纹理“调色”。可在ALU中执行纹理数据的实际应用。纹理映射可包含针对每一纹素的指数,其描述应使用给定的纹理调色板表格502中的什么条目来处理每一纹素。纹素色彩值可为所述指数。给定的纹理调色板表格502可由许多不同的纹理映射使用。然而,在一些情况下,不同的纹理映射需要不同的纹理调色板表格502。举例来说,不同的纹理映射可使用不同的纹理分辨率,且因此能够使用不同尺寸的纹理调色板表格502。
已知的常规纹理渲染技术的局限性在于,其需要纹理调色板存储器整体地用于一个纹理调色板表格或用于将被分成相等尺寸的数个纹理调色板表格的表格。举例来说,在一种常规模式下,具有256个条目的纹理调色板存储器可仅用于一个纹理调色板表格。在另一常规模式下,纹理调色板存储器其实可分成16个纹理调色板表格,所述纹理调色板表格每一者具有确切相同尺寸。然而,已知常规上不提供任意尺寸的纹理调色板表格。
因为已知的常规纹理调色板表格必须是16或256个条目,所以事实上将纹理分辨率的量限制为相对较高的8位分辨率或相对较低的4位分辨率,而在这两个分辨率之间没有选择余地。然而,根据本发明实施例,可将纹理调色板表格界定为任何任意尺寸。因此,根据本发明实施例,纹理分辨率不限于8位或4位。
本发明实施例允许软件使用任意尺寸的纹理调色板表格。因此软件可使用彼此具有不同分辨率的纹理调色板,同时有效地利用系统资源。举例来说,软件程序可使用针对具有相对较高分辨率的第一纹理调色板表格502的纹理调色板存储器500。举例来说,如果纹理调色板存储器500包含256个条目,那么纹理调色板表格502提供8位的纹理分辨率,为了说明,将其称为相对较高分辨率。
本发明实施例允许在第一纹理调色板表格不损失较多分辨率的情况下将纹理调色板存储器500用于第二纹理调色板表格。举例来说,第一和第二纹理调色板表格可依照应用程序需要的任何比例共享纹理调色板存储器500。举例来说,第二纹理调色板表格可具有4位分辨率,且因此仅需要纹理调色板存储器500中的16个条目。所述应用程序或另一软件程序可稍微压缩第一纹理调色板表格的分辨率,使得具有240个条目的新的纹理调色板表格将已足够。因此,纹理调色板存储器500划分为具有240个条目的新第一纹理调色板表格和具有16个条目的第二纹理调色板表格。因此,两个表格一起充分利用纹理调色板存储器500。此外,仅稍微减小了第一纹理调色板表格的分辨率。此外,有效地利用了系统资源。
图5B说明根据一个实施例用于形成指数以存取纹理调色板存储器(图5A,500)的纹素数据的组合逻辑506。将表格偏移量和纹素指数输入到组合逻辑506中。表格偏移量界定需要纹素数据的纹理调色板表格(图5A,502)的开始位置。纹素指数界定进入特定纹理调色板表格的偏移量。因此,表格偏移量和纹素指数一起指定纹素数据条目在纹理调色板存储器中的地址。可从(例如)数据提取单元(图3)存取纹理指数。表格偏移量可存储在表格偏移量寄存器508中。
根据本发明一个实施例,组合逻辑506是n位加法器,且纹理调色板存储器包含2n个条目。然而,组合逻辑506不需要实施为加法器。如果表格偏移量或纹素指数均不为n位值,那么可在输入到组合逻辑506之前对它们进行调节使得将它们被格式化为n位值。举例来说,根据各种实施例,表格偏移量和/或纹素指数可被添加零,或其位被屏蔽。根据一个实施例,“n”等于8,且组合逻辑506是8位加法器。将了解,纹素指数和表格偏移量不需要包含相同数目的有效位。
在一些实施例中,表格偏移量包含在发送到组合逻辑506之前用零填充的4位有效信息。现参看图5C,用零填充包含位To-T3的4位表格偏移量以形成具有四个最不有效位“0000”的8位值。这可通过在将表格偏移量输入到组合逻辑506中之前将表格偏移量向左移动m个位来实施。因此,在此实施例中,表格偏移量可唯一地指定16个地址。在一个实施例中,纹素指数包含位Io-I7。纹素指数的所有位可包含有效信息。如果需要,可屏蔽纹素指数的若干部分(图5C中未描绘)。在其中表格偏移量限于4位值的实施例中,纹理调色板表格可限于在为16的倍数的地址处开始。然而,纹理调色板表格可具有彼此不同的尺寸。这提供能够同时将纹理调色板存储器用于相对较小的纹理调色板表格和较大的纹理调色板表格的优点。举例来说,如果一个纹理调色板表格包含16个条目,那么另外下一个纹理调色板表格可包含64或更多个条目。
在其它实施例中,表格偏移量包含8位有效信息。现参看图5D,8位表偏移量包含有效位T0-T7。因此,在这些实施例中,表格偏移量可唯一地指定256条目纹理调色板存储器500中的任何地址。因此,本发明的此实施例允许纹理调色板表格在纹理调色板存储器中的任何任意位置处开始。在此实施例中,纹素指数包含8位有效信息。然而,如果需要,可屏蔽纹素指数的若干部分(图5D中未描绘)。
在其它实施例中,表格偏移量包含8位有效信息,且纹素指数包含4位有效信息。现参看图5E,8位表格偏移量包含有效位To-T7。纹素指数包含有效位T0-T3,其用4个位填充以形成8位值。
将了解,图5C-5F中所说明的实例是为了说明的目的,且本发明不限于针对表格偏移量、纹素指数和表格偏移量与纹素指数组合的最终结果的任何特定数目的位。
图5F是说明根据本发明实施例存取具有任意尺寸纹理调色板表格的纹理调色板存储器的示范性技术的图。基于变量(s,t),从纹理映射550存取y位的纹素指数。纹素指数是组合逻辑506的输入之一。存取x位的表格偏移量并将其输入到组合逻辑506中。表格偏移量根据m的值而移动。举例来说,当m为16时,表格偏移量移位四个位置以有效地将表格偏移量乘以16。当m为八时,表格偏移量移位三个位置以有效地将表格偏移量乘以八。乘数m可为任何便利的值。当m为一时,表格偏移量不移位。或者可使用偏移量值的查找表。然而将了解,表格偏移量可以任何便利的方式形成。根据一个实施例,通过查阅偏移量值的查找表来确定表格偏移量(图5F中未描绘)。此外,将了解,允许表格偏移量为多达纹理存储器数据结构的尺寸的任何值。组合逻辑506的输出为针对纹理调色数据结构500的纹素指数。基于为纹理调色数据结构500做索引而输出纹素色彩。
图6A是说明根据本发明实施例说明提供任意尺寸纹理调色板表格的电子过程600的步骤的流程图。过程600的步骤可作为指令而存储在计算机可读媒体上,并在通用处理器或专用电子装置上执行。602中,提供嵌入在计算机可读媒体中的纹理调色板存储器。
604中,将纹理调色板存储器划分为任意尺寸的复数个纹理调色板表格。步骤604可包含将纹理调色板存储器的第一部分分配到第一纹理调色板表格,所述第一纹理调色板表格允许具有配合数据结构且不会与另一纹理调色板表格重叠并且是16的任何倍数的尺寸。在另一实施例中,步骤604包含将纹理调色板存储器的部分分配到纹理调色板表格,所述纹理调色板表格允许具有配合数据结构而不会与另一纹理调色板表格重叠的多达并包括纹理调色板存储器的尺寸的任何尺寸。表格偏移量值标记特定调色板表格的开始地址。每一界定的表因此具有其自身的表格偏移量值。
步骤606中,针对纹理调色板存储器中的纹理调色板表格的每一者存储纹素数据。可重复步骤604使得包含将纹理调色板存储器重新划分为任意尺寸的纹理调色板表格。此允许在软件的判断下动态地配置纹理调色板存储器的配置。本发明的实施例允许软件将纹理调色板存储器动态地配置成具有将配合所分配的纹理调色板存储器的任何尺寸的纹理调色板表格。在一个实施例中,允许软件程序选择使用纹理调色板存储器的模式,使得将纹理调色板存储器划分为任意尺寸的纹理调色板表格。
图6B说明根据本发明实施例说明存取存储在任意尺寸纹理调色板表格中的数据的过程620的步骤的流程图。过程620的动作可作为指令而存储在计算机可读媒体上,并在通用处理器上执行。步骤622中,存取纹素指数。举例来说,可从数据提取单元存取纹素指数。根据本发明实施例,纹素指数包括8位有效信息。根据本发明另一实施例,纹素指数包括4位有效信息。在一个实施例中,纹素指数是来自特定纹素坐标(s,t)的纹理映射的输出值。
步骤624中,存取进入计算机可读媒体中实施的纹理调色板存储器的偏移量。根据本发明实施例,所述偏移量包括8位有效信息。根据本发明实施例,所述偏移量包括4位有效信息。表格偏移量界定特定的调色板表格。
步骤626中,组合纹素指数与表格偏移量以获得纹理调色板存储器指数。可将纹素指数和表格偏移量添加在8位加法器中以获得纹理存储器数据结构指数,此界定纹理存储器数据结构指数中的地址。因此,本发明的实施例不需要精密复杂的硬件来产生进入纹理调色板存储器的指示符。为了准备用于组合的纹素指数,可在将纹素指数组合到偏移量以获得纹理调色板存储器指数之前屏蔽指数的至少一个位。如所讨论,可在组合之前对表偏移量执行位移操作。当m为16时,位移动四个位置。当m为8时,位移动三个位置。当m为四时,位移动两个位置。当m为二时,位移动一个位置。当m为一时,位不移动。然而将了解,表格偏移量可以任何便利的方式形成。根据一个实施例,通过查阅查找表来确定表格偏移量。此外,将了解,允许表格偏移量参考纹理存储器数据结构中的任何位置。
步骤628中,基于纹理调色板存储器指数而存取纹理调色板存储器中的纹素值。从纹理调色板存储器获得的值是供像素使用的纹素色彩。纹素值可继续传递到算术逻辑单元以供进一步处理。
重合像素跟踪
本发明实施例协调管线中像素的流动以维持适当的处理流(例如,应用程序描绘三角形的次序)。举例来说,应用程序可能引导在另一三角形的上方渲染的三角形。在某些情况下,例如当三角形的尺寸适当时(例如,“重叠”),与第二三角形相关联的像素可能与来自第一三角形的像素重合(例如,具有相同的屏幕位置)。如果无序地执行操作(尤其当渲染透明物体时),那么图形管线可产生未预期的或不正确的结果。本发明实施例包括维持适当处理流的像素(例如,次序)的预防措施。在一个实施例中,本发明确保与来自三角形的像素相关联的像素在来自第二三角形的重合像素前进到管线中之前完成处理。举例来说,第二屏幕重合像素进入图形管线的传播发生停滞直到第一屏幕重合像素排出图形管线为止。
本发明实施例也根据像素流协调数据一致性。在一个实施例中,本发明也有助于数据提取操作与数据写入操作的存储器(例如,缓冲器、高速缓冲存储器等)一致性维持。举例来说,本发明可通过协调重合像素进入图形管线的后续级中与进行中的读取-修改-写入操作来防止读取-修改-写入危险。在某些情况下,数据提取高速缓冲存储器可能包括陈旧数据,尽管屏幕重合像素已退出写入缓冲器。举例来说,对于两个屏幕重合像素,第三介入像素可能已装载来自数据高速缓冲存储器的陈旧数据。一旦写入介入像素,此数据将不再有效,但可在不受本发明提供的保护的情况下另外由之后的屏幕重合像素存取。这样另外可导致提取高速缓冲存储器中读取数据的污染。本发明实施例提供基于像素停滞来使数据高速缓冲存储器失效。在一个示范性实施方案中,本发明利用记分板技术来跟踪和识别重合像素问题。
图7A说明根据本发明实施例可编程图形处理器的示范性图形管线700的方框图。在一个实施例中,图形管线700可运作来处理像素以便渲染在显示装置上。应了解,图形管线700类似于图1的图形管线100,且额外地提供数据提取高速缓冲存储器清洗功能并为屏幕重合像素提供增强的记分板功能。在一个实施例中,图形管线700包括门监级710、数据提取级730、算术逻辑单元(ALU)级740、数据写入级750和再循环路径760。
门监级710执行所接收的像素包的数据流动控制功能。在一个实施例中,门监级710具有关联的记分板715,其用于调度、负载平衡、资源分配并避免与读取-修改-写入操作相关联的重合性危险。记分板715跟踪像素的进入和退出。进入门监级710的像素包设定记分板,且当像素包在完成处理之后排出图形管线700时重设记分板。
记分板715跟踪正由图形管线700的下游级处理的像素的屏幕位置。记分板715防止三角形中的一个像素与正被处理的另一像素重合(在其上方)且在路线中但尚未退出的危险。举例来说,当在门监级710处接收像素包时,将像素包的屏幕位置存储在记分板715处。当接收具有相同屏幕位置的第二像素包时,记分板715指示具有所述屏幕位置的另一像素当前正由图形管线700的下游级处理。在其它像素退出之前不允许重合像素进入下游管线。
在一个实施例中,记分板715实施为位屏蔽。图7B根据本发明实施例说明记分板级715的示范性位屏蔽780的图。位屏蔽780是用于指示具有特定(x,y)位置的像素是否正忙(例如,正由图形管线700处理)的位的栅格。针对表格的指数可为像素屏幕位置的散列函数(例如,稀疏散列)。举例来说,位790指示表示显示屏上的特定像素的特定(x,y)位置。在一个实施例中,当像素包进入门监级710时,在位屏蔽780上引用(x,y)位置。如果位屏蔽780的相应的位是清晰的,那么将像素包转发到图形管线700的下游级,且将(x,y)位置标记为繁忙。在一个实施例中,通过每一像素的(x,y)位置的散列(数学组合)以128位乘32位来寻址位屏蔽。在一些情况下,此散列过程将适当地防止非重合像素进入管线(例如,由于散列碰撞),且不会产生不正确的结果。可调谐位屏蔽(和关联的散列函数)的尺寸以便将碰撞的发生率减小到任何可接受的低水平。然而应了解,可使用任何尺寸的位屏蔽,且可使用任何散列函数。举例来说,位屏蔽780可为完全关联的位屏蔽,包括显示器的每一屏幕位置的位。明确地说,位屏蔽780是示范性的,且本发明实施例并不希望限于所展示的位屏蔽。
在一个实施例中,位屏蔽仅含有总屏幕位置的小部分,因为重叠三角形内的渲染通常发生在非常局限的屏幕区域内。这连同路线中(例如,此时在管线中)的像素通常被拉近在一起且数目很少的事实,意味着位散列可(例如)与200个位置一样小。
返回图7A,门监级710控制像素包流动到图形管线700的下游级。在一个实施例中,门监级710检测新像素与当前正在图形管线700的下游级内处理的像素之间的屏幕重合性。在一个实施例中,门监级710响应于在像素与当前正处理的像素之间检测到屏幕重合性而停止将新像素传播到下游级。在一个实施例中,门监级710停止将所有新像素传播到图形管线700的下游部分中。在一个实施例中,向具有与当前正被处理的像素的屏幕重合性的新像素分配停滞位。停滞位指示在某一时刻,相应的像素包促使门监级710由于屏幕重合性而停止从门监级710向下游传播像素。
在各个级处处理在门监710的下游转发的像素包。在一个实施例中,数据提取级730、ALU级740和数据写入级750处理像素包。数据提取级730包括关联的数据高速缓冲存储器735,且数据写入级750包括关联的写入缓冲器755。应了解,数据高速缓冲存储器735和写入缓冲器755耦合到存储器子系统。在一个实施例中,数据高速缓冲存储器735包含色彩高速缓冲存储器和深度高速缓冲存储器。在一个实施例中,如果数据提取管级遇到的像素具有其使管线停滞的指示(如上所述),那么使色彩和深度高速缓冲存储器失效。
在一个实施例中,数据提取级730在处理像素包的同时从数据高速缓冲存储器735存取数据。在一个实施例中,数据高速缓冲存储器735保存128位数据。数据高速缓冲存储器735可从存储器子系统存取数据。应了解,数据高速缓冲存储器735可具有多种配置。举例来说,在一个示范性实施方案中,数据高速缓冲存储器735包括针对色彩、深度和纹理的单独的高速缓冲存储器(例如,类似于提取高速缓冲存储器331)。在一个示范性实施方案中,响应于在像素包中设定停滞位,将清洗信号(例如,737)转发到数据高速缓冲存储器735。
在数据提取级730下游,数据写入级750可运作以将数据传输到写入缓冲器755。在一个实施例中,写入缓冲器755保存128位数据。数据写入级750继续将数据传输到写入缓冲器755,直到写入缓冲器755充满为止。接着将来自写入缓冲器755的数据传输到存储器子系统。
当完成像素包的处理时,通过再循环路径760从数据写入级750向门监级710发送消息。所述消息指示像素已完成处理。响应于接收所述消息,记分板715更新以指示与像素相关联的屏幕位置现在正空闲,且可开始处理具有相同屏幕位置的另一像素。在一个实施例中,清除位屏蔽中的相应的位。
门监级710可运作以响应于第一屏幕重合像素完成处理而重新开始将像素传播到下游级。如上所述,在一个实施例中,当重新开始传播像素时门监级710使数据高速缓冲存储器735无效。在一个实施例中,响应于检测与像素包相关联的停滞位而使数据高速缓冲存储器735失效。
在一些管线配置中,上述实施例可能不完全避免陈旧数据被提取到数据高速缓冲存储器735中(例如,可能存在一像素序列,其在门监级710中永不停滞但由于门监记分板715与数据高速缓冲存储器735的尺寸之间的粒度上的差异将使得提取到陈旧数据)。在一个实施例中,数据提取级730检查(或调查)再循环路径760上的消息,将消息的屏幕(x,y)位置与高速缓冲存储器标签信息进行比较,并使与所述(x,y)位置匹配(或在所述消息可能不明确的情况下可能匹配)的高速缓冲存储器列失效。
图8是根据本发明实施例说明处理图形管线中的像素的过程800的流程图。过程800的动作可作为指令而存储在计算机可读媒体上,并在通用处理器上执行。尽管过程800中揭示特定步骤,但这些步骤是示范性的。也就是说,本发明实施例较佳适于执行各种其它步骤或图8中所述步骤的变化形式。在一个实施例中,过程800由图7A的图形管线700执行。
在图8的步骤805处,记录在图形管线的上游级处处理的像素的经编码屏幕位置。在一个实施例中,执行所述记录以检测图形管线中第一像素与第二像素之间的屏幕重合性,其中第一像素已进入图形管线的下游管线部分但尚未完成图形管线内的处理。所述记录在图形管线的门监级处执行并存储在门监级的记分板中。在一个实施例中,将经编码屏幕位置记录到记分板的位屏蔽中。
在一个实施例中,通过设定位屏蔽中的表示正进入下游管线部分的像素的屏幕位置的位来确定屏幕重合性。接着确定位屏蔽是否含有与第二像素的屏幕位置相关联的设定位。在一个实施例中,下游管线部分包含数据提取级和数据写入级。在一个实施例中,数据提取级是下游管线部分的管线次序中的第一级。举例来说,参看图7A,在门监级710下游的级处处理第一像素。第二像素进入门监级710,在其中确定第一像素与第二像素是否具有屏幕重合性。
步骤810处,响应于检测第一像素与第二像素之间的屏幕重合性,停止将第二像素传播到图形管线的下游部分中。在一个实施例中,停止传播第二像素直到第一像素完成图形管线内的处理为止。在一个实施例中,还停止传播第二像素之后的所有像素。
步骤815处,响应于检测屏幕重合性,将停滞位分配给第二像素。在一个实施例中,停滞位定位在第二像素的像素包的边频带信息中。
步骤820处,当第一像素已完成图形管线内的处理时将消息发送到上游级。所述消息由下游管线部分的下游级发送。在一个实施例中,下游级是数据写入级。在一个实施例中,当数据写入级将像素写入到耦合到图形管线的存储器子系统时,第一像素完成图形管线内的处理。应了解,将像素写入到存储器子系统可包括在存储器子系统的存储器控制器处接收像素。数据提取级下游的数据写入级将像素写入到耦合到图形管线的存储器子系统。在一个实施例中,将要被写入的像素存储在写入缓冲器中。在另一实施例中,当数据写入级确定图形管线已丢弃第一像素时,第一像素完成图形管线内的处理。
步骤825处,响应于上游级接收消息,重设所述位屏蔽中的与第一像素相关联的位。一旦像素已完成处理(例如,写入到存储器子系统或被丢弃),重设位屏蔽中的其关联的位,从而指示当前图形管线的下游部分中没有具有特定屏幕位置的像素。
步骤830处,重新开始将像素传播到下游管线部分中。在一个实施例中,响应于确定已重设与第二像素相关联的位而重新开始传播。
步骤835处,在数据提取级获得第二像素的数据之前使与所述数据提取级相关联的数据高速缓冲存储器失效。在一个实施例中,当第二像素进入数据提取级时,使数据高速缓冲存储器失效。在一个实施例中,当数据提取级检测到停滞位时,使数据高速缓冲存储器失效。在一个实施例中,数据高速缓冲存储器包含色彩高速缓冲存储器和深度高速缓冲存储器。
已为了说明和描述的目的而提供对本发明特定实施例的以上描述。不希望所述描述内容为详尽的或将本发明限于所揭示的精确形式,且依照以上教示可能存在许多修改和变化。选择并描述这些实施例是为了最佳地解释本发明原理及其实践应用,藉此使所属领域的技术人员能够在对各种实施例作出适合所期望的特定用途的各种修改的情况下最佳地利用本发明。希望本发明范围由所附权利要求书及其等效物界定。在权利要求书中,除非特定元件明确地参考在其之前或之后的另一元件,否则元件的次序不暗示操作、步骤或类似项目的任何特定次序。
Claims (18)
1.一种图形管线,其包含:
一上游模块,其经耦合以接收像素信息,且用于调节允许在所述图形管线的一下游部分内同时处理的像素的数目以便维持其中的宽松度;且
其中所述下游部分包含:
一第一模块,其用于去除确定为不需要用于渲染的任何像素的像素信息,所述第一模块用于周期性地将其所去除的像素的指示传送到所述上游模块;和
一第二模块,其用于去除确定为不需要用于渲染的任何像素的像素信息,所述第二模块用于周期性地将其所去除的像素的指示传送到所述上游模块。
2.根据权利要求1所述的图形管线,其中所述第一模块还用于通过对一像素执行一深度测试来确定所述像素是否不需要用于渲染。
3.根据权利要求2所述的图形管线,其中所述第二模块还用于确定一像素是否不需要用于渲染。
4.根据权利要求1所述的图形管线,其中所述下游部分内的宽松度响应于所述第一和第二模块去除的像素而增加。
5.根据权利要求4所述的图形管线,其中所述上游模块响应于所述下游部分中的宽松度的增加而允许更多像素进入所述下游部分。
6.根据权利要求1所述的图形管线,其中所述下游部分进一步包含一数据写入模块,其用于将像素信息写入到一存储器子系统,且其中所述数据写入模块周期性地将写入到所述存储器子系统的像素的指示传送到所述上游模块。
7.根据权利要求6所述的图形管线,其中所述下游部分内的宽松度响应于所述数据写入模块将像素写入到所述存储器子系统而增加。
8.根据权利要求7所述的图形管线,其中所述上游模块响应于所述下游部分中的宽松度的增加而允许更多像素进入所述下游部分。
9.根据权利要求1所述的图形管线,其中所述上游模块是一记分板模块,其经耦合以从一光栅器模块接收像素并耦合到所述第一模块。
10.根据权利要求9所述的图形管线,其中所述第一模块是一数据提取模块。
11.根据权利要求10所述的图形管线,其中所述第二模块是一算术逻辑单元(ALU)模块。
12.一种在一图形管线中处理像素信息的方法,其包含:
a)基于一下游部分内的一宽松量来调节像素进入所述图形管线的所述下游部分,所述调节由所述图形管线的一上游模块执行;和
b)通过执行以下步骤去除所述下游部分内的像素信息:
b1)识别将不被渲染的像素;
b2)从所述下游部分去除与识别为将不被渲染的像素相关联的像素信息;和
b3)周期性地将去除的像素的一指示传送到所述上游模块,且
其中所述b)由所述下游部分的多个管线模块独立地执行。
13.根据权利要求12所述的方法,其中所述下游部分的所述多个管线模块中的一者是一根据一深度测试来执行所述识别的数据提取单元。
14.根据权利要求12所述的方法,其中所述下游部分的所述多个管线模块中的一者是一算术逻辑单元(ALU)。
15.根据权利要求12所述的方法,其中所述上游模块是一记分板模块。
16.根据权利要求12所述的方法,其中响应于所述多个管线化模块去除像素而增加所述下游部分内的宽松度。
17.根据权利要求12所述的方法,其进一步包含将像素信息写入到一存储器子系统,和将写入的像素的一指示传送到所述上游模块。
18.根据权利要求17所述的方法,其中响应于将像素写入到所述存储器子系统而增加所述下游部分内的宽松度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/845,662 | 2004-05-14 | ||
US10/845,662 US8711155B2 (en) | 2004-05-14 | 2004-05-14 | Early kill removal graphics processing system and method |
PCT/US2005/017031 WO2005112592A2 (en) | 2004-05-14 | 2005-05-13 | Graphics processing system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101091203A CN101091203A (zh) | 2007-12-19 |
CN101091203B true CN101091203B (zh) | 2010-05-26 |
Family
ID=35428753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800154386A Expired - Fee Related CN101091203B (zh) | 2004-05-14 | 2005-05-13 | 图形处理系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8711155B2 (zh) |
EP (1) | EP1771824A4 (zh) |
CN (1) | CN101091203B (zh) |
WO (1) | WO2005112592A2 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8125489B1 (en) * | 2006-09-18 | 2012-02-28 | Nvidia Corporation | Processing pipeline with latency bypass |
US8907964B2 (en) * | 2007-04-10 | 2014-12-09 | Vivante Corporation | System and method for dynamically reconfiguring a vertex cache |
US9035957B1 (en) * | 2007-08-15 | 2015-05-19 | Nvidia Corporation | Pipeline debug statistics system and method |
KR101502362B1 (ko) * | 2008-10-10 | 2015-03-13 | 삼성전자주식회사 | 영상처리 장치 및 방법 |
US9437025B2 (en) * | 2012-07-12 | 2016-09-06 | Nvidia Corporation | Stencil data compression system and method and graphics processing unit incorporating the same |
ES2915262T3 (es) * | 2012-11-22 | 2022-06-21 | Bombardier Transp Gmbh | Computación de la suma de comprobación de discriminación de color en una interfaz hombre-máquina |
US9214006B2 (en) | 2013-06-04 | 2015-12-15 | Arm Limited | Hidden surface removal in graphics processing systems |
GB2511177B (en) | 2012-12-17 | 2015-04-15 | Advanced Risc Mach Ltd | Hidden surface removal in graphics processing systems |
US9153070B2 (en) * | 2012-12-17 | 2015-10-06 | Arm Limited | Hidden surface removal in graphics processing systems |
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 |
US9721381B2 (en) * | 2013-10-11 | 2017-08-01 | Nvidia Corporation | System, method, and computer program product for discarding pixel samples |
GB2520365B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2520366B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
US9773294B2 (en) * | 2014-07-03 | 2017-09-26 | Mediatek Inc. | Graphics processing system for determining whether to store varying variables into varying buffer based at least partly on primitive size and related graphics processing method thereof |
US20160093069A1 (en) * | 2014-09-26 | 2016-03-31 | Subramaniam Maiyuran | Method and apparatus for pixel hashing |
US9466124B2 (en) * | 2014-11-10 | 2016-10-11 | Intel Corporation | Compression using index bits in MSAA |
US9626733B2 (en) | 2014-11-24 | 2017-04-18 | Industrial Technology Research Institute | Data-processing apparatus and operation method thereof |
US10242286B2 (en) | 2015-03-25 | 2019-03-26 | Intel Corporation | Edge-based coverage mask compression |
US9836809B2 (en) | 2015-09-25 | 2017-12-05 | Intel Corporation | Method and apparatus for adaptive pixel hashing for graphics processors |
US10540808B2 (en) * | 2016-09-16 | 2020-01-21 | Intel Corporation | Hierarchical Z-culling (HiZ) optimization for texture-dependent discard operations |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
GB2574361B (en) | 2017-12-18 | 2021-03-24 | Advanced Risc Mach Ltd | Graphics Processing |
US10726610B2 (en) | 2018-08-29 | 2020-07-28 | Arm Limited | Efficient graphics processing using metadata |
WO2020191920A1 (en) * | 2019-03-25 | 2020-10-01 | Huawei Technologies Co., Ltd. | Storing complex data in warp gprs |
US11978162B2 (en) * | 2020-12-18 | 2024-05-07 | Take-Two Interactive Software, Inc. | System and method for improved rendering of computer graphic models |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6118452A (en) * | 1997-08-05 | 2000-09-12 | Hewlett-Packard Company | Fragment visibility pretest system and methodology for improved performance of a graphics system |
US6259461B1 (en) * | 1998-10-14 | 2001-07-10 | Hewlett Packard Company | System and method for accelerating the rendering of graphics in a multi-pass rendering environment |
US6597363B1 (en) * | 1998-08-20 | 2003-07-22 | Apple Computer, Inc. | Graphics processor with deferred shading |
US20040012600A1 (en) * | 2002-03-22 | 2004-01-22 | Deering Michael F. | Scalable high performance 3d graphics |
US20040078504A1 (en) * | 2002-10-22 | 2004-04-22 | Patrick Law | Video bus for a video decoding system |
Family Cites Families (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4667308A (en) | 1982-07-21 | 1987-05-19 | Marconi Avionics Limited | Multi-dimensional-access memory system with combined data rotation and multiplexing |
US4620217A (en) | 1983-09-22 | 1986-10-28 | High Resolution Television, Inc. | Standard transmission and recording of high resolution television |
US4648045A (en) | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
US4901224A (en) | 1985-02-25 | 1990-02-13 | Ewert Alfred P | Parallel digital processor |
US4700319A (en) | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
US5185856A (en) | 1990-03-16 | 1993-02-09 | Hewlett-Packard Company | Arithmetic and logic processing unit for computer graphics system |
US5270687A (en) | 1990-06-27 | 1993-12-14 | Texas Instruments Incorporated | Palette devices, computer graphics systems and method with parallel lookup and input signal splitting |
CA2043493C (en) | 1990-10-05 | 1997-04-01 | Ricky C. Hetherington | Hierarchical integrated circuit cache memory |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
JPH06318060A (ja) | 1991-07-31 | 1994-11-15 | Toshiba Corp | 表示制御装置 |
US5357604A (en) | 1992-01-30 | 1994-10-18 | A/N, Inc. | Graphics processor with enhanced memory control circuitry for use in a video game system or the like |
US5600584A (en) | 1992-09-15 | 1997-02-04 | Schlafly; Roger | Interactive formula compiler and range estimator |
US5488687A (en) | 1992-09-17 | 1996-01-30 | Star Technologies, Inc. | Dual resolution output system for image generators |
JP2725546B2 (ja) | 1992-12-07 | 1998-03-11 | 株式会社日立製作所 | デ−タ処理装置 |
TW241196B (zh) | 1993-01-15 | 1995-02-21 | Du Pont | |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
US5579476A (en) | 1993-10-19 | 1996-11-26 | Industrial Technology Research Institute | Automatic test environment for communications protocol software |
US5487022A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Normalization method for floating point numbers |
US5557298A (en) | 1994-05-26 | 1996-09-17 | Hughes Aircraft Company | Method for specifying a video window's boundary coordinates to partition a video signal and compress its components |
US5577213A (en) | 1994-06-03 | 1996-11-19 | At&T Global Information Solutions Company | Multi-device adapter card for computer |
TW304254B (zh) | 1994-07-08 | 1997-05-01 | Hitachi Ltd | |
US5579473A (en) | 1994-07-18 | 1996-11-26 | Sun Microsystems, Inc. | Interface controller for frame buffer random access memory devices |
US5655132A (en) | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
US5604824A (en) | 1994-09-22 | 1997-02-18 | Houston Advanced Research Center | Method and apparatus for compression and decompression of documents and the like using splines and spline-wavelets |
GB9501832D0 (en) | 1995-01-31 | 1995-03-22 | Videologic Ltd | Texturing and shading of 3-d images |
US5764228A (en) | 1995-03-24 | 1998-06-09 | 3Dlabs Inc., Ltd. | Graphics pre-processing and rendering system |
US5701444A (en) | 1995-03-24 | 1997-12-23 | 3Dlabs Inc. Ltd. | Three-dimensional graphics subsystem with enhanced support for graphical user interface |
US5977977A (en) | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US5864342A (en) | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US5808617A (en) * | 1995-08-04 | 1998-09-15 | Microsoft Corporation | Method and system for depth complexity reduction in a graphics rendering system |
US5850572A (en) | 1996-03-08 | 1998-12-15 | Lsi Logic Corporation | Error-tolerant video display subsystem |
US5844569A (en) | 1996-04-25 | 1998-12-01 | Microsoft Corporation | Display device interface including support for generalized flipping of surfaces |
US5818456A (en) * | 1996-04-30 | 1998-10-06 | Evans & Sutherland Computer Corporation | Computer graphics system with adaptive pixel multisampler |
US5777628A (en) | 1996-05-29 | 1998-07-07 | Hewlett-Packard Company | Method and apparatus for detecting cache collisions in a two dimensional memory |
US6173366B1 (en) | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
US6496537B1 (en) | 1996-12-18 | 2002-12-17 | Thomson Licensing S.A. | Video decoder with interleaved data processing |
US5831640A (en) | 1996-12-20 | 1998-11-03 | Cirrus Logic, Inc. | Enhanced texture map data fetching circuit and method |
US6166743A (en) | 1997-03-19 | 2000-12-26 | Silicon Magic Corporation | Method and system for improved z-test during image rendering |
US5941940A (en) | 1997-06-30 | 1999-08-24 | Lucent Technologies Inc. | Digital signal processor architecture optimized for performing fast Fourier Transforms |
US6002410A (en) | 1997-08-25 | 1999-12-14 | Chromatic Research, Inc. | Reconfigurable texture cache |
US5995121A (en) | 1997-10-16 | 1999-11-30 | Hewlett-Packard Company | Multiple graphics pipeline integration with a windowing system through the use of a high speed interconnect to the frame buffer |
US6745390B1 (en) | 1998-03-12 | 2004-06-01 | United Video Properties, Inc. | Palette management for display of regular graphic objects |
US6259460B1 (en) | 1998-03-26 | 2001-07-10 | Silicon Graphics, Inc. | Method for efficient handling of texture cache misses by recirculation |
US7068272B1 (en) | 2000-05-31 | 2006-06-27 | Nvidia Corporation | System, method and article of manufacture for Z-value and stencil culling prior to rendering in a computer graphics processing pipeline |
WO2000011607A1 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6407740B1 (en) * | 1998-09-30 | 2002-06-18 | Sun Microsystems, Inc. | Addressable output buffer architecture |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US6222550B1 (en) | 1998-12-17 | 2001-04-24 | Neomagic Corp. | Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine |
US6516032B1 (en) * | 1999-03-08 | 2003-02-04 | Compaq Computer Corporation | First-order difference compression for interleaved image data in a high-speed image compositor |
US6333744B1 (en) | 1999-03-22 | 2001-12-25 | Nvidia Corporation | Graphics pipeline including combiner stages |
US6526430B1 (en) | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
US6351806B1 (en) | 1999-10-06 | 2002-02-26 | Cradle Technologies | Risc processor using register codes for expanded instruction set |
US6466222B1 (en) | 1999-10-08 | 2002-10-15 | Silicon Integrated Systems Corp. | Apparatus and method for computing graphics attributes in a graphics display system |
US6604188B1 (en) | 1999-10-20 | 2003-08-05 | Transmeta Corporation | Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction |
US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6411301B1 (en) | 1999-10-28 | 2002-06-25 | Nintendo Co., Ltd. | Graphics system interface |
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 |
US6417851B1 (en) | 1999-12-06 | 2002-07-09 | Nvidia Corporation | Method and apparatus for lighting module in a graphics processor |
US6198488B1 (en) | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US6557022B1 (en) | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
US6624818B1 (en) | 2000-04-21 | 2003-09-23 | Ati International, Srl | Method and apparatus for shared microcode in a multi-thread computation engine |
US6806886B1 (en) | 2000-05-31 | 2004-10-19 | Nvidia Corporation | System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline |
US6670955B1 (en) | 2000-07-19 | 2003-12-30 | Ati International Srl | Method and system for sort independent alpha blending of graphic fragments |
US6636221B1 (en) | 2000-08-02 | 2003-10-21 | Ati International, Srl | Graphics processing system with enhanced bus bandwidth utilization and method therefore |
US6636223B1 (en) | 2000-08-02 | 2003-10-21 | Ati International. Srl | Graphics processing system with logic enhanced memory and method therefore |
US6664958B1 (en) | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Z-texturing |
US6999100B1 (en) | 2000-08-23 | 2006-02-14 | Nintendo Co., Ltd. | Method and apparatus for anti-aliasing in a graphics system |
US7002591B1 (en) | 2000-08-23 | 2006-02-21 | Nintendo Co., Ltd. | Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system |
US7034828B1 (en) | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6636214B1 (en) | 2000-08-23 | 2003-10-21 | Nintendo Co., Ltd. | Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode |
US6937245B1 (en) | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US6778181B1 (en) | 2000-12-07 | 2004-08-17 | Nvidia Corporation | Graphics processing system having a virtual texturing array |
US6411130B1 (en) | 2001-01-23 | 2002-06-25 | Micrel, Inc. | Method and system for reliably providing a lock indication |
US6791559B2 (en) | 2001-02-28 | 2004-09-14 | 3Dlabs Inc., Ltd | Parameter circular buffers |
US6542971B1 (en) | 2001-04-23 | 2003-04-01 | Nvidia Corporation | Memory access system and method employing an auxiliary buffer |
US6839828B2 (en) | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US6912695B2 (en) * | 2001-09-13 | 2005-06-28 | Pixia Corp. | Data storage and retrieval system and method |
US6947053B2 (en) | 2001-09-27 | 2005-09-20 | Intel Corporation | Texture engine state variable synchronizer |
EP1306810A1 (en) | 2001-10-25 | 2003-05-02 | STMicroelectronics Limited | Triangle identification buffer |
US6693643B1 (en) | 2001-12-31 | 2004-02-17 | Apple Computer, Inc. | Method and apparatus for color space conversion |
US7158141B2 (en) | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
US6819331B2 (en) | 2002-03-01 | 2004-11-16 | Broadcom Corporation | Method and apparatus for updating a color look-up table |
US7187383B2 (en) | 2002-03-01 | 2007-03-06 | 3D Labs Inc., Ltd | Yield enhancement of complex chips |
US6731288B2 (en) | 2002-03-01 | 2004-05-04 | 3Dlabs Inc., Ltd. | Graphics engine with isochronous context switching |
US6924808B2 (en) | 2002-03-12 | 2005-08-02 | Sun Microsystems, Inc. | Area pattern processing of pixels |
US7154502B2 (en) | 2002-03-19 | 2006-12-26 | 3D Labs, Inc. Ltd. | 3D graphics with optional memory write before texturing |
DE10218916A1 (de) | 2002-04-27 | 2003-11-06 | Degussa | Verfahren zur Herstellung von Acetalen und Ketalen mit Hilfe mehrstufiger Pervaporation oder Dampfpermeation |
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 |
US7656416B2 (en) | 2002-11-27 | 2010-02-02 | Ati Technologies, Inc. | Apparatus for generating anti-aliased and stippled 3d lines, points and surfaces using multi-dimensional procedural texture coordinates |
US7268779B2 (en) | 2002-12-24 | 2007-09-11 | Intel Corporation | Z-buffering techniques for graphics rendering |
KR100510131B1 (ko) | 2003-01-29 | 2005-08-26 | 삼성전자주식회사 | 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법 |
US6879328B2 (en) | 2003-03-03 | 2005-04-12 | Sun Microsystems, Inc. | Support of multi-layer transparency |
US7145566B2 (en) * | 2003-07-18 | 2006-12-05 | Microsoft Corporation | Systems and methods for updating a frame buffer based on arbitrary graphics calls |
US7450120B1 (en) | 2003-12-19 | 2008-11-11 | Nvidia Corporation | Apparatus, system, and method for Z-culling |
US20050134588A1 (en) | 2003-12-22 | 2005-06-23 | Hybrid Graphics, Ltd. | Method and apparatus for image processing |
US6980222B2 (en) | 2004-01-12 | 2005-12-27 | International Business Machines Corporation | Method and apparatus for implementing dynamically sizable color tables |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US7091982B2 (en) | 2004-05-14 | 2006-08-15 | Nvidia Corporation | Low power programmable processor |
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US7710427B1 (en) | 2004-05-14 | 2010-05-04 | Nvidia Corporation | Arithmetic logic unit and method for processing data in a graphics pipeline |
US20060007234A1 (en) | 2004-05-14 | 2006-01-12 | Hutchins Edward A | Coincident graphics pixel scoreboard tracking system and method |
US7298375B1 (en) | 2004-05-14 | 2007-11-20 | Nvidia Corporation | Arithmetic logic units in series in a graphics pipeline |
US7280112B1 (en) | 2004-05-14 | 2007-10-09 | Nvidia Corporation | Arithmetic logic unit temporary registers |
US7941645B1 (en) | 2004-07-28 | 2011-05-10 | Nvidia Corporation | Isochronous pipelined processor with deterministic control |
TWI283835B (en) | 2005-08-30 | 2007-07-11 | Via Tech Inc | An adaptive method and apparatus for generating shadow using shadow volume |
US7477260B1 (en) | 2006-02-01 | 2009-01-13 | Nvidia Corporation | On-the-fly reordering of multi-cycle data transfers |
US7928990B2 (en) | 2006-09-27 | 2011-04-19 | Qualcomm Incorporated | Graphics processing unit with unified vertex cache and shader register file |
-
2004
- 2004-05-14 US US10/845,662 patent/US8711155B2/en active Active
-
2005
- 2005-05-13 WO PCT/US2005/017031 patent/WO2005112592A2/en not_active Application Discontinuation
- 2005-05-13 EP EP05750143A patent/EP1771824A4/en not_active Withdrawn
- 2005-05-13 CN CN2005800154386A patent/CN101091203B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6118452A (en) * | 1997-08-05 | 2000-09-12 | Hewlett-Packard Company | Fragment visibility pretest system and methodology for improved performance of a graphics system |
US6597363B1 (en) * | 1998-08-20 | 2003-07-22 | Apple Computer, Inc. | Graphics processor with deferred shading |
US6259461B1 (en) * | 1998-10-14 | 2001-07-10 | Hewlett Packard Company | System and method for accelerating the rendering of graphics in a multi-pass rendering environment |
US20040012600A1 (en) * | 2002-03-22 | 2004-01-22 | Deering Michael F. | Scalable high performance 3d graphics |
US20040078504A1 (en) * | 2002-10-22 | 2004-04-22 | Patrick Law | Video bus for a video decoding system |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
Also Published As
Publication number | Publication date |
---|---|
US20080117221A1 (en) | 2008-05-22 |
WO2005112592A3 (en) | 2007-04-26 |
US8711155B2 (en) | 2014-04-29 |
CN101091203A (zh) | 2007-12-19 |
EP1771824A4 (en) | 2011-02-09 |
EP1771824A2 (en) | 2007-04-11 |
WO2005112592A2 (en) | 2005-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101091203B (zh) | 图形处理系统和方法 | |
CN1954338B (zh) | 取消位图形处理系统和方法 | |
EP1665165B1 (en) | Pixel processing system and method | |
US7969446B2 (en) | Method for operating low power programmable processor | |
EP1759380B1 (en) | Low power programmable processor | |
Purcell | Ray tracing on a stream processor | |
US20190197761A1 (en) | Texture processor based ray tracing acceleration method and system | |
US8775777B2 (en) | Techniques for sourcing immediate values from a VLIW | |
US20080204461A1 (en) | Auto Software Configurable Register Address Space For Low Power Programmable Processor | |
Kim et al. | Homogeneous stream processors with embedded special function units for high-utilization programmable shaders | |
US8860722B2 (en) | Early Z scoreboard tracking system and method | |
US7199799B2 (en) | Interleaving of pixels for low power programmable processor | |
CN101441761B (zh) | 图形处理器单元管线中的条件执行位 | |
CN108352051A (zh) | 促进对计算装置处的捆绑状态的高效图形命令处理 | |
US7268786B2 (en) | Reconfigurable pipeline for low power programmable processor | |
US7142214B2 (en) | Data format for low power programmable processor | |
US20050253855A1 (en) | Statistics instrumentation for low power programmable processor | |
US8743142B1 (en) | Unified data fetch graphics processing system and method | |
US8687010B1 (en) | Arbitrary size texture palettes for use in graphics systems | |
US8736628B1 (en) | Single thread graphics processing system and method | |
KR20240026992A (ko) | Gpu 스코핑에서의 성능 오버헤드 최적화 | |
CN107003934A (zh) | 改进共享本地存储器和系统全局存储器之间的存储器访问性能的装置和方法 | |
Garzia et al. | Design of ac library for the implementation of 3d graphics applications on a soc |
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 |
Granted publication date: 20100526 |
|
CF01 | Termination of patent right due to non-payment of annual fee |