CN101714247A - 单通道镶嵌 - Google Patents
单通道镶嵌 Download PDFInfo
- Publication number
- CN101714247A CN101714247A CN200910177458A CN200910177458A CN101714247A CN 101714247 A CN101714247 A CN 101714247A CN 200910177458 A CN200910177458 A CN 200910177458A CN 200910177458 A CN200910177458 A CN 200910177458A CN 101714247 A CN101714247 A CN 101714247A
- Authority
- CN
- China
- Prior art keywords
- group
- processing unit
- tinter
- unit
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 198
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000003860 storage Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 25
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 abstract description 52
- 239000012634 fragment Substances 0.000 description 13
- 238000013316 zoning Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 235000019587 texture Nutrition 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/52—Parallel processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种单通道镶嵌。通过图形处理器以单通道进行镶嵌的系统和方法将图形处理器中的处理资源分成组以进行不同镶嵌操作。顶点数据和镶嵌参数直接从一个处理资源发送到另一处理资源,而不是存储在存储器中。因此,表面面片描述提供给图形处理器,且通过图形处理器以不中断的单通道完成了镶嵌,而不将中间数据存储在存储器中。
Description
技术领域
本发明总地涉及三维表面面片的镶嵌,更特别地涉及通过图形处理流水线以单通道进行镶嵌。
背景技术
镶嵌硬件的编程模块已经发展到出现了新的着色器程序,其被执行以进行三维表面面片的镶嵌。惯常的硬件架构使用两通道的方法来进行镶嵌。在通过图形处理流水线的第一通道期间,顶点着色器和镶嵌控制着色器(或者控制外壳着色器)程序被执行,并且顶点数据和镶嵌参数存储在存储器中。在完成该第一通道后,图形处理流水线被重新配置。在通过图形处理流水线的第二通道期间,从存储器中读取顶点数据和镶嵌参数,且镶嵌评价着色器(或域着色器)和几何着色器程序被执行以完成镶嵌操作。典型地,软件应用程序或设备驱动器启动第一通道和第二通道。
因此,本领域需要一种用于执行镶嵌着色器程序的改进的系统和方法。
发明内容
一种通过图形处理器以单通道进行镶嵌的系统和方法将图形处理器中的处理资源分成组以进行不同镶嵌操作。顶点数据和镶嵌参数直接从一个处理资源发送到另一处理资源,而不是存储在存储器中。因此,表面面片描述提供给图形处理器,且通过图形处理器以不中断的单通道完成镶嵌,而不将中间数据存储在存储器中。
通过图形处理器以单通道进行镶嵌的本发明的方法的各种实施例包括配置图形处理器的第一组处理单元和配置图形处理器内的第二组处理单元。第一组处理单元配置为执行镶嵌控制着色器以处理表面面片,计算镶嵌的细节水平并产生包括多个顶点的图形图元。第二组处理单元配置为执行镶嵌评价着色器以每个处理多个顶点之一。随后通过第一组处理单元和第二组处理单元执行镶嵌控制着色器和镶嵌评价着色器来以单通道对表面面片镶嵌,以产生处理的顶点
本发明的各种实施例包括通过图形处理器以单通道进行镶嵌的系统。图形处理器包括第一组处理单元、第二组处理单元和交叉器互连装置。第一组处理单元配置为执行镶嵌控制着色器以处理表面面片并产生包括多个顶点的图形图元。第二组处理单元配置为执行镶嵌评价着色器以每个处理多个顶点之一。交叉器互连装置与第一组处理单元和第二组处理单元耦合,并配置为将第一组处理单元输出的多个顶点发送给第二组处理单元的输入。
附图说明
为了详细地理解本发明的上述特征,对于以上简要说明的本发明,将参照实施例进行更为具体的描述,其中一些实施例在附图中进行了图示。然而,需要注意的是,附图只是图示本发明的代表性实施例,因此不能认为附图限制了本发明的范围,本发明可以允许其他同样有效的实施例。
图1是图示配置为实现本发明一个或多个方面而配置的计算机系统的框图;
图2是根据本发明一个实施例的用于图1中计算机系统的并行处理子系统的框图;
图3A是根据本发明一个实施例的图2中的并行处理单元之一内的通用处理簇的框图;
图3B是根据本发明一个实施例的图2中的并行处理单元之一中的分区单元的框图;
图4是根据本发明一个实施例的可配置图2中并行处理单元的一个或多个而实现的图形处理流水线的概念图;
图5A是根据本发明一个实施例的以单通道进行镶嵌的方法步骤的流程图;和
图5B是根据本发明一个实施例的配置成以单通道进行镶嵌的通用处理簇的框图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员来说显而易见的是,本发明可以无需一个或多个这些具体细节而得以实施。在其他的例子中,为了避免使本发明不明确,公知的特征未进行描述。
系统概述
图1是图示配置为实现本发明一个或多个方面的计算机系统100的框图。计算机系统100包括中央处理单元(CPU)102和系统存储器104,二者通过存储器桥105经由总线路径进行通信。存储器桥105可以如图1所示集成到CPU 102中。作为替换,存储器桥105可以是惯常设备例如北桥芯片,其通过总线连接到CPU 102。存储器桥105通过通信路径106(例如HyperTransport(超传输)链路)与I/O(输入/输出)桥107相连接。I/O桥107例如可以是南桥芯片,其从一个或多个用户输入设备108(例如键盘、鼠标)接收用户输入,并将该输入通过路径106和存储器桥105转发给CPU 102。并行处理子系统112通过总线或其他通信路径113(例如PCIExpress、加速图形端口或超传输链路)与存储器桥105相耦合;在一个实施例中,并行处理子系统112是将像素提供给显示设备110(例如传统的CRT或基于LCD的显示器)的图形子系统。系统盘114同样连接于I/O桥107。开关116提供了I/O桥107和诸如网络适配器118以及各种插卡120和121的其他部件之间的连接。包括USB或其他端口连接、CD驱动器、DVD驱动器、电影记录设备等的其他部件(图中没有明确示出)也可以与I/O桥107相连接。将图1中的各种部件相互连接的通信路径可以用任何适用的协议来实现,比如PCI(外设部件互连)、PCI Express(PCI-E)、AGP(加速图形端口)、超传输或任何其他总线或点对点通信协议,并且不同设备之间的连接可以使用不同协议,如本领域已知的。
在一个实施例中,并行处理子系统112包括为图形和视频处理优化的电路,包括例如视频输出电路,并构成了图形处理单元(GPU)。在另一实施例中,并行处理子系统112包括为通用处理优化,并保留了底层计算架构的电路,本文将更加详细地描述。在另一实施例中,并行处理子系统112可以集成一个或多个其他系统元件,例如存储器桥105、CPU 102和I/O桥107,以形成片上系统(SoC)。
可以理解的是,这里示出的系统只是示意性的,可以对其进行变化和修改。包括桥的数量和排列的连接拓扑结构可以根据需要修改。例如,在一些实施例中,系统存储器104直接与CPU 102相连接而不是通过桥相连接,其他设备通过存储器桥105和CPU 102与系统存储器104相通信。在其他可选择的拓扑结构中,并行处理系统112与I/O桥107相连接或直接与CPU 102相连接,而不是和存储器桥105相连接。在其他实施例中,CPU102、I/O桥107、并行处理子系统112和存储器桥105的一个或多个被集成到一个或多个芯片上。这里示出的特定部件是任选的;例如,可以支持任何数量的插卡或外设。在一些实施例中,省去了开关116,网络适配器118和插卡120、121直接和I/O桥107相连接。
图2示出了根据本发明一个实施例的并行处理子系统112。如图所示,并行处理子系统112包括一个或多个并行处理单元(PPU)202,每个并行处理单元都和本地并行处理(PP)存储器204相耦合。通常,并行处理子系统包括U个PPU,其中U≥1。(在这里,相似对象的多个例子用表明该对象的附图标记和表明该例子的附加说明数字(需要时)来表示)。PPU 202和并行处理存储器204可以使用例如可编程处理器,专用集成电路(ASIC)或存储器设备的一个或多个集成电路设备,或以任何其他技术上可行的方式来实现。
再次参考图1,在一些实施例中,在并行处理子系统112中的一些或者全部的并行处理单元202是具有渲染流水线的图形处理器,其能被配置成进行与下列情形有关的各种任务:从通过CPU 102和/或系统存储器104提供的图形数据产生像素数据;与本地并行处理存储器204(其能被用作图形存储器,例如包括常规的帧缓冲器)交互以储存并更新像素数据;提供像素数据给显示设备110等。在一些实施例中,并行处理子系统112可包括作为图形处理器工作的一个或多个并行处理单元202和用于通用计算的一个或多个其他并行处理单元202。并行处理单元可以是相同或不同的,且每个并行处理单元202可以有其自己专用的并行处理存储器设备或没有专用的并行处理存储器设备。一个或多个并行处理单元202可以将数据输出到显示设备110或者每个并行处理单元202可以将数据输出到一个或多个显示设备110。
在操作中,CPU 102是计算机系统100的主处理器,其控制和协调其他系统部件的操作。特别是,CPU 102发出控制并行处理单元202操作的命令。在一些实施例中,CPU 102将对于每个并行处理单元202的命令流写入到命令缓冲器(图1和图2中未明确地示出),该命令缓冲器可以位于系统存储器104、并行处理存储器204或是CPU 102和并行处理单元202都可以访问的另一个存储位置中。并行处理单元202从命令缓冲器中读出命令流,并且随后相对于CPU 102的操作异步地执行命令。CPU 102也可以建立数据缓冲器,并行处理单元202可以响应命令缓冲器中的命令读取该数据缓冲器。每个命令和数据缓冲器可以由多个并行处理单元202读取。
现在返回参考图2,每个并行处理单元202包括通过通信路径113和计算机系统100的剩余部分通信的I/O(输入/输出)单元205,通信路径113与存储器桥105相连接(或是在一个可选实施例中直接与CPU 102相连接)。并行处理单元202和计算机系统100的剩余部分的连接也可以变化。在一些实施例中,并行处理子系统112实现为插卡,其能插入到计算机系统100的扩展槽中。在其他实施例中,并行处理单元202能和总线桥一起集成到单一芯片上,总线桥例如可以是存储器桥105或I/O桥107。在另外其他实施例中,并行处理单元202的一些或全部元件可以连同CPU 102一起集成到单一芯片上。
在一个实施例中,通信路径113是PCI-E链路,其中如本领域所已知的,专用道分配给每个PPU 202。也可以使用其他通信路径。I/O单元205产生包(或其他信号)以在通信路径113上传送,并也接收所有来自通信路径113的输入包(或其他信号),并将输入包引导至PPU 202的适当的部件。例如,和处理任务有关的命令可以被引导至主机接口206,而和存储器操作有关的命令(例如从并行处理存储器204中读取或向其写入)可以被引导至存储器交叉器(crossbar)单元210。主机接口206读取每个命令缓冲器,并将由命令缓冲器指定的工作输出到前端212。
每个PPU 202有利地实现高度并行处理架构。如详细示出的,PPU 202(0)包括处理簇阵列230,处理簇阵列230包括数量为C的通用处理簇(GPC)208,其中C≥1。每个GPC 208能同时执行大量(例如数百个或数千个)线程,其中每个线程是程序的实例。在不同应用中,不同的GPC208被分配用以处理不同类型的程序或进行不同类型的计算。例如,在图形应用中,第一组GPC 208可以分配为进行镶嵌操作并产生面片的图元拓扑,而第二组GPC 208可以分配为进行镶嵌着色以评价图元拓扑的面片参数并确定顶点位置和其他每顶点属性。GPC 208的分配基于每个类型的程序或计算产生的工作量是可以变化的。可选择地,所有的GPC 208可以分配为使用时间片方案进行处理任务以在不同处理任务之间转换。
GPC 208通过工作分配单元200接收将要执行的处理任务,该工作分配单元200从前端单元212接收限定了处理任务的命令。处理任务包括例如表面(面片)数据、图元数据、顶点数据和/或像素数据的要处理数据的指针,还有状态参数和限定数据如何处理的命令(例如执行什么程序)。工作分配单元200可以配置成取得对应于任务的指针,工作分配单元200可以从前端212接收指针,或者工作分配单元200可以直接接收数据。在本发明的一些实施例中,索引指明了阵列中数据的位置。前端212保证在命令缓冲器指定的处理启动前,GPC 208配置为有效状态。
例如,当并行处理单元202用于图形处理时,每个面片的处理工作量被分成大约相等大小的任务,以使得能将镶嵌处理分配给多个GPC 208。工作分配单元200可以配置成以能提供任务到多个GPC 208用于处理的频率输出任务。在本发明的一些实施例中,部分GPC 208配置成进行不同类型的处理。例如,第一部分可以配置成进行顶点着色和产生拓扑结构,第二部分可以配置成进行镶嵌和几何着色,以及第三部分可以配置成在屏幕空间上进行像素着色以产生渲染的图像。分配部分GPC 208以进行不同类型的处理的能力有效地适应了由不同类型的处理产生的数据的任何扩展和缩减。GPC 208产生的中间数据可以被缓冲,以当下游GPC 208接收数据的速度落后于上游GPC 208产生数据的速度时,允许中间数据在GPC 208之间以最少的停止传输。
存储器接口214可以被分区成D个存储器分区单元,每个存储器分区单元与并行处理存储器204的一部分直接耦合,其中D≥1。存储器的每部分通常包括一个或多个存储器设备(例如DRAM 220)。本领域的普通技术人员可以理解的是,DRAM 220可以由其他合适的存储设备代替并且通常可以是惯常的设计。因此省略了详细的描述。例如帧缓冲器或纹理贴图的渲染目标可以跨越DRAM 220存储,允许分区单元215将每个渲染目标的部分并行写入,以有效地使用并行处理存储器204的可用带宽。
GPC 208的任何一个可以处理要写入到并行处理存储器204中的任何分区单元215中的数据。交叉器(crossbar)单元210配置为将每个GPC 208的输出发送至任何分区单元214的输入或另一GPC 208以进一步处理。GPC 208通过交叉器单元210与存储器接口214通信以从各种外部存储器设备中读取或写入各种外部存储器设备。在一个实施例中,交叉器单元210与存储器接口214连接以与I/O单元205通信,交叉器单元210也和本地并行处理存储器204连接,因此使得不同GPC 208内的处理内核能与系统存储器104或对并行处理单元202为非本地的其他存储器通信。交叉器单元210可以使用虚拟通道以在GPC 208和分区单元215之间分开通信流。
此外,GPC 208能被编程以执行与广泛多种应用相关的处理任务,所述应用包括但不限于线性和非线性数据转换、视频和/或音频数据的过滤、建模操作(例如,应用物理规律来确定对象的位置、速度和其他属性)、图像渲染操作(例如,镶嵌着色器、顶点着色器、几何着色器和/或像素着色器程序)等等。并行处理单元202可以将数据从系统存储器104和/或本地并行处理存储器204传输到内部(片上)存储器,处理数据,并将结果数据写回到系统存储器104和/或本地并行处理存储器204中,其中这样的数据能够由包括CPU 102或另一并行处理子系统112的其他系统部件来访问。
并行处理单元202可以提供有任意数量的本地并行处理存储器204,包括没有本地存储器,并可以以任意组合使用本地存储器和系统存储器。例如,在统一存储器架构(UMA)的实施例中,并行处理单元202可以是图形处理器。在这样的实施例中,会提供极少或者没有专用图形(并行处理)存储器,并行处理单元202唯一地使用或几乎唯一地使用系统存储器。在UMA实施例中,并行处理单元202可被集成到桥芯片或处理器芯片中,或者是提供为具有高速链路(例如PCI-E)的分立的芯片,该高速链路将并行处理单元202通过桥芯片或其他通信装置与系统存储器相连接。
如上所述,并行处理子系统112中可以包括任意数量的并行处理单元202。例如,多个并行处理单元202可以提供在单个的插卡上,或者多个插卡可以与通信路径113相连,或者一个或多个并行处理单元202可以集成到桥芯片中。多并行处理单元系统中的并行处理单元202可以是彼此相同的,或者可以是彼此不同的。例如,不同的并行处理单元202可以具有不同数量的处理内核、不同数量的本地并行处理存储器等等。当存在有多个并行处理单元202时,那些并行处理单元可以以高于单个并行处理单元202可能达到的吞吐量来并行操作以处理数据。包含有一个或多个并行处理单元202的系统可以以各种配置和形式因素实现,包括台式计算机、笔记本计算机、或是手持个人计算机、服务器、工作站、游戏控制台、嵌入式系统等等。
处理簇阵列概述
图3A是根据本发明一个实施例的在图2的并行处理单元202之一中的GPC 208的框图。每个GPC 208可以配置为并行执行大量的线程,在此术语“线程”是指对一特定组的输入数据执行的特定程序的实例。在一些实施例中,单指令多数据(SIMD)指令发送技术被用于支持并行执行大量线程,而不用提供多个独立的指令单元。在其他实施例中,使用配置为向每个GPC 208中的一组处理引擎发送指令的共同指令单元,单指令多线程(SIMT)技术被用来支持并行执行大量通用同步线程。不像SIMD执行方式中所有处理引擎通常执行相同的指令,SIMT的执行允许不同的线程通过给定的线程程序更加容易地跟随分散的执行路径。本领域的普通技术人员可以理解的是,SIMD处理方式代表了SIMT处理方式的功能性子集。
在图形应用中,GPC 208可以被配置为包括图元引擎以进行屏幕空间图形处理功能,其包括但不限于图元建立、光栅化和Z剔除。如图3A所示,建立单元302接收指令处理图形图元并从缓冲区中读取图形图元参数。缓冲区可以存储在L1高速缓冲存储器315、分区单元215或者并行处理存储器204中。光栅化器/Z剔除单元303接收图形图元参数并对与分配给光栅化器/Z剔除单元303的像素交叉的图元进行光栅化。每个像素只分配给光栅化器/Z剔除单元303之一,这样与没有分配给光栅化器/Z剔除单元303的像素交叉的部分图形图元被丢弃。光栅化器/Z剔除单元303也进行Z剔除以去除不可见的部分图形图元。Z预先光栅操作(Z preROP)单元304进行地址翻译以访问Z数据并基于各种Z处理模式保持Z数据的顺序。
GPC 208的操作通过流水线管理器305有利地控制,流水线管理器305将从工作分配单元200接收的处理任务(通过建立单元302、光栅化器/Z剔除单元303和Z预先光栅操作单元304)分配给流多处理器单元(SMU)310。流水线管理器305也可以配置为通过为SMU 310输出的处理的数据指定目的地来控制工作分配交叉器(crossbar)330。
在一个实施例中,每个GPC 208包括M个SMU 310,其中M≥1,每个SMU 310配置成处理一个或多个线程组。此外,每个SMU 310有利地包括可以流水线化的相同组的功能单元(例如算术逻辑单元等),允许新指令可以在前指令完成之前发送,这已在本领域中公知。可以提供功能单元的任何组合。在一个实施例中,功能单元支持各种运算,包括整数和浮点算术(例如加法和乘法)、比较运算、布尔运算(与、或、异或)、移位和各种代数函数(例如平面插值函数、三角算法函数、指数函数和对数函数等)的计算;并且相同的功能单元硬件可以被平衡为进行不同的运算。
传送到特定GPC 208的系列指令构成了已在本文前面定义的线程,且在SMU 310内在并行处理引擎(未示出)上一定数量同时执行的线程的集合在本文中称为线程组。如本文所使用的,线程组指的是对不同输入数据同时执行相同程序的线程的组,组中的每个线程被分配给SMU 310中的不同处理引擎。线程组可以包括比SMU 310中处理引擎数量少的线程,在这种情况中,在当处理线程组时的周期期间,一些处理引擎将是空闲的。线程组也可以包括比SMU 310中处理引擎数量多的线程,在这种情况中,处理将发生在多个时钟周期上。由于每个SMU 310可以同时支持多达G个线程组,因此多达GxM个线程组可以在任何给定的时间在GPC 208中执行。
另外,在SMU 310中,多个相关的线程组可以在同一时间是活动的(处于执行的不同阶段)。这个线程组的集合在本文中被称为合作线程阵列(CTA)。特定CTA的大小等于mxk,其中k是在线程组中同时执行的线程的数量且通常是SMU 310中并行处理引擎数量的整数倍;m是SMU 310中同时活动的线程组的数量。CTA的大小通常由程序员和CTA可使用的硬件资源例如存储器或寄存器的数量确定。
专有本地地址空间对每个线程可用,且共享的每CTA地址空间用于在CTA中的线程之间传递数据。存储在每线程本地地址空间和每CTA地址空间中的数据存储在L1高速缓冲存储器320中,且可以使用逐出策略来帮助将数据保持在L1高速缓冲存储器320中。每个SMU 310使用在用于进行装载和存储操作的相应的L1高速缓冲存储器320中的空间。每个SMU310也访问所有GPC 208共享并可以用于在线程之间传送数据的分区单元215中的L2高速缓冲存储器。最后,SMU 310也访问片外“全局”存储器,其可以包括例如并行处理存储器204和/或系统存储器104。L2高速缓冲存储器可以用于存储写入到全局存储器中和从全局存储器中读取的数据。可以理解的是,并行处理单元202外部的任何存储器都可以用作全局存储器。
在图形应用中,GPC 208可以配置为使得每个SMU 310和纹理单元315耦合以进行纹理贴图操作,例如确定纹理样本的位置、读取纹理数据和过滤纹理数据。纹理数据通过存储器接口214读取并按照需要从L2高速缓冲存储器、并行处理存储器204或者系统存储器104中取得。纹理单元315可以配置为在内部高速缓冲存储器中存储纹理数据。在一些实施例中,纹理单元315与L1高速缓冲存储器320耦合且纹理数据存储在L1高速缓冲存储器320中。每个SMU 310向工作分配交叉器330输出处理的任务,以向另一GPC 208提供处理的任务以做进一步处理,或通过交叉器单元210将处理的任务存储在L2高速缓冲存储器、并行处理存储器204或者系统存储器104中。PreROP(预先光栅操作器)325配置成从SMU 310中接收数据,引导数据至分区单元215内的光栅操作单元,并进行颜色混合的优化,组织像素颜色数据,并进行地址翻译。
可以理解的是,本文描述的内核架构是示例性的,可以做变化和改变。任何数量的处理引擎,例如SMU 310、纹理单元315或预先光栅操作器325可以包括在GPC 208中。进一步,虽然只示出了一个GPC 208,并行处理单元202可以包括任何数量的GPC 208,这些GPC 208功能上有利地彼此相似,使得执行行为不取决于哪个GPC 208接收了特定处理任务。进一步,每个GPC 208使用单独的和不同的处理引擎、L1高速缓冲存储器320等有利地相对另外的GPC 208独立地工作。
图3B是根据本发明一个实施例的图2中并行处理单元202其中之一中的分区单元215的框图。如图所示,分区单元215包括L2高速缓冲存储器350、帧缓冲器(FB)355和光栅操作器(ROP)360。L2高速缓冲存储器350是配置为进行从交叉器单元210和ROP 360接收的装载和存储操作的读/写高速缓冲存储器。读取缺失和紧急写回请求通过L2高速缓冲存储器350输出到帧缓冲器355处理。脏(dirty)更新也送到帧缓冲器355用于机会处理。帧缓冲器355直接与并行处理存储器204接口,输出读取和写入请求,并接收从并行处理存储器204读取的数据。
在图形应用中,ROP 360是进行光栅操作的处理单元,例如模板、z测试、混合等,并将像素数据输出为处理的图形数据以存储在图形存储器中。在本发明的一些实施例中,ROP 360包括在每个GPC 208中,而不是每个分区单元215中,像素的读和写通过交叉器单元210来传送,而不是像素段。
处理的图形数据可以显示在显示设备110上,或被发送以通过CPU102或通过并行处理子系统112中的处理实体之一来进一步处理。每个分区单元215包括ROP 360以分配光栅操作的处理。在一些实施例中,ROP360可以配置为压缩写到存储器中的z或颜色数据,并将从存储器中读取的z或颜色数据解压缩。
本领域的技术人员可以理解的是,图1、2、3A和3B中描述的架构决不限制本发明的范围,本文中教导的技术可以在任何适合地配置的处理单元上实现,该处理单元包括但不限于一个或多个CPU、一个或多个多内核CPU、一个或多个并行处理单元202、一个或多个GPC 208、一个或多个图形或专用处理单元等,这些都不离开本发明的范围。
图形流水线架构
图4是根据本发明一个实施例的图形处理流水线400的概念图,图2中并行处理单元202的一个或多个可被配置为实现图形处理流水线400。例如,SMU 310其中之一可被配置成执行顶点处理单元415、几何处理单元425和片段处理单元460中的一个或多个单元的功能。数据汇编器410、图元汇编器420、光栅化器455和光栅操作单元465的功能也可以由GPC208和相应的分区单元215中的其他处理引擎来执行。作为选择,图形处理流水线400可为一个或多个功能使用专有处理单元来实现。
数据汇编器410处理单元为高阶表面、图元等收集顶点数据并向顶点处理单元415输出包括顶点属性的顶点数据。顶点处理单元415是配置成执行顶点着色器程序的可编程执行单元,按照该顶点着色器程序的规定对顶点数据进行光照和变换。例如,顶点处理单元415可被编程为将顶点数据从基于物体的坐标表示(物体空间)转换成可选择的基于的坐标系统,例如世界空间或规一化设备坐标(NDC)空间。顶点处理单元415可以通过数据汇编器410读取存储在L1高速缓冲存储器320、并行处理存储器204或系统处理器104中的数据,以在处理顶点数据时使用。
图元汇编器420从顶点处理单元415中接收顶点属性,按需要读取存储的顶点属性,并构造图形图元以用于由几何处理单元425来处理。图形图元包括三角形、线段、点等。几何处理单元425是配置为执行几何着色器程序的可编程执行单元,按照几何着色器程序的规定将从图元汇编器420接收的图形图元进行变换。例如,几何处理单元425可被编程为将图形图元细分为一个或多个新图形图元,并计算用于光栅化该新图形图元的参数,例如平面方程系数。
在一些实施例中,几何处理单元425也可以在几何数据流中增加或删除元素。几何处理单元425将规定新图形图元的参数和顶点输出至视口缩放、剔除和裁剪单元450。几何处理单元425可读取存储在并行处理存储器204或系统存储器104中的数据以用来处理几何数据。视口缩放、剔除和裁剪单元450进行裁剪、剔除和视口缩放,并将处理的图形图元输出到光栅化器455。
光栅化器455扫描转换新的图形图元并输出片段和覆盖数据给片段处理单元460。另外,光栅化器455可以配置为进行z剔除和其他基于z的优化。片段处理单元460是配置成执行片段着色器程序的可编程执行单元,按照片段着色器程序的规定将从光栅化器455接收的片段进行变换。例如,片段处理单元460可被编程以进行例如透视修正、纹理贴图、着色、混合等操作来产生输出到光栅操作单元465的着色的片段。片段处理单元460可以读取存储在并行处理存储器204或系统存储器104中的数据以便在处理片段数据中使用。根据编程的采样率,可以以像素、样本或者其他粒度对片段进行着色。
光栅操作单元465是进行诸如模板、z测试、混合等光栅操作的处理单元,并输出像素数据为处理的图形数据以存储在图形存储器中。处理的图形数据可以存储在图形存储器中,例如并行处理存储器204和/或系统存储器104中,以显示在显示设备110上,或由CPU 102或并行处理子系统112进一步处理。在本发明的一些实施例中,光栅操作单元465配置成压缩写到存储器中的z或颜色数据,并解压缩从存储器读取的z或颜色数据。
单通道镶嵌
为了以单通道进行镶嵌,第一部分的SMU 310配置成执行镶嵌控制着色器程序,第二部分的SMU 310配置成执行镶嵌评价着色器程序。第一部分的SMU 310接收表面面片描述并输出图形图元,例如由十个控制点限定的立体三角形图元,和镶嵌参数,例如细节水平值。图形图元和镶嵌参数通过L1高速缓冲存储器320和工作分配交叉器330从一个SMU 320发送到另一个,而不是存储在并行处理存储器204中。因此,表面面片描述的镶嵌通过GPC 208以不中断的单通道完成,而不在L2高速缓冲存储器350或并行处理存储器204中存储中间数据。另外,应用程序或设备驱动器103提供了表面面片描述,并且在镶嵌处理期间不重新配置部分GPC 208。
第一部分中SMU 310的数量可以等于,大于或小于第二部分中SMU310的数量。重要的是,第一部分和第二部分中SMU 310的数量可以定制为和处理工作量匹配。单一表面面片产生的顶点的数量随着计算的镶嵌细节水平而变化。因此,由于镶嵌控制着色器程序的执行可以导致数据的扩展,第一部分的SMU 310中的单个SMU 310可以为第二部分的SMU 310中的多个SMU 310产生“工作”。
图5A是根据本发明一个实施例的以单通道进行镶嵌的方法步骤的流程图。在步骤510,设备驱动器103配置第一组SMU 310以执行镶嵌控制着色器程序。镶嵌控制着色器程序可以进行控制点基础的变化、镶嵌细节水平参数的计算等,并且对每个表面面片执行一次。当镶嵌控制着色器程序输入一个面片(控制点组)并输出不同面片(不同组的控制点)时,发生面片基础的变化,此处控制点数量在输入面片和输出面片之间变化。在步骤520,设备驱动器103配置第二组SMU 310以执行镶嵌评价程序。镶嵌评价控制着色器程序基于面片图元控制点,每个顶点的参数(u,v)位置,置换贴图等,可以计算每个顶点的最终位置和属性,并且对每个输出顶点执行一次。
在步骤525,设备驱动器103将SMU 310配置为第一组和第二组,并下载由GPC 208执行的镶嵌控制着色器和镶嵌评价着色器程序,以处理表面数据并产生输出顶点。在步骤530,第一组SMU 310中的SMU 310执行镶嵌控制着色器程序以产生图形图元,例如像立体三角行的图形图元的控制点。
在步骤540,由第一组SMU 310输出的图形图元的顶点被分配给第二组SMU 310的输入。在步骤545,第二组SMU 310中的SMU 310执行镶嵌评价着色器程序以产生输出顶点。注意,对不同顶点,步骤530,540和545在不同时间发生。因此,当图形图元由第一组中的SMU 310输出时,第二组中的SMU 310开始执行镶嵌评价程序以产生输出顶点。因为SMU310配置为以单通道处理表面面片,因此设备驱动器103不需要重新配置SMU 310以在镶嵌操作期间进行不同操作。
图5B是根据本发明一个实施例的配置为以单通道进行镶嵌的GPC208的框图。第一组550是配置为执行镶嵌控制着色器程序的第一组的SMU 310。第二组560是配置为执行镶嵌评价着色器程序的第二组的SMU310。第一组550,工作分配交叉器330和第二组560可以配置为进行图5A的步骤530,540和545。工作分配交叉器330配置为将第一组550中的每个SMU310与第二组560中的每个SMU 310相连接。
代表表面面片的表面数据555可以存储在如图5B所示的L1高速缓冲存储器320中,并由第一组550读取。流水线管理器305可以配置为向第一组550中的每个SMU 310提供表面数据555的位置以分配表面面片用于处理。由第一组550输出的代表图形图元的镶嵌数据570可以存储在L1高速缓冲存储器320中。流水线管理器305为工作分配交叉器330提供发送信息,需要该发送信息以为第二组560的SMU 310的输入分配图形图元顶点。在本发明的一些实施例中,例如图5B所示的实施例,镶嵌数据570通过工作分配交叉器330发送。在本发明的其他实施例中,与每个图形图元顶点的位置对应的索引通过工作分配交叉器330发送,以将第一组550输出的镶嵌数据570分配给第二组560的输入。重要的是,镶嵌数据570存储在L1高速缓冲器320或L2高速缓冲器350中,而不是存储在并行处理存储器204中,使得读和写镶嵌数据570需要的时钟周期数量减少。
由于第一组550中的SMU 310写镶嵌数据570,第二组560中的SMU310读取镶嵌数据570,因此镶嵌数据570消耗的存储量减低以适应L1高速缓冲器320或L2高速缓冲器350。相反地,在惯常系统中,当两个不同的通道用来执行程序时,在流水线被配置为执行镶嵌评价着色器程序和读取数据之前,镶嵌控制着色器程序为面片组产生的所有数据都存储在片外存储器,例如并行处理存储器204中。另外,当使用惯常的两通道技术时,组中面片的数量通常很大,以降低在执行镶嵌控制着色器程序和镶嵌评价着色器程序之间切换而发生的流水线重新配置的频率。在第一通道中通过处理较多数量面片产生的镶嵌数据需要比镶嵌数据570更多的存储空间,因此其存储在片外存储器中。
如参考图5A和5B所描述的,对表面面片描述的镶嵌通过GPC 208以不中断的单通道完成,而不在并行处理器204中存储中间数据。另外,应用程序或设备驱动器103提供了表面面片描述,并且在镶嵌处理期间不重新配置部分GPC 208。应用程序程序员可以有利地将并行处理单元202视为自动地配置为以单通道处理表面的单一镶嵌流水线。
本发明的一个实施例可以实现为与计算机系统一起使用的程序产品。该程序产品的程序限定了实施例(包括本文描述的方法)的功能,并可以包含在各种计算机可读存储介质上。示例性的计算机可读存储介质包括但不限于:(i)其上信息被永久存储的不可写存储媒介(例如,计算机中的只读存储器设备,诸如由CD-ROM驱动器可读取的CD-ROM盘、闪存、ROM芯片或任何类型的固态非易失半导体存储器);和(ii)其上存储可改变信息的可写存储媒介(例如,软盘驱动器中的软盘或硬盘驱动器或任何类型的固态随机存取半导体存储器)。
本发明已经参考特定实施例进行了描述。但是,本领域技术人员可以理解的是,可以对本发明做出各种修改和改变,而不脱离如所附权利要求阐明的本发明的较宽精神和范围。因此,上述描述和附图被认为是示例性的而不是限制性的。
Claims (10)
1.一种通过图形处理器以单通道进行镶嵌的方法,所述方法包括:
配置所述图形处理器的第一组处理单元以执行镶嵌控制着色器以处理表面面片,并产生包括多个顶点的图形图元;
配置所述图形处理器内的第二组处理单元以执行镶嵌评价着色器以每个处理所述多个顶点之一;和
通过所述第一组处理单元和所述第二组处理单元执行所述镶嵌控制着色器和所述镶嵌评价着色器来以单通道对所述表面面片镶嵌,以产生处理的顶点。
2.按照权利要求1所述的方法,进一步包括将所述第一组处理单元输出的所述多个顶点分配给所述第二组处理单元的输入的步骤。
3.按照权利要求2所述的方法,其中所述分配步骤包括将对应于存储所述多个顶点的每个的位置的索引从所述第一组处理单元发送到所述第二组处理单元的输入。
4.按照权利要求1所述的方法,其中所述镶嵌控制着色器为所述表面面片的每一个执行一次,以为所述一个表面面片计算细节水平参数。
5.按照权利要求1所述的方法,其中所述镶嵌评价着色器为所述多个顶点的每一个执行一次,以计算所述一个顶点的最终位置和属性。
6.按照权利要求1所述的方法,其中所述处理单元的每一个独立于其他处理单元执行所述镶嵌控制着色器或所述镶嵌评价着色器。
7.一种以单通道进行镶嵌的系统,包括图形处理器,所述图形处理器包括:
第一组处理单元,其配置为执行镶嵌控制着色器以处理表面面片并产生包括多个顶点的图形图元;
第二组处理单元,其配置为执行镶嵌评价着色器以每个处理所述多个顶点之一;和
交叉器互连装置,其与所述第一组处理单元和所述第二组处理单元耦合,并配置为将所述第一组处理单元输出的所述多个顶点提供给所述第二组处理单元的输入。
8.按照权利要求7所述的系统,其中所述镶嵌控制着色器为所述表面面片的每一个执行一次,以为所述一个表面面片计算细节水平参数。
9.按照权利要求7所述的系统,其中所述镶嵌评价着色器为所述多个顶点的每一个执行一次,以计算所述一个顶点的最终位置和属性。
10.按照权利要求7所述的系统,其中所述处理单元配置成执行所述镶嵌控制着色器和所述镶嵌评价着色器来以单通道镶嵌所述表面面片。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
USUS12/240,382 | 2008-09-29 | ||
US12/240,382 | 2008-09-29 | ||
US12/240,382 US20100079454A1 (en) | 2008-09-29 | 2008-09-29 | Single Pass Tessellation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101714247A true CN101714247A (zh) | 2010-05-26 |
CN101714247B CN101714247B (zh) | 2012-06-20 |
Family
ID=41171988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101774583A Active CN101714247B (zh) | 2008-09-29 | 2009-09-29 | 单通道镶嵌 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20100079454A1 (zh) |
JP (1) | JP5303787B2 (zh) |
KR (1) | KR101091374B1 (zh) |
CN (1) | CN101714247B (zh) |
DE (1) | DE102009039231B4 (zh) |
GB (1) | GB2463763B (zh) |
TW (1) | TWI417806B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550126A (zh) * | 2014-10-22 | 2016-05-04 | 三星电子株式会社 | 高速缓冲存储器系统和操作高速缓冲存储器系统的方法 |
CN105957150A (zh) * | 2016-05-16 | 2016-09-21 | 浙江大学 | 一种具有连续性和周期性表面图案的三维形体生成方法 |
CN104933675B (zh) * | 2015-07-02 | 2017-11-07 | 浙江大学 | 一种周期性可控的复杂镶嵌图案生成方法 |
CN107492065A (zh) * | 2016-06-12 | 2017-12-19 | 苹果公司 | 用于经改进图形流水线中的镶嵌的系统和方法 |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0818277D0 (en) * | 2008-10-06 | 2008-11-12 | Advanced Risc Mach Ltd | Graphics processing system |
US8131931B1 (en) * | 2008-10-22 | 2012-03-06 | Nvidia Corporation | Configurable cache occupancy policy |
US8868838B1 (en) | 2008-11-21 | 2014-10-21 | Nvidia Corporation | Multi-class data cache policies |
US20100164954A1 (en) * | 2008-12-31 | 2010-07-01 | Sathe Rahul P | Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation |
US9436969B2 (en) * | 2009-10-05 | 2016-09-06 | Nvidia Corporation | Time slice processing of tessellation and geometry shaders |
WO2012012440A1 (en) * | 2010-07-19 | 2012-01-26 | Advanced Micro Devices, Inc. | Data processing using on-chip memory in multiple processing units |
US9804995B2 (en) * | 2011-01-14 | 2017-10-31 | Qualcomm Incorporated | Computational resource pipelining in general purpose graphics processing unit |
US9047686B2 (en) | 2011-02-10 | 2015-06-02 | Qualcomm Incorporated | Data storage address assignment for graphics processing |
US9626191B2 (en) | 2011-12-22 | 2017-04-18 | Nvidia Corporation | Shaped register file reads |
US9710275B2 (en) | 2012-11-05 | 2017-07-18 | Nvidia Corporation | System and method for allocating memory of differing properties to shared data objects |
US9947084B2 (en) | 2013-03-08 | 2018-04-17 | Nvidia Corporation | Multiresolution consistent rasterization |
KR102104057B1 (ko) | 2013-07-09 | 2020-04-23 | 삼성전자 주식회사 | 점별로 테셀레이션 팩터를 할당하는 방법과 상기 방법을 수행할 수 있는 장치들 |
KR102066533B1 (ko) * | 2013-11-19 | 2020-01-16 | 삼성전자 주식회사 | 도메인 쉐이딩 방법과 이를 수행하는 장치들 |
GB2518019B (en) * | 2013-12-13 | 2015-07-22 | Aveva Solutions Ltd | Image rendering of laser scan data |
US20170178384A1 (en) * | 2015-12-21 | 2017-06-22 | Jayashree Venkatesh | Increasing Thread Payload for 3D Pipeline with Wider SIMD Execution Width |
US10430229B2 (en) * | 2015-12-21 | 2019-10-01 | Intel Corporation | Multiple-patch SIMD dispatch mode for domain shaders |
US10068372B2 (en) | 2015-12-30 | 2018-09-04 | Advanced Micro Devices, Inc. | Method and apparatus for performing high throughput tessellation |
US10643296B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US10643381B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
GB2543866B (en) | 2016-03-07 | 2017-11-01 | Imagination Tech Ltd | Task assembly for SIMD processing |
US10310856B2 (en) | 2016-11-09 | 2019-06-04 | Arm Limited | Disabling thread execution when executing instructions in a data processing system |
US10497084B2 (en) * | 2017-04-24 | 2019-12-03 | Intel Corporation | Efficient sharing and compression expansion of data across processing systems |
US10127626B1 (en) * | 2017-07-21 | 2018-11-13 | Arm Limited | Method and apparatus improving the execution of instructions by execution threads in data processing systems |
US11055896B1 (en) * | 2020-02-25 | 2021-07-06 | Parallels International Gmbh | Hardware-assisted emulation of graphics pipeline |
CN113947515A (zh) * | 2020-07-17 | 2022-01-18 | 芯原微电子(上海)股份有限公司 | 细分曲线数据处理实现方法、系统、介质及矢量图形处理装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982375A (en) * | 1997-06-20 | 1999-11-09 | Sun Microsystems, Inc. | Floating point processor for a three-dimensional graphics accelerator which includes single-pass stereo capability |
JP2000011190A (ja) * | 1998-06-25 | 2000-01-14 | Sony Corp | 画像処理装置 |
US6707457B1 (en) * | 1999-09-30 | 2004-03-16 | Conexant Systems, Inc. | Microprocessor extensions for two-dimensional graphics processing |
US6954204B2 (en) * | 2002-07-18 | 2005-10-11 | Nvidia Corporation | Programmable graphics system and method using flexible, high-precision data formats |
US7379496B2 (en) * | 2002-09-04 | 2008-05-27 | Microsoft Corporation | Multi-resolution video coding and decoding |
US7034826B1 (en) * | 2003-02-28 | 2006-04-25 | Microsoft Corporation | Spiral construction of a geodesic dome |
US7109987B2 (en) * | 2004-03-02 | 2006-09-19 | Ati Technologies Inc. | Method and apparatus for dual pass adaptive tessellation |
US6972769B1 (en) * | 2004-09-02 | 2005-12-06 | Nvidia Corporation | Vertex texture cache returning hits out of order |
US7425952B2 (en) * | 2004-11-23 | 2008-09-16 | Metavr, Inc. | Three-dimensional visualization architecture |
US20060245500A1 (en) * | 2004-12-15 | 2006-11-02 | David Yonovitz | Tunable wavelet target extraction preprocessor system |
JP4255449B2 (ja) * | 2005-03-01 | 2009-04-15 | 株式会社ソニー・コンピュータエンタテインメント | 描画処理装置、テクスチャ処理装置、およびテセレーション方法 |
US8004531B2 (en) * | 2005-10-14 | 2011-08-23 | Via Technologies, Inc. | Multiple graphics processor systems and methods |
US7583268B2 (en) * | 2005-11-10 | 2009-09-01 | Via Technologies, Inc. | Graphics pipeline precise interrupt method and apparatus |
US7634637B1 (en) * | 2005-12-16 | 2009-12-15 | Nvidia Corporation | Execution of parallel groups of threads with per-instruction serialization |
US7568063B2 (en) * | 2006-02-02 | 2009-07-28 | Hewlett-Packard Development Company, L.P. | System and method for a distributed crossbar network using a plurality of crossbars |
TWI385547B (zh) * | 2006-10-27 | 2013-02-11 | Hon Hai Prec Ind Co Ltd | 圖形自動替換系統及方法 |
US8643644B2 (en) * | 2008-03-20 | 2014-02-04 | Qualcomm Incorporated | Multi-stage tessellation for graphics rendering |
US8120608B2 (en) * | 2008-04-04 | 2012-02-21 | Via Technologies, Inc. | Constant buffering for a computational core of a programmable graphics processing unit |
-
2008
- 2008-09-29 US US12/240,382 patent/US20100079454A1/en not_active Abandoned
-
2009
- 2009-08-27 GB GB0914951A patent/GB2463763B/en active Active
- 2009-08-28 DE DE102009039231.9A patent/DE102009039231B4/de active Active
- 2009-09-01 JP JP2009201950A patent/JP5303787B2/ja active Active
- 2009-09-18 TW TW098131568A patent/TWI417806B/zh active
- 2009-09-21 KR KR1020090089198A patent/KR101091374B1/ko active IP Right Grant
- 2009-09-29 CN CN2009101774583A patent/CN101714247B/zh active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US11200733B2 (en) | 2012-04-04 | 2021-12-14 | Qualcomm Incorporated | Patched shading in graphics processing |
US11769294B2 (en) | 2012-04-04 | 2023-09-26 | Qualcomm Incorporated | Patched shading in graphics processing |
CN105550126A (zh) * | 2014-10-22 | 2016-05-04 | 三星电子株式会社 | 高速缓冲存储器系统和操作高速缓冲存储器系统的方法 |
CN105550126B (zh) * | 2014-10-22 | 2020-11-06 | 三星电子株式会社 | 高速缓冲存储器系统和操作高速缓冲存储器系统的方法 |
CN104933675B (zh) * | 2015-07-02 | 2017-11-07 | 浙江大学 | 一种周期性可控的复杂镶嵌图案生成方法 |
CN105957150A (zh) * | 2016-05-16 | 2016-09-21 | 浙江大学 | 一种具有连续性和周期性表面图案的三维形体生成方法 |
CN107492065A (zh) * | 2016-06-12 | 2017-12-19 | 苹果公司 | 用于经改进图形流水线中的镶嵌的系统和方法 |
CN107492065B (zh) * | 2016-06-12 | 2021-02-02 | 苹果公司 | 用于经改进图形流水线中的镶嵌的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2010086528A (ja) | 2010-04-15 |
KR20100036183A (ko) | 2010-04-07 |
GB2463763A (en) | 2010-03-31 |
TWI417806B (zh) | 2013-12-01 |
US20100079454A1 (en) | 2010-04-01 |
TW201019262A (en) | 2010-05-16 |
DE102009039231A1 (de) | 2010-04-29 |
GB0914951D0 (en) | 2009-09-30 |
JP5303787B2 (ja) | 2013-10-02 |
KR101091374B1 (ko) | 2011-12-07 |
GB2463763B (en) | 2011-03-02 |
DE102009039231B4 (de) | 2020-06-25 |
CN101714247B (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101714247B (zh) | 单通道镶嵌 | |
CN101739357B (zh) | 多类数据高速缓存策略 | |
CN101751285B (zh) | 用于不同种类处理单元的集中式设备虚拟化层 | |
CN101751344B (zh) | 压缩状态位高速缓存和后备存储件 | |
CN101901198A (zh) | 通过标记cpu流量为特殊来避免死锁 | |
CN102696023B (zh) | 用于访问并行存储器空间的统一寻址和指令 | |
US7516301B1 (en) | Multiprocessor computing systems with heterogeneous processors | |
CN101371247B (zh) | 用于图形处理器的并行阵列结构 | |
CN103793893B (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
US8120607B1 (en) | Boundary transition region stitching for tessellation | |
US11869140B2 (en) | Combined world-space pipeline shader stages | |
US7477260B1 (en) | On-the-fly reordering of multi-cycle data transfers | |
CN104050706A (zh) | 用于低功率图形渲染的像素着色器旁路 | |
CN103294536B (zh) | 控制用于处理任务的工作分布 | |
US9922457B2 (en) | Computing tessellation coordinates using dedicated hardware | |
CN103460188A (zh) | 用于基于活跃分析的再具体化以减少寄存器不足并提高并行度的技术 | |
CN103810743A (zh) | 在上游着色器中设置下游渲染状态 | |
CN107038742A (zh) | 屏幕空间管线中的多通道渲染 | |
US10796483B2 (en) | Identifying primitives in input index stream | |
US8941669B1 (en) | Split push buffer rendering for scalability | |
CN110333946A (zh) | 一种基于人工智能cpu数据处理系统及方法 | |
CN115702414A (zh) | 用于机器学习加速器的堆叠管芯 | |
CN101178806A (zh) | 计算机中管理纹理数据的系统与方法 | |
US8310482B1 (en) | Distributed calculation of plane equations | |
US7724254B1 (en) | ISO-surface tesselation of a volumetric description |
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 |