CN101114375A - 加速的起始瓦片搜索 - Google Patents

加速的起始瓦片搜索 Download PDF

Info

Publication number
CN101114375A
CN101114375A CNA200710136338XA CN200710136338A CN101114375A CN 101114375 A CN101114375 A CN 101114375A CN A200710136338X A CNA200710136338X A CN A200710136338XA CN 200710136338 A CN200710136338 A CN 200710136338A CN 101114375 A CN101114375 A CN 101114375A
Authority
CN
China
Prior art keywords
unit
window
graph primitive
binary search
rasterisation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200710136338XA
Other languages
English (en)
Other versions
CN101114375B (zh
Inventor
富兰克林·C·克罗
杰弗里·R·休厄尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN101114375A publication Critical patent/CN101114375A/zh
Application granted granted Critical
Publication of CN101114375B publication Critical patent/CN101114375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Abstract

本发明提供一种在图形管线的光栅级中用于加速的起始瓦片光栅化的方法。所述方法包括界定用于裁剪产生的图像的窗口和接收图形图元以在图形处理器的光栅级中进行光栅化。执行与所述窗口相关的二分搜索以确定至少具有所述图形图元的部分覆盖范围的起始瓦片,其中所述起始瓦片包含多个像素。基于所述起始瓦片,所述光栅级通过产生多个至少具有所述图形图元的部分覆盖范围的邻近瓦片来光栅化所述图形图元。

Description

加速的起始瓦片搜索
技术领域
本发明大体上涉及硬件加速图形计算机系统。
背景技术
计算机性能的最近进展已使得图形系统能够通过使用个人计算机、家用视频游戏计算机、手持装置等来提供更逼真的图形图像。在此类图形系统中,执行多个程序以向系统屏幕“渲染”或绘制图形图元。“图形图元”是图形图片的基本组成部分,例如顶点、多边形等。经渲染的图像由这些图形图元的组合形成。可利用许多程序来执行3-D图形渲染。
已研发出多种专用图形处理单元(例如,GPU等)以优化执行图形渲染程序所需的计算。GPU经配置以进行高速操作且通常并入有一个或一个以上渲染管线。每一管线包括多个基于硬件的功能单元,所述功能单元经优化以高速执行图形指令/数据,其中将指令/数据馈入到管线的前端中,且在管线的后端处出现计算结果。GPU的基于硬件的功能单元、高速缓冲存储器、固件等经优化以对低级图形图元(例如,包含“点”、“线”、“三角形”等)进行操作且产生经实时渲染的3-D图像。
使用光栅显示技术来产生经实时渲染的3-D图像。光栅显示技术广泛用于计算机图形系统中,且一般指代组成图像的多个像素的栅格受图形图元影响的机制。对于每个图元,典型的光栅化系统一般逐像素步进,且按照图元的贡献来确定是否要“渲染”给定像素或将其写入到帧缓冲器或像素映射中。这又确定如何将数据写入代表每个像素的显示缓冲器。
已研发出多种遍历算法,以通过覆盖图元内的所有像素的方式来逐像素地移动。所述遍历算法需要考虑其中待渲染组成图像的图元的裁剪窗口。
一般来说,裁剪窗口包含用于代表图像的可见区域的数据结构(例如,三角形数据结构、窗口裁剪平面等)。GPU包括特殊硬件和/或软件来保持裁剪信息以便恰当地裁剪图形图元。察看、透视和裁剪级对于所接收的每一多边形的顶点和边缘需要较大数目的算法操作。
然而,在对仅部分驻留在裁剪窗口内的图元进行光栅化时存在问题。典型的现有技术解决方法涉及以单向方式光栅化图元并产生所得的覆盖的像素。此类传统的单向解决方法涉及在恒定方向上逐行产生像素。传统的解决方法在裁剪窗口的一个边缘处开始,且横穿所述裁剪窗口直到遇上所述图元为止,并接着步进越过所述图元直到光栅化线完成为止。这需要序列移动越过图像以找到图元边缘。当图元边缘在裁剪窗口外部时,需要传统的解决方法从起始边缘处开始步进且横穿图元,直到其步进到图元的可见区(例如,裁剪窗口内的部分)中为止。
因此,消耗大量工作和相应较大数目的时钟周期来光栅化图像内最终将不被渲染的像素。这对整个3-D渲染过程造成非常大的负面性能影响。所述负面性能影响对于大部分区域位于裁剪窗口外部的那些图元(例如,在遮蔽应用中经常遇到的狭长三角形)甚至更为显著。
因此,需要一种光栅化过程,其可确保有效利用所需的图形渲染硬件和由所述渲染硬件消耗的时钟周期来产生与正被建立的图像相关的像素。
发明内容
本发明实施例提供一种用于光栅化过程的方法和系统,其确保有效利用所需的图形渲染硬件和由所述渲染硬件消耗的时钟周期来产生与正被建立的窗口裁剪图像相关的像素。
在一个实施例中,本发明实施为一种用于在图形管线(例如,GPU)的光栅级中实现加速的起始瓦片光栅化的方法。所述方法包括界定用于裁剪产生图像的窗口和接收图形图元以在图形处理器的光栅级中进行光栅化。执行与所述窗口相关的二分搜索以确定至少具有图形图元的部分覆盖范围的起始瓦片。基于所述起始瓦片,光栅级通过产生多个至少具有图形图元的部分覆盖范围的邻近瓦片来光栅化所述图形图元。起始瓦片和邻近瓦片每一者包含多个像素(例如,16×16个像素、32×32个像素等)。
所述二分搜索包含用于通过在每一步骤处沿着所述窗口的与图形图元(例如,三角形、四边形、线等)相交的边缘排除可能起始瓦片范围的一半来沿着所述边缘寻找特定瓦片(例如,起始瓦片)的算法。举例来说,二分搜索找到所述范围的中部,进行比较以确定所需起始瓦片在所述中部之前还是之后,且接着以相同方式搜索剩余半部,以此类推,直到定位起始瓦片为止。
以此方式,本发明实施例在较困难情况(例如,大部分图形图元驻留在裁剪窗口外部的那些情况)下将用于定位驻留在裁剪窗口内部的图形图元的边缘的搜索时间加速100倍或更多倍。经加速的搜索时间可因此使得二分搜索过程能够相对于后续光栅化操作并行或以重叠方式执行,从而大大增加实时3-D图形渲染的效率。
附图说明
在附图图式中以实例方式而并非以限制方式来说明本发明,其中相同参考标号指代类似元件。
图1展示根据本发明一个实施例的计算机系统。
图2展示根据本发明一个实施例描绘图形图元和裁剪窗口202的图。
图3展示说明由本发明实施例执行的用于光栅化三角形201的二分搜索的图。
图4展示根据本发明一个实施例说明顶点等式的操作的图,所述顶点等式由GPU评估以确定特定瓦片或特定像素是在三角形的左侧、右侧还是内部。
图5展示根据本发明一个实施例说明通过二分搜索定位起始瓦片的方式和在三角形外部迭代连续瓦片的方式的图。
图6展示根据本发明一个实施例描绘瓦片的尺度的图。
图7展示根据本发明一个实施例的GPU的内部组件的图。
具体实施方式
现将详细参看本发明的优选实施例,附图中说明了所述优选实施例的实例。尽管将结合优选实施例来描述本发明,但将了解不希望其将本发明限于这些实施例。相反,希望本发明涵盖可包含在如所附权利要求书所界定的本发明精神和范围内的替代物、修改和等效物。此外,在本发明实施例的以下详细描述中,陈述多个特定细节以提供对本发明的彻底理解。然而,所属领域的技术人员将认识到可在不存在这些特定细节的情况下实践本发明。在其它例子中,未详细描述众所周知的方法、程序、组件和电路以免不必要地混淆本发明实施例的方面。
符号和术语
从计算机存储器内对数据位所进行的操作的程序、步骤、逻辑块、处理和其他符号表示的角度来展现以下详细描述的某些部分。这些描述和表示是数据处理领域的技术人员用以将其作品实质最有效地传达给所属领域的其他技术人员的方式。程序、计算机执行步骤、逻辑块、处理等在此处且一般被认为是导致希望结果的自相容步骤或指令序列。所述步骤是需要对物理量进行物理操作的步骤。通常(尽管不必要),这些量采用能在计算机系统中存储、传递、组合、比较和以其他方式操纵的电信号或磁信号的形式。已多次证实将这些信号称为位、值、元素、符号、字符、项、数字或类似形式是便利的,主要是因为常见用法的缘故。
然而,应记住所有这些和类似术语与适当物理量相关联且仅仅是应用于这些量的方便标记。除非从以下论述中容易看出另有特别规定,否则理解为在本发明中,使用例如“处理”或“存取”或“执行”或“存储”或“渲染”等术语的论述始终指代计算机系统(例如图1的计算机系统100)或类似电子计算装置的行为和处理,其操纵表示为计算机系统的寄存器和存储器内的物理(电子)量的数据并将其变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物理量的其它数据。
计算机系统平台
图1展示根据本发明的一个实施例的计算机系统100。计算机系统100描绘根据本发明实施例的基本计算机系统的组件,其为特定的基于硬件和基于软件的功能性提供执行平台。一般来说,计算机系统100包含至少一个CPU101、系统存储器115和至少一个图形处理器单元(GPU)110。所述CPU101可经由桥接器组件/存储器控制器(未图示)耦合到系统存储器115,或可经由在CPU101内部的存储器控制器(未图示)直接耦合到系统存储器115。GPU110耦合到显示器112。一个或一个以上额外GPU可视情况耦合到系统100,以进一步增加其计算能力。GPU110耦合到CPU101和系统存储器115。系统100可实施为(例如)桌上型计算机系统或服务器计算机系统,其具有耦合到专用图形渲染GPU110的强大的通用CPU101。在此类实施例中,可包括添加外围总线、专门图形存储器、IO装置等的组件。类似地,系统100可实施为手持装置(例如,手机等)或置顶视频游戏控制台装置(例如可从Microsoft Corporation of Redmond,Washington得到的Xbox或可从Sony Computer Entertainment Corporation of Tokyo,Japan得到的PlayStation3)。
应理解,GPU110可实施为离散组件、经设计以经由连接器(例如,AGP插槽、PCI-Express插槽等)耦合到计算机系统100的离散图形卡、离散集成电路晶粒(例如,直接安装在母板上)或作为包括在计算机系统芯片组组件(未图示)的集成电路晶粒内的集成GPU。视情况,可针对GPU110包括本地图形存储器114以用于高带宽图形数据存储。
本发明实施例
图2展示根据本发明一个实施例描绘图形图元201和裁剪窗口202的图200。如图2描绘,图形图元201与裁剪窗口202相交,但大部分位于裁剪窗口202外部。
图形图元201(在此情况下为三角形型图形图元)和裁剪窗口202说明GPU图形管线的光栅化中的典型问题情况。当光栅化图形图元(例如,三角形、四边形、线等)时,GPU(例如,GPU110)的光栅化硬件需要决定在给定三角形(例如,三角形201)内的何处开始光栅化过程。GPU需要为其光栅化过程确定起始点。
一般来说,所述光栅化过程涉及以访问由三角形201影响、接触且/或覆盖的组成所述图像的2D像素栅格(例如,以及组成裁剪窗口202的像素栅格)的组成像素的方式遍历三角形201。GPU的光栅化功能性可使用多个不同遍历型式来系统地确定哪些像素由三角形201覆盖。
所述不同的遍历型式一般共同具有以下常见特征:以大体上循序的方式评估由三角形201覆盖的连续像素。举例来说,在一个实施例中,以来回、从左到右或从右到左、线性扫描方式(例如,每次一行、每次一列等)来检查像素。或者,在一个实施例中,可使用右行左行交互的遍历型式,其中术语“右行左行交互”指的是一种遍历型式,其通过随着每一遍沿着一个轴线向前移动时沿着正交轴线来回扫描来访问2D区域上的所有像素,就像农夫犁地或铲地那样。
不管GPU110所实施的遍历型式的类型如何,均需要确定用于光栅化三角形201的像素的起始点。在三角形(例如,或者其它类型的图形图元)完全驻留在裁剪窗口202内的情况下,挑选起始点是容易的。起始点确定将涉及(例如)使用三角形顶点中的一者作为起始点。在顶点不位于所裁剪的边界框中且边界框的通常将用于起始点的隅角处于三角形外部时会产生困难。
在一个实施例中,GPU110在其遍历型式中利用瓦片或像素群组。举例来说,遍历线将涉及GPU110沿着所述遍历线步进越过连续瓦片(例如,8×8个像素、16×16个像素、32×32个像素等)。与三角形相交的第一瓦片成为起始点。或者,GPU110可利用包含多个样品点的瓦片,其中每个像素包括4、8、16等个样品点。
本发明实施例特别适用于处理更有问题的情况,所述情况涉及部分地由裁剪窗口202裁剪的经裁剪的图形图元(例如,三角形201)。举例来说,在三角形大部分位于裁剪窗口202外部的情况下,即使所述三角形的边界框覆盖大得多的屏幕区域,也只有小部分所述三角形实际上可处于屏幕内部。这在图2中说明为三角形201的小部分203,其可在裁剪窗口202的顶部看见,而三角形201的边界框205覆盖裁剪窗口202顶部的大部分。
本发明实施例能够快速地为三角形201的位于裁剪窗口202内的部分203的光栅化找到起始瓦片。在现有技术中,光栅化过程将必须开始步进越过三角形的边界框的远左边缘以到达裁剪窗口202的左边缘,且接着步进越过窗口202的顶部并逐瓦片越过屏幕顶部直到遇到三角形201为止。这导致浪费过量时间,因为GPU光栅化器在遇到三角形之前步进越过屏幕宽度的一半以上。现有技术解决方法需要(通常)通过走过屏幕顶部来核对每个瓦片,直到遇到实际上包括三角形的部分的瓦片为止。相反,本发明实施例执行一种加速的起始瓦片搜索算法,其快速地识别起始瓦片而不会浪费GPU周期或光栅化硬件。
仍参看图2,在一个实施例中,在图形管线(例如,GPU110)的光栅级内实施加速的起始瓦片光栅化过程。举例来说,在涉及三角形201的情况下,在界定用于裁剪所产生图像的裁剪窗口202时,且在接收图形图元201来在光栅级中进行光栅化时,实施二分搜索以快速地识别起始瓦片。所述二分搜索与裁剪窗口相关,因为其搜索组成裁剪窗口(例如,1024×768、1600×1200、1920×1200等)的瓦片来确定起始瓦片。如上所述,起始瓦片至少具有三角形201的部分覆盖范围。基于起始瓦片,光栅级通过沿着遍历线产生多个瓦片来光栅化三角形201。这些瓦片中的每一者至少部分覆盖或接触三角形201。
图3展示说明由本发明实施例执行的用于光栅化三角形201的二分搜索的图。所述二分搜索包含多步骤算法,其用于通过在每一步骤处沿着裁剪窗口202的与三角形201相交的边缘排除可能起始瓦片范围的一半来沿着所述边缘寻找特定瓦片(例如,起始瓦片)。举例来说,在图3实施例中,二分搜索找到包含遍历线301的瓦片范围中部,进行比较以确定所需起始瓦片在所述中部之前还是之后,且接着以相同方式搜索剩余半部,以此类推,直到定位起始瓦片为止。在每一步骤中,当二分搜索算法瞄准所需起始瓦片时,剩余范围被一分为二。这在图3中说明为二分搜索检查第一中部(如中线305所示),确定所需起始瓦片位于右侧,检查第二中部(如线306所示),确定起始瓦片进一步位于右侧,等等。
以此方式,如由本发明实施例实施的沿着遍历线的二分搜索在较困难情况(例如,大部分图形图元驻留在裁剪窗口外部的那些情况)下将用于定位驻留在裁剪窗口内部的图形图元(例如,三角形201的部分203)的边缘的搜索时间加速100倍或更多倍。经加速的搜索时间可因此使得二分搜索过程能够相对于后续光栅化操作以并行或以重叠方式执行,从而大大增加实时3-D图形渲染的效率。另外,经加速的搜索时间确保有效利用所需的图形渲染硬件和所述渲染硬件所消耗的时钟周期来产生与窗口裁剪图像相关的像素,而不是浪费在步进越过空像素上。
应注意,如由本发明实施例实施的二分搜索为对数性质的,且以logn时间执行。具体地说,需要1+log2N个迭代来返回所需起始瓦片,其中N对应于沿着遍历线的瓦片总数(例如,在沿着1920×1200窗口或图像的顶部边缘存在60个32×32瓦片的情况下)。所述二分搜索比现有技术线性搜索快得多,其中在所需起始瓦片随机分布的那些情况下,平均将需要N/2次比较,且其中在起始瓦片是最后测试的瓦片的最坏情况下,需要N次比较。
图4展示根据本发明一个实施例说明顶点等式的操作的图,所述顶点等式由GPU110评估以确定特定瓦片或特定像素是在三角形201的左侧、右侧还是内部。在一个实施例中,使用基于三角形201顶点的顶点等式来计算三角形201的边缘的位置。这些顶点等式指示沿着遍历线的给定像素是在三角形201的给定边缘的左侧、右侧还是内部。因此,举例来说,边缘等式将指示在所述遍历线的401部分上的像素(例如,或者瓦片、样品等)将在三角形201的左侧,在遍历线的402部分上的像素将在三角形201内部,且在遍历线的403部分上的像素将在三角形201的右侧。
应注意,尽管在沿着窗口202的顶部边缘执行二分搜索的情形下描述本实施例,但本发明实施例可沿着窗口202的多个边缘来执行二分搜索。这将使得二分搜索能够在图形图元延伸出窗口202的左边缘、右边缘或底部的那些情况下有效进行。举例来说,在一个实施例中,可在第一边缘(例如,窗口202的顶部或底部边缘)上执行二分搜索,且随后可在第二边缘(例如,窗口202的左边缘或右边缘)上执行二分搜索以最有效地定位所需起始瓦片。
图5展示根据本发明一个实施例说明通过二分搜索定位起始瓦片501的方式和针对三角形201迭代连续的邻近瓦片的方式的图。如上所述,使用二分搜索来为三角形201的位于裁剪窗口202内部的部分定位起始瓦片501。随后,基于所述起始瓦片501,通过沿着遍历线产生多个瓦片来光栅化三角形201的剩余部分,如图所示。后续产生的瓦片中的每一者至少具有三角形201的部分覆盖范围。应注意,图5实施例说明右行左行交互遍历型式。
因此,如上所述,经加速的搜索时间可使得二分搜索过程能够相对于后续光栅化操作以并行或以重叠方式执行。举例来说,一旦定位了起始瓦片501,二分搜索算法便可在光栅化三角形201的剩余部分时继续为后续图形图元定位后续起始瓦片。针对后续起始瓦片的二分搜索可与切割出三角形201的剩余瓦片同时发生。此功能性重叠防止在完成一个光栅化功能(例如,起始瓦片搜索)且同时正在进行后续光栅化功能(例如,从三角形中光栅化多个瓦片)时图形硬件处于闲置状态。
图6展示根据本发明一个实施例描绘瓦片601的尺度的图。如图6描绘,瓦片601包括隅角602-605。依据给定应用的特定要求而定,可在二分搜索期间在所述隅角602-605中的任一者处评估瓦片602。在一个实施例中,沿着将在二分搜索过程中首先与图形图元相交的最可能边缘(例如边缘607)来评估瓦片。举例来说,根据上文所述的三角形边缘等式来评估瓦片607的边缘,以确定下一个二分搜索中部是在左侧还是右侧,在上方还是下方,如上文所述。
应注意,本发明实施例除了像素瓦片之外还可对个别像素乃至像素内的样品阵列进行操作,且可根据特定应用的需要来定制瓦片尺寸(例如,可由图形驱动器等编程)。另外,应注意,可根据特定应用的需要来编程待搜索的给定裁剪窗口的边缘数目、待搜索的第一和第二裁剪窗口边缘和待评估的瓦片的边缘或隅角(例如,可由图形驱动器等编程)。
图7展示根据本发明一个实施例的GPU 110的内部组件的图700。如图7所示,GPU110包括设置引擎701和光栅化器单元702。在本实施例中,在光栅化器单元702的硬件和软件内实施本发明的功能性。一般来说,光栅化器单元702通过将从设置引擎701接收到的基于顶点的描述转换为基于边缘描述的描述来起作用。光栅化器单元702随后将这些边缘描述转换为包含实际像素描述的填充区域(例如,像素区域、像素子样品等)。像素描述随后被传递到GPU110内的其它单元,以供进一步处理和渲染。
在一个实施例中,光栅化器单元702包括细光栅组件703和粗光栅组件704。在粗光栅组件704内实施步进器单元705,以实施经加速的起始瓦片搜索功能性(如上所述)。一旦识别到起始瓦片,粗光栅单元703便快速搜索瓦片栅格来识别所关注的瓦片(例如,由图元覆盖的瓦片)。一旦识别到所关注的瓦片,细光栅组件703便单独识别由图元覆盖的像素。因此,在此类实施例中,步进器705识别所需的起始瓦片,粗光栅组件704通过使用瓦片来快速搜索像素栅格,且细光栅组件703使用由粗光栅组件704产生的信息,并通过单独识别由图元覆盖的像素来实施细粒度光栅化。
仍参看图7,GPU110进一步包括高速缓冲存储器721,其通过针对最频繁使用的图形渲染数据实施高速度低等待时间的存储来起作用。此类数据通常包含纹理信息、顶点信息、颜色等。高速缓冲存储器721展示为耦合到本地图形存储器112。高速缓冲存储器721利用一个或一个以上高速缓冲维持机制来维持与本地图形存储器112的一致性。箭头740展示GPU110与系统存储器(例如,图1所示的存储器115)之间的通信路径。
出于说明和描述目的展现了对本发明特定实施例的以上描述。不希望它们为详尽的或将本发明限于所揭示的精确形式,且能够根据以上教示作出多种修改和改变。选择并描述所述实施例是为了最好地解释本发明原理和其实际应用,因而使得所属领域的技术人员能够最好地利用本发明和具有适合于所希望的特定使用的各种修改的各种实施例。希望本发明范围由所附权利要求书和其等效物界定。

Claims (20)

1.一种在图形管线的光栅级中用于加速的起始瓦片光栅化的方法,其包含:
界定用于裁剪所产生图像的窗口;
接收图形图元以在图形处理器的光栅级中进行光栅化;
执行与所述窗口相关的二分搜索,以确定至少具有所述图形图元的部分覆盖范围的起始瓦片,所述起始瓦片包含多个像素;以及
基于所述起始瓦片,通过产生多个至少具有所述图形图元的部分覆盖范围的邻近瓦片来光栅化所述图形图元。
2.根据权利要求1所述的方法,其中所述图形图元的一部分驻留在所述窗口的外部。
3.根据权利要求1所述的方法,其中对所述窗口的第一边缘执行所述二分搜索,且随后对所述窗口的第二边缘执行所述二分搜索。
4.根据权利要求1所述的方法,其中所述窗口的所述第一边缘是所述窗口的顶部。
5.根据权利要求4所述的方法,其中所述窗口的所述第二边缘是所述窗口的左边缘或所述窗口的右边缘。
6.根据权利要求1所述的方法,其中使用所述光栅级内的步进器单元来实施所述二分搜索。
7.根据权利要求6所述的方法,其中所述步进器单元经配置以与所述图形图元的所述光栅化并行地实施所述二分搜索。
8.根据权利要求7所述的方法,其中并行地实施所述二分搜索以与所述图形图元的先前部分的同时光栅化重叠。
9.根据权利要求1所述的方法,其中在粗光栅单元中实施所述二分搜索,且在细光栅单元中实施第二级别光栅化,以从至少部分覆盖所述图形图元的多个瓦片中确定所覆盖的像素。
10.一种GPU(图形处理器单元),其包含:
设置单元,其用于产生包含图形图元的多边形描述;以及
光栅单元,其耦合到所述设置单元以光栅化所述图形图元,其中所述光栅单元执行与裁剪窗口相关的二分搜索以确定至少具有所述图形图元的部分覆盖范围的起始瓦片,所述起始瓦片包含多个像素,且其中所述光栅单元基于所述起始瓦片通过产生多个至少具有所述图形图元的部分覆盖范围的邻近瓦片来光栅化所述图形图元。
11.根据权利要求10所述的GPU,其中所述图形图元的一部分驻留在所述窗口的外部。
12.根据权利要求10所述的GPU,其中对所述窗口的第一边缘执行所述二分搜索,且随后对所述窗口的第二边缘执行所述二分搜索。
13.根据权利要求10所述的GPU,其进一步包含:
步进器单元,其位于所述光栅级内,用以实施所述二分搜索。
14.根据权利要求13所述的GPU,其中所述步进器单元并行地执行所述二分搜索以与所述图形图元的先前部分的同时光栅化重叠。
15.根据权利要求14所述的GPU,其进一步包含:
粗光栅单元;以及
细光栅单元,其中所述步进器单元在所述粗光栅单元内实施,且所述细光栅单元执行第二级别光栅化,以从至少部分覆盖所述图形图元的多个瓦片中确定所覆盖的像素。
16.一种计算机系统,其包含:
系统存储器;
中央处理器单元,其耦合到所述系统存储器;以及
图形处理器单元,其以通信方式耦合到所述中央处理器单元;
设置单元,其用于产生包含图形图元的多边形描述;以及
光栅单元,其耦合到所述设置单元以光栅化所述图形图元,其中所述光栅单元执行与裁剪窗口相关的二分搜索以确定至少具有所述图形图元的部分覆盖范围的起始瓦片,所述起始瓦片包含多个像素,且其中所述光栅单元基于所述起始瓦片通过产生多个至少具有所述图形图元的部分覆盖范围的邻近瓦片来光栅化所述图形图元。
17.根据权利要求16所述的计算机系统,其中所述图形图元的一部分驻留在所述窗口的外部。
18.根据权利要求17所述的计算机系统,其中对所述窗口的第一边缘执行所述二分搜索,且随后对所述窗口的第二边缘执行所述二分搜索。
19.根据权利要求18所述的计算机系统,其进一步包含:
步进器单元,其位于所述光栅级内,用以实施所述二分搜索,且其中并行地执行所述二分搜索以与所述图形图元的先前部分的同时光栅化重叠。
20.根据权利要求19所述的计算机系统,其进一步包含:
粗光栅单元;以及
细光栅单元,其中所述步进器单元在所述粗光栅单元内实施,且所述细光栅单元执行第二级别光栅化,以从至少部分覆盖所述图形图元的多个瓦片中确定所覆盖的像素。
CN200710136338XA 2006-07-26 2007-07-24 加速的起始瓦片搜索 Active CN101114375B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/494,407 US7843468B2 (en) 2006-07-26 2006-07-26 Accellerated start tile search
US11/494,407 2006-07-26

Publications (2)

Publication Number Publication Date
CN101114375A true CN101114375A (zh) 2008-01-30
CN101114375B CN101114375B (zh) 2012-09-26

Family

ID=38985726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710136338XA Active CN101114375B (zh) 2006-07-26 2007-07-24 加速的起始瓦片搜索

Country Status (5)

Country Link
US (1) US7843468B2 (zh)
JP (1) JP4598031B2 (zh)
KR (1) KR100893637B1 (zh)
CN (1) CN101114375B (zh)
TW (1) TWI346911B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739703B (zh) * 2008-11-10 2012-05-30 富士通株式会社 用于对三角形进行栅格化的方法和系统
CN102819820A (zh) * 2012-08-14 2012-12-12 长沙景嘉微电子股份有限公司 基于分块渲染的gpu中多管线渲染的实现方法
CN108022201A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种三角形图元并行光栅化定序方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266254B2 (en) * 2002-02-13 2007-09-04 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8788996B2 (en) 2003-09-15 2014-07-22 Nvidia Corporation System and method for configuring semiconductor functional circuits
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US9123173B2 (en) * 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US9070213B2 (en) * 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8427487B1 (en) * 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US8009169B2 (en) 2007-11-09 2011-08-30 Vivante Corporation Efficient tile-based rasterization
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US20110063309A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation User interface for co-processing techniques on heterogeneous graphics processing units
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
US8786633B2 (en) 2011-10-18 2014-07-22 Honeywell International, Inc. System and method for dynamically rendering bounded region labels on a moving map display
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
US10269154B2 (en) 2015-12-21 2019-04-23 Intel Corporation Rasterization based on partial spans

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4208810A (en) * 1978-09-11 1980-06-24 The Singer Company Clipping polygon faces through a polyhedron of vision
US4918626A (en) * 1987-12-09 1990-04-17 Evans & Sutherland Computer Corp. Computer graphics priority system with antialiasing
EP0431776A3 (en) * 1989-11-17 1992-11-19 Digital Equipment Corporation Method of drawing a line segment in a graphics system
US5543935A (en) * 1994-11-18 1996-08-06 Xerox Corporation Halftoning method using space filling curves
JP2915363B2 (ja) * 1996-11-05 1999-07-05 核燃料サイクル開発機構 空間探索システム
US6611272B1 (en) * 1998-07-02 2003-08-26 Microsoft Corporation Method and apparatus for rasterizing in a hierarchical tile order
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
JP2000089742A (ja) * 1998-09-11 2000-03-31 Canon Inc 画像処理方法及び装置及びシステム
GB2343603B (en) * 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
US6323874B1 (en) * 1999-02-08 2001-11-27 Silicon Graphics, Inc. System and method for rendering an image
US6597356B1 (en) 2000-08-31 2003-07-22 Nvidia Corporation Integrated tessellator in a graphics processing unit
US6938176B1 (en) 2001-10-05 2005-08-30 Nvidia Corporation Method and apparatus for power management of graphics processors and subsystems that allow the subsystems to respond to accesses when subsystems are idle
US7075542B1 (en) 2002-11-12 2006-07-11 Ati Technologies Inc. Selectable multi-performance configuration
US20060202990A1 (en) 2003-02-13 2006-09-14 Koninklijke Philips Electronics N.V. Computer graphics system and method for rendering a computer graphic image
US6956579B1 (en) 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
US7418606B2 (en) 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
JP4064339B2 (ja) * 2003-12-19 2008-03-19 株式会社東芝 描画処理装置、描画処理方法および描画処理プログラム
JP2004139625A (ja) 2004-01-27 2004-05-13 Sony Computer Entertainment Inc データ処理装置およびデータ処理方法
US7154500B2 (en) * 2004-04-20 2006-12-26 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
CN100576249C (zh) 2004-05-24 2009-12-30 Nxp股份有限公司 基于贴片的图形渲染
US7505043B2 (en) * 2004-08-30 2009-03-17 Qualcomm Incorporated Cache efficient rasterization of graphics data
JP4218840B2 (ja) 2005-05-27 2009-02-04 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法
US7483029B2 (en) 2005-12-15 2009-01-27 Nvidia Corporation GPU having raster components configured for using nested boustrophedonic patterns to traverse screen areas
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739703B (zh) * 2008-11-10 2012-05-30 富士通株式会社 用于对三角形进行栅格化的方法和系统
CN102819820A (zh) * 2012-08-14 2012-12-12 长沙景嘉微电子股份有限公司 基于分块渲染的gpu中多管线渲染的实现方法
CN102819820B (zh) * 2012-08-14 2014-03-12 长沙景嘉微电子股份有限公司 基于分块渲染的gpu中多管线渲染的实现方法
CN108022201A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种三角形图元并行光栅化定序方法
CN108022201B (zh) * 2017-11-24 2021-09-14 中国航空工业集团公司西安航空计算技术研究所 一种三角形图元并行光栅化定序方法

Also Published As

Publication number Publication date
US20080024522A1 (en) 2008-01-31
KR100893637B1 (ko) 2009-04-17
JP4598031B2 (ja) 2010-12-15
TWI346911B (en) 2011-08-11
CN101114375B (zh) 2012-09-26
JP2008102904A (ja) 2008-05-01
KR20080010356A (ko) 2008-01-30
TW200820127A (en) 2008-05-01
US7843468B2 (en) 2010-11-30

Similar Documents

Publication Publication Date Title
CN101114375B (zh) 加速的起始瓦片搜索
CN101131768B (zh) 图形管线中基于瓦片的精度的光栅化
US7483029B2 (en) GPU having raster components configured for using nested boustrophedonic patterns to traverse screen areas
US8537168B1 (en) Method and system for deferred coverage mask generation in a raster stage
US8325203B1 (en) Optimal caching for virtual coverage antialiasing
US8988441B2 (en) Reconfigurable 3D graphics processor
AU2010202390B2 (en) Rasterising disjoint regions of a page in parallel
US20090122083A1 (en) Edge evaluation techniques for graphics hardware
US20070139440A1 (en) Method and system for rendering polygons having abutting edges
US8427487B1 (en) Multiple tile output using interface compression in a raster stage
KR102545172B1 (ko) 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법
KR102188543B1 (ko) 그래픽 처리 장치
CN103003839A (zh) 反锯齿样本的拆分存储
US8773447B1 (en) Tag logic scoreboarding in a graphics pipeline
US8508544B1 (en) Small primitive detection to optimize compression and decompression in a graphics processor
US8860722B2 (en) Early Z scoreboard tracking system and method
US7692654B1 (en) Nondeterministic pixel location and identification in a raster unit of a graphics pipeline
JP5864474B2 (ja) 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
US9183607B1 (en) Scoreboard cache coherence in a graphics pipeline
US8698811B1 (en) Nested boustrophedonic patterns for rasterization
US8085264B1 (en) Tile output using multiple queue output buffering in a raster stage
US9123173B2 (en) Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
WO2022201413A1 (ja) 描画処理装置、描画処理システム、描画処理方法、および描画処理プログラム
CN110223369B (zh) Tbr架构的帧缓存写回方法、装置及计算机存储介质
CN117795946A (zh) 一种数据读取装置及相关方法

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