CN1669055A - 用于区域渲染的自动存储器管理 - Google Patents

用于区域渲染的自动存储器管理 Download PDF

Info

Publication number
CN1669055A
CN1669055A CNA028265866A CN02826586A CN1669055A CN 1669055 A CN1669055 A CN 1669055A CN A028265866 A CNA028265866 A CN A028265866A CN 02826586 A CN02826586 A CN 02826586A CN 1669055 A CN1669055 A CN 1669055A
Authority
CN
China
Prior art keywords
scene
warehouse
instruction
memory block
memory pages
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
CNA028265866A
Other languages
English (en)
Other versions
CN1669055B (zh
Inventor
阿迪蒂亚·斯里尼瓦斯
彼得·多伊尔
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1669055A publication Critical patent/CN1669055A/zh
Application granted granted Critical
Publication of CN1669055B publication Critical patent/CN1669055B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Electrotherapy Devices (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Input (AREA)
  • Control Of Motors That Do Not Use Commutators (AREA)
  • Liquid Developers In Electrophotography (AREA)
  • Traffic Control Systems (AREA)

Abstract

本发明通过在入库和渲染阶段之间提供对库存储器的自动管理而优化了区域渲染过程中的性能。本发明的实施例提供了一种机制,利用这种机制,入库器和渲染器自动地共享一个物理存储器页面池,从而建立库缓冲区,并在这些库缓冲区已用于渲染之后再次利用它们。这是按下列方式来进行的,使得多个入库的场景可同时排队等候,除例外情况之外无需软件的干预。因此消除了对区域渲染库缓冲存储器进行软件管理的需要。也可对要入库和渲染的多个场景进行排队,而无需软件的干预。

Description

用于区域渲染的自动存储器管理
技术领域
本发明一般地涉及图形系统,更具体而言涉及图形渲染(rendering)系统。
背景技术
计算机图形系统被广泛用于在二维视频显示屏幕上显示对象的图形表示。当前的计算机图形系统提供非常细致的表示并用于多种应用中。在典型的计算机图形系统中,显示屏幕上所要表示的对象被分解成多个图形图元(primitive)。图元是图形显示的基本组成部分,并可包括点、线、向量和多边形(例如三角形和四边形)。通常,利用硬件/软件方案来渲染或画出下述图形图元,所述图形图元代表显示屏幕上正被表示的一个或多个对象的视图。
要被渲染的三维对象的图元由主机计算机以图元数据的方式来定义。例如,当图元是三角形时,主机计算机可以按照其顶点的X、Y和Z坐标以及每个顶点的红、绿和蓝(R、G和B)颜色值来定义图元。在具体应用中可以使用其它图元数据。
图像渲染是将基于对象的高级描述转换为用于在某个显示设备上显示的图形化图像。例如,在将三维对象或场景的数学模型转换为位图(bitmap)图像期间,就会发生图像渲染动作。图像渲染的另一个例子是将一个HTML文档转换为一个用于在计算机监视器上显示的图像。通常,称为图形渲染引擎的硬件设备执行这些图形处理任务。图形渲染引擎通常将场景渲染到随后将被输出到图形输出设备的缓冲区中,但某些渲染引擎可能将其二维输出直接写到输出设备中。图形渲染引擎插入图元数据来计算表示每个图元的显示屏幕像素,并计算每个像素的R、G和B颜色值。
这里所用的图形渲染系统(或子系统)指的是在应用程序和图形输出设备之间的所有级别的处理。图形引擎可以提供一种或多种模式的渲染,包括区域渲染(zone rendering)。区域渲染通过实现最优的渲染缓存利用率,由此缓解像素颜色和深度存储器读/写的瓶颈,以此来试图提高整体的3D渲染性能。在区域渲染中,屏幕被划分成区域阵列,并对各个区域生成对应的指令库(instruction bin),所述指令库用来保存渲染每个子图像所需的所有图元和状态设置指令。只要一个图元与一个区域相交(或者可能相交),则将该图元指令置于该区域的库中。一些图元将与一个以上的区域相交,这种情况下该图元指令被复制到对应的多个库中。继续这个过程,直到整个场景被分类到各个库中。在为与一个图元相交的每个区域都建立库的第一次扫描之后,进行第二次逐个区域的渲染扫描。具体而言,形成所有区域的库以生成最终的图像。
传统的区域渲染系统缺乏效率,这是因为它们需要对各种功能的全面软件干预和/或管理,所述功能包括但不限于库存储器功能、以及为了入库(binning)和渲染而对多个场景的排队。
因此需要的是这样一种方法、装置和系统,其可以在入库和渲染阶段之间对库存储器进行自动管理。
附图说明
图1示出了一个计算机系统的实施例框图,该计算机系统包括用于对区域渲染进行自动存储器管理的图形设备的实施例。
图2示出了一种图形设备的实施例的框图,该图形设备包括图形入库引擎、图形渲染引擎、库、库存储器池、库指针列表和场景计数器。
图3示出了包括多个区域和几何图元的区域渲染器屏幕视图的实施例。
图4示出了库存储器池存储区和图形设备的实施例的具体框图,所述图形设备包括图形入库引擎、图形渲染引擎、库存储器池环形缓冲区寄存器、控制寄存器和待处理场景计数器。
图5示出了库指针列表和相关库的一个实施例的具体框图。
图6示出了库存储器池环形缓冲存储区和相关联的库存储器池环形缓冲区寄存器的一个实施例的流程图。
图7示出了用于自动存储器管理的过程的一个实施例的流程图。
具体实施方式
本发明通过在入库和渲染阶段之间提供对库存储器的自动管理,而在基于图块(tile based)的渲染(例如区域渲染)期间对图形性能进行优化。利用本发明的实施例所提供的机制,入库器和渲染器自动地共享一个物理存储器页面池,从而建立库缓冲区,并在这些库缓冲区已用于渲染之后再次利用它们。这是按下列方式来进行的,即多个入库的场景可同时排队等候,除例外情况之外无需软件的干预。因此基本上最小化了对区域渲染库缓冲存储器进行软件管理的需要。这些特性增强了系统的性能。
在详细的描述中给出了大量的具体细节以提供对本发明的充分理解。但是,本领域的技术人员将理解到,没有这些具体细节也可以实现本发明。此外,没有详细地描述公知的方法、过程、组件和电路,以免模糊了本发明。
接下来的详细描述中的某些部分按照对计算机中数据位或二进制信号的操作的算法和符号表示来展现。这些算法描述和表示是数据处理领域的技术人员用来向本领域其他技术人员传达其工作内容的手段。算法在这里(以及一般地)被认为是产生所期望结果的自相一致的步骤序列。这些步骤包括对物理量的物理操纵。虽然不是必需的,但通常这些量采用能被存储、传送、组合、比较或者操纵的电信号或磁信号的形式。为通用起见,将这些信号称为位、值、元素、符号、字符、项、数等常常被证明是方便的。但是应该理解,所有这些以及类似的术语将与合适的物理量相关联,并仅仅是应用到这些量上的方便的标记。除非在后面的讨论中专门给出了相反的陈述,应该认识到在整个说明书中,采用诸如“处理”或“计算(computing或calculating)”或“确定”等术语的讨论,指的是计算机或计算系统或类似的电子计算设备的下列动作和过程,即将表示为该计算系统的寄存器和/或存储器中的物理(电子)量的数据操纵并转换成类似地表示为该计算系统的存储器、寄存器或其它这样的信息存储、传输或显示设备中的物理量的其它数据。
本发明的实施例可以在硬件或软件、或者两者的组合中实现。但是,本发明的实施例可被实现为在可编程系统上执行的计算机程序,该系统包括至少一个处理器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可对输入数据应用程序代码以执行这里所描述的功能并产生输出信息。输出信息可以以已知的方式被应用到一个或多个输出设备。为了这一应用目的,处理系统包括任何具有处理器的系统,所述处理器例如是数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或者微处理器。
程序可以用高级过程性或面向对象的编程语言来实现,以和处理系统通信。如果需要,程序还可以用汇编语言或机器语言来实现。实际上,本发明在范围上并不限于任何具体的编程语言。在任何情况下,该语言都可以是经过编译的语言或解释性的语言。
程序可以被存储在通用或专用可编程处理系统可读的存储介质或设备(例如硬盘驱动器、软盘驱动器、只读存储器(ROM)、CD-ROM设备、闪存设备、数字多功能盘(DVD)或其它存储设备)上,用于当该存储介质或设备被处理系统读取时,配置并操作该处理系统来执行这里所描述的过程。还可认为本发明的实施例可被实现为机器可读的存储介质,其被配置来和处理系统一起使用,其中如此配置的存储介质使得处理系统以特定和预定义的方式操作,来执行这里所描述的功能。
在图1中示出这样一种处理系统的例子。示例系统100可以被用来例如执行根据本发明的方法的处理,例如这里所描述的实施例。示例系统100可表示基于可从英特尔公司得到的微处理器的处理系统,尽管也可以使用其它系统(包括具有其它微处理器的个人计算机(PC)、工程工作站、机顶盒等等)。在一个实施例中,示例系统100可以运行可从微软公司得到的WINDOWSTM操作系统的某一版本,尽管也可以使用例如其它操作系统和图形用户界面。
图1是本发明一个实施例的系统100的框图。计算机系统100包括中央处理器102、包括图形设备106在内的图形和存储器控制器104、存储器108和显示设备114。处理器102处理数据信号,并可以是复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施多个指令集的组合的处理器、或者例如数字信号处理器的其它处理器设备。处理器102可以耦合到公共总线112,该总线112在处理器102和系统100中的其它组件之间传输数据信号。图1仅仅用来说明。还可以在包括单独的图形设备的配置中使用本发明。
处理器102在公共总线112上发出信号来与存储器108或图形和存储器控制器104通信,以根据这里的描述来操纵数据。处理器102响应于从存储器108得到的软件指令来发出这样的信号。存储器108可以是动态随机访问存储器(DRAM)设备、静态随机访问存储器(SRAM)设备或其它存储器设备。存储器108可以存储由数据信号表示的指令和/或数据,这些指令和/或数据可以被处理器102、图形设备106或某种其它设备执行。这些指令和/或数据可以包括用来执行本发明的任何和/或所有技术的代码。存储器108还可以包含软件和/或数据。可选的缓存110可用来利用其访问的局部性来加速图形设备106的存储器访问。
在一些实施例中,图形设备106可以从处理器102分担许多渲染图像所需的存储器密集型任务。图形设备106处理数据信号,并可以是复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施多个指令集的组合的处理器、或者例如数字信号处理器的其他处理器设备。图形设备106可以耦合到公共总线112,该总线112在图形设备106和系统100中的其它组件之间传输数据信号,这些组件包括渲染缓存110和显示设备114。图形设备106包括渲染硬件,该硬件除了别的功能之外还向显示设备114的特定像素写特定属性(例如颜色),并在显示设备114上画出复杂的图元。图形和存储器控制器104与用于显示由图形控制器104进行渲染或其它处理的图像的显示设备114通信,从而向用户显示经过渲染或其它处理的图像。显示设备114可以包括计算机监视器、电视机、平板显示器或者其他合适的显示设备。
存储器108存储主机操作系统,该主机操作系统可以包括一个或多个渲染程序来构建图形图元的图像以用于显示。系统100包括诸如图形加速器之类的图形设备106,所述图形加速器使用定制的硬件逻辑设备或协处理器,以提高对本来由主机渲染程序处理的图形图元的至少某个部分进行渲染的性能。主机操作系统程序及其主机图形应用编程接口(API)通过驱动程序来控制图形设备106。
参考图2和3,图示了在区域渲染系统120上实现的各种图形对象的实施例160,例如几何图元(即三角形、直线)162。在区域渲染中,屏幕被划分成多个区域164的阵列,这些区域164通常是具有一定屏幕空间的矩形,尽管也可以使用其他的几何变形。每个区域164与一个库相关联。每个库128包括存储在非连续物理存储器页面中的一连串命令缓冲区134。因此库128优选地实现为一连串独立的物理页面。
当图元162与区域164相交时,相应的图元指令就被置于与相交区域164相关联的库128中。因此每个区域的指令库128被用来保存渲染每个子图像所需的图元指令和状态设置指令,并且,通过将每个图元162的屏幕空间范围与区域164的阵列进行比较而生成该指令库128。于是,当接收到图元162时,本发明就确定与每个图元162相交的(多个)区域164,并将图元指令复制到与这些区域164中的每个区域相关联的库128中。将图元(及其属性)162分配到区域164的过程称为“入库”。“库”128指的是用于每个区域的抽象缓冲区——其中库128一般被实现为一系列指令批处理缓冲区134。入库过程执行必要的计算来确定哪些图元162位于哪些区域164中,并且可由专用硬件和/或软件实现来执行。在一种典型的实现中,驱动器122为与图元162相交的每个164写出一组将由图形入库引擎126解析(parse)的命令,并且这些命令可被写入到与相交的区域164相关联的缓冲区134中。
一些图元162将与一个以上的区域164相交,这种情况下,图元指令被复制到与相交区域164对应的库128中。例如,图3中所示的闪电与9个区域164相交。继续此过程,直到整个场景都被分类到库128中。
一旦所有的图元162都被分类并且完成了命令结构,就进行第二次扫描来一次一个区域164地渲染所述场景。在为与一个图元162相交的每个区域164建库的第一次扫描之后,进行第二次逐个区域的渲染扫描。具体而言,形成所有区域164的库128以生成最终的图像,其中每个场景都一次一个区域164地被渲染。区域164被渲染的顺序并不重要。与涉及某个特定区域164中的像素的图元162相关联的所有库128在渲染下一个区域164之前都被形成。单个图元162可与许多区域164相交,因此需要多次复制。结果,与多个区域164相交的图元162被多次渲染(即对每个相交的区域164都渲染一次)。
由于图元162被分解成与渲染缓存110对齐的若干区域164,因此渲染性能得到了改进。由于图形设备106每次只对屏幕的一小部分(即某个区域164)工作,因此它能够在渲染缓存110中保存整个区域164的帧缓冲区内容。区域164的大小一般是一个常数,其被调节成适于渲染缓存110的大小和结构。通过这一机制,渲染缓存110提供了最佳收益——通过利用区域164的空间连贯性(coherence),可最大程度地重复使用所缓存的数据。通过使用区域渲染模式,只需要执行最少数量的颜色存储器写就可以一次一个区域164地生成最终的图像,并且同时可以最少化或避免颜色存储器读以及深度存储器读和写。因此,与传统的渲染器相比,渲染缓存110的使用大大减少了存储器流量并提高了性能,其中所述传统的渲染器在完整地绘制完每一个图元之后才继续到下一个图元。
参考图2,在典型的实现中,最开始,将被称为场景输入列表124的图形图元和状态设置指令流应用到与图形入库引擎126相关联的图形入库引擎环形缓冲区125。场景输入列表124可以是(应用编程接口所接收到的)单个的、按时间排序的场景描述。图形入库引擎126通常实现为硬件入库引擎(HWB)126。本领域技术人员将认识到也可以使用软件或软件加硬件的入库器。图形入库引擎126对屏幕输入列表124进行解析,并确定每个图元162与哪个(哪些)区域164相交。
如前所述,区域164与库128相关联。图形入库引擎126将每个图元162的屏幕空间范围与区域164的阵列进行比较,并将相关联的图元命令复制到相应的库128中。如图5所示以及如下所述,库128由通常存储在非连续物理存储器页面中的一连串命令缓冲区134组成。库列表是包括每个库132的缓冲区134的列表。页面一开始被分配到BMP 140。用所述页面的页号来初始化库指针列表130,并且库指针列表130将写指针存储到库列表132中。
图形入库引擎126还通过对包含在场景输入列表124中的相关状态设置指令进行解析,来维护当前的图形状态。在将图元命令置于任何给定的库128中之前,图形入库引擎126通常在库128中将任何必要的状态设置指令放在所述图元命令之前。
在已经完全对场景输入列表124进行解析之后,相关联的库(即库0、库1...库n-1)的集合就准备好由图形渲染引擎136用来渲染场景了。如下所详细讨论的,在场景输入列表124末端包括指令,以使得图形入库引擎126将待处理场景计数器148中的寄存器加1,并开始对已入库场景的渲染。例如,图形入库引擎126经由路径156向与图形渲染引擎136相关联的图形渲染引擎环形缓冲区157发送渲染指令。
图4示出了库存储器池存储区180和一个图形设备的实施例的框图,所述图形设备包括图形入库引擎126、图形渲染引擎136、BMP环形缓冲区寄存器174、控制寄存器182和待处理场景计数器148。BMP环形缓冲存储区180保存一个指向可供入库器125使用的空闲物理页面的指针的列表。在为每一个库128都建立了初始缓冲区后,生成场景生成指令流。
参考图5,示出了库指针列表(BPL)130的一个实施例170,其中包括当前库指针132和多个库128。维护在存储器中的库指针列表130被用来为每个库128将初始的以及后续的当前指针132存储到库指针列表130中。BMP环形缓冲存储区180保存一个指向可供入库器125使用的空闲物理页面的指针的列表。具体地说,库指针列表130是库指针132在物理上连续的、大小对齐的阵列,其中库指针列表130的大小等于或近似等于图形设备106所支持的库128的最大数量。每个库指针132都包含用于库128的当前库写指针(例如,物理字地址),还有库状态值。在一个典型的实施例中,按图块化的方式来存储库指针132,其中每8个双字(256比特的缓存线)包含一个重新排列的库指针132的列表,其用于宽1高4的库128矩形组。
参考图6,示出了BMP环形缓冲存储区180的实施例。与BMP 140相关联的BMP环形缓冲存储区180保存着指向可供图形入库引擎126使用的空闲物理页面的指针的列表。环形缓冲存储区180可能位于系统存储器108中或专用存储器中。可用的空闲页面146的页面号被生成并放置在BMP环形缓冲区144中。与BMP环形缓冲存储区180相关联的BMP环形缓冲区寄存器150可能具有寄存器内的多个字段。在BMP环形缓冲区寄存器174的实施例内所包含的字段包括但不限于起始地址字段(S)166、缓冲区长度字段(L)168、获得(get)偏移量字段(G)170、放置(put)偏移量字段(P)172以及其它字段。BMP环形缓冲区寄存器174定义了BMP环形缓冲存储区180的起始166和长度168,并包括两个进入BMP环形缓冲存储区180中的“偏移量”,分别是获得170和放置172。BMP 140自身被存储在物理上连续的存储器的对齐列表中,这个列表通常为4KB,由起始物理页面号和页面大小(通常为4KB)来定义。
图形设备106包括图形入库引擎126和图形渲染引擎136,经由获得和放置偏移量寄存器170和172来访问BMP环形缓冲存储区180。通过写用于提供BMP起始166和BMP大小168的BMP寄存器,而在一开始初始化并指定BMP 140。获得偏移量170和放置偏移量172在被入库器使用前一般都被初始化为0,以表示空闲页面的完全补足(complement)。
参考图4,图形设备106还包括库控制寄存器182,其包括寄存器内的多个字段。在库控制寄存器182的实施例内所包含的字段包括但不限于重启位184、场景的同步结束位186、恢复(resume)位188以及其它字段。一旦BMP 140有增长,就通过直接写库控制寄存器182来设置重启位184而恢复场景的入库。
当一个入库的场景被渲染时,分配库存储器,这个库存储器后面会被再次利用,以在下一个场景入库时使用。具体地说,用批处理缓冲区起始指令182来创建每一个批处理缓冲区134,所述指令182指定了物理地址和回收(reclaim)位。当图形渲染引擎136渲染每一个批处理缓冲区134时,它译码并执行批处理缓冲区起始指令182。图形渲染引擎136在对批处理缓冲区134进行处理的结尾处将空闲页面146插入到BMP 140中,所述批处理缓冲区134是用指定了物理地址并设置了“回收”位的批处理缓冲区起始指令182来创建的。这一过程使得库缓冲存储器134(即,页面)可被自动地回收,而无需软件的干预。放置偏移量172向图形渲染引擎136通知放置偏移量172,在这个放置偏移量172处写下一次释放的缓冲区134的页面号。图形渲染引擎136使用放置偏移量172来将库缓冲区134的页面在执行结束后返还给BMP 140。
图形入库引擎126和图形渲染引擎136都和待处理场景计数器148进行通信,所述待处理场景计数器148对每一个正在入库的场景进行监控和计数。待处理场景计数器148被初始化为0,当不是0时,则表示当前处理着至少一个入库的场景。当没有待处理的场景时,待处理场景计数器148为0。每次有场景入库,待处理场景计数器148就加1。相应地,每当入库的场景被渲染,则待处理场景计数器148减1。具体地说,要想为形成每个库128而初始化图形状态,就要在场景渲染列表124的末尾处放置一条专用的指令,该指令将待处理场景计数器148减1。当待处理场景计数器148减到1时,就不存在任何排队等候渲染的完整场景了。
BMP环形缓冲存储区180可以保存一个或多个库指针列表130,其中每一个库指针列表130都是将被用于初始库缓冲区的物理页面号的列表(每个区域一个页面号)。多个库列表(一般一个双缓冲区有两个)使得在图形入库引擎126正活动地入库当前场景的同时可以开始下一场景的入库。为了允许在当前场景结束入库之前开始下一场景的入库,使用一个以上的库指针列表130来向入库器128提供一种多缓冲的输入。BMP环形缓冲存储区180中的双字节条目包含了物理页面号以及相关联的存储器空间选择(如果设备支持多个物理存储器空间的话)。
参考图4和5,在建立新的库缓冲区134的过程中,图形入库引擎126将从BMP 140中抽取一个空闲页面号146(假定有一个是可用的)。具体地说,在场景入库期间,图形入库引擎126查询BMP环形缓冲存储区180,以确定是否有空闲页面可用。获得偏移量170向图形入库引擎126通知下一个可获取的空闲页面146的页面号的偏移量。图形入库引擎126将使用这个偏移量来获得建立库128所需的物理页面146。当图形入库引擎126试图抽取空闲页面号146但发现BMP 140为空时,图形入库引擎126查询待处理场景计数器148以确定是否存在“待处理的”入库场景。如果待处理场景计数器148不是0,则图形入库引擎126保持空闲,直到某一空闲页面146变为可用或者待处理场景计数器148变为0。
如果待处理场景计数器148为0,则没有任何待处理的入库场景,因此没有任何释放页面的潜在源。在这个时刻,通过增大BMP 140的大小来增长BMP 140,所述增幅是要容纳必需数量的额外空闲页面号146所必备的。在一个典型的实现中,BMP 140以4KB的整数倍增长。接着,额外的空闲页面号被插入到更大的BMP 140中,并且据此对BMP环形缓冲区寄存器166、168、170和172进行调整。空闲页面146的新列表被放置在BMP环形缓冲存储区180的顶端,并且指针被调整。例如,当图形入库引擎126只是使用新的指针值来恢复时,两个指针都可被移动。然后,图形入库引擎126从BMP 140中抽取空闲页面号146,并继续入库过程。
如果无法得到额外的空闲存储器,则图形渲染引擎136渲染部分入库的场景,以释放库存储器,并且随后重新开始入库所述场景的剩余部分。在一个典型的实施例中,直接写库控制寄存器182,以设置同步结束场景位186。这使得图形入库引擎126(a)通过用一条结束批处理缓冲区的指令来终止所有有效的库128,从而关闭这些有效的库128,(b)冲刷(flush)任何内部缓存的数据(例如,所缓存的库指针132),以及(c)修改与库128相关联的状态跟踪信息,使得一旦恢复入库,则所有必要的状态都被插入到库128中它收到的第一个图元162之前。还要采取渲染部分入库的场景所需的任何其它动作。这些动作包括但不限于对库场景寄存器190的直接写,以使得待处理场景计数器148增加,以及在渲染部分场景之前确保区域控制寄存器的深度写使能位被清零(因为对场景的继续部分的渲染要求深度值已被写入存储器)的动作。
通过直接写库控制寄存器182来设置恢复位188,就可以恢复场景的入库。如上所述,同步结束场景操作将使得所有库位向量都被用于跟踪状态组的变化,因此在任何新的图元被输出之前,都将用当前的状态来刷新每个库128。
图形渲染引擎136将在对批处理缓冲区进行处理的结尾处将空闲页面号146插入到BMP 140中,所述批处理缓冲区是用指定了物理地址并设置了“回收”位的批处理缓冲区起始指令182来创建的。这一过程使得库缓冲区存储器(即,页面)可被自动地回收,而无需软件的干预。当一个入库的场景被渲染时,分配库存储器,这个库存储器后面会被再次利用,以在渲染下一个场景时接着使用。具体地说,放置偏移量172向图形渲染引擎136通知放置偏移量172,在这个放置偏移量172处写下一次释放的缓冲区的页面号。图形渲染引擎136使用放置偏移量172来将库缓冲区134的页面在执行结束后返还给BMP 140。
图7是图示了用于实现自动存储器管理,包括对缓冲存储器进行自动回收的实施例200的流程图。
页面一开始被分配给BMP 140(步骤202)。然后初始化BMP 140(步骤204)。通过写BMP缓冲区寄存器而指定BMP 140,所述BMP缓冲区寄存器规定了BMP起始166和BMP大小168。在任何入库器使用之前,BMP的获得偏移量170和放置偏移量172被初始化为0,以表示空闲页面的完全补足。
然后,用所分配的物理页面号来初始化库指针列表130(步骤206)。在场景的入库过程中,本发明确定是否有可用的空闲页面(步骤208)。当图形入库引擎126试图提取空闲页面号146但发现BMP 140为空时,它执行两种动作之一。如果存在任何“待处理的”入库场景(即,待处理场景计数器148非零)(步骤210),则图形入库引擎126将等待空闲页面146变为可用或者待处理场景计数器148变为0(步骤212)。
假如图形入库引擎126遇到了存储器用尽的状况,并且没有待处理的入库场景(因此没有释放页面的潜在源),则产生一个存储器用尽中断。此时,软件可以选择通过“增长”BMP 140而提供更多的空闲页面(步骤218)。通过初始时将BMP增大容纳所需数量的额外空闲页面号146所必需的大小,从而增长BMP 140。然后,额外的空闲页面号被插入到更大的BMP 140中,并且获得和放置偏移量寄存器166、168、170和172做出相应的调整。如果空闲页面146变为可用(步骤212),则图形入库引擎126将从BMP 140中抽取这个页面号146,并继续入库过程。
如果待处理场景计数器148为0(步骤210)或者在等待时变为0(步骤212),则图形入库引擎126将产生一个能够产生处理器中断的存储器用尽例外(步骤214)。
此时,如果软件可将额外的空闲页面变为可用(步骤216),则通过直接写库控制寄存器182以设置重启位184,从而增长BMP 140,插入额外的空闲页面,并且恢复场景的入库(步骤218)。
如果认为BMP 140处于“空”状态,无法得到可用的额外空闲存储器(步骤216),则强迫对部分入库的场景进行渲染,以释放库存储器,然后重新开始对所述场景的剩余部分的入库(步骤220)。图形入库引擎126随后将(a)用一条结束批处理缓冲区的指令来终止所有有效的库,从而关闭这些库,(b)冲刷任何内部缓存的数据(例如,所缓存的库指针132),以及(c)修改与库128相关联的状态跟踪信息,使得一旦恢复入库,则所有必要的状态都被插入到库128中它收到的第一个图元162之前。还要采取渲染部分入库的场景所需的任何其它动作。通过直接写库控制寄存器182来设置恢复位188,就可以恢复场景的入库。如上所述,同步结束场景操作将使得所有库位向量都被用于跟踪状态组的变化,因此在任何新的图元被输出之前,都将用当前的状态来刷新每个库128。
因此,根据本发明,入库器和渲染器自动地共享一个物理存储器页面池,从而在入库阶段建立库缓冲区,并在渲染阶段已利用之后再次利用它们。这是按照以下方式来进行的,即同时让多个入库场景排队等候,而加以最小的软件干预。
已按照专利法规的要求描述了本发明,本领域的技术人员将会理解如何对本发明做出修改和改变以满足他们的特定需求和条件。所做出的这些修改和改变将不会偏离所附权利要求所阐述的本发明的范围和精神。

Claims (49)

1.一种用于渲染包括几何图元的场景的装置,包括:
入库引擎;
渲染引擎;和
自动存储器管理器,用于在入库引擎和渲染引擎之间管理存储器页面,其包括:
用于存储存储器页面的存储区;和
包括第一寄存器和第二寄存器的多个存储区寄存器,其中,所述第一寄存器包含指向所述存储区中若干存储位置的信息,所述入库引擎可从所述存储位置获取存储器页面以建立缓冲区,这些缓冲区是用一条包括回收命令的缓冲区指令来发起的,并且其中,所述第二寄存器包含指向所述存储区中若干存储位置的信息,所述渲染引擎可响应于与所形成的缓冲区相关联的回收命令而自动地将存储器页面返还到所述存储位置。
2.如权利要求1所述的装置,其中,所述入库引擎使用所述存储器页面来配置与多个区域相关联的缓冲区。
3.如权利要求2所述的装置,其中,所述入库引擎确定某个几何对象与哪些区域相交,被将相关联的对象指令复制到与相交的区域相关联的缓冲区中。
4.如权利要求1所述的装置,其中,所述入库引擎响应于所述第一寄存器而抽取可用的存储器页面,以配置与多个区域相关联的多个库。
5.如权利要求1所述的装置,其中,所述入库引擎是图形入库引擎。
6.如权利要求1所述的装置,其中,所述缓冲区指令包括地址和回收位。
7.如权利要求1所述的装置,其中,所述渲染引擎在形成每个缓冲区时译码并执行所述缓冲区指令。
8.如权利要求1所述的装置,其中,所述渲染引擎在对用缓冲区指令发起的缓冲区进行处理的结尾处,将缓冲区插入到所述存储区中,从而实现缓冲区的自动回收。
9.如权利要求1所述的装置,其中,所述第二寄存器将一个偏移量通知给所述渲染引擎,将下一个可用缓冲区的页面号写在所述偏移量处。
10.如权利要求9所述的装置,其中,所述渲染引擎使用所述偏移量而在所述缓冲区页面的执行结束时将它们返还到所述存储器池中。
11.如权利要求1所述的装置,其中,所述存储区保存多个库列表,其中,每个库列表是将用于初始库缓冲区的物理页面号的列表。
12.如权利要求11所述的装置,其中,所述入库引擎利用所述多个库列表来排队多个场景。
13.如权利要求12所述的装置,其中,所述入库引擎利用所述多个库列表而在第一场景入库的同时开始第二场景的入库。
14.如权利要求1所述的装置,还包括:
场景计数器,与所述入库引擎和渲染引擎通信,用于计数入库场景。
15.如权利要求14所述的装置,其中,每次有一个场景入库,则所述场景计数器递增。
16.如权利要求14所述的装置,其中,每次有一个场景被渲染,则所述场景计数器递减。
17.如权利要求16所述的装置,其中,所述场景计数器响应于某一场景被渲染后所执行的指令而递减。
18.如权利要求14所述的装置,其中,当所述场景计数器指示没有待处理的场景,并且可将可用的存储器页面分配给所述存储区时,所述存储区存储额外的存储器页面。
19.如权利要求14所述的装置,其中,当所述场景计数器指示没有待处理的场景,并且不能将可用的存储器页面分配给所述存储区时,所述渲染引擎渲染部分入库的场景。
20.如权利要求19所述的装置,其中,所述渲染引擎在渲染了所述部分入库的场景后,在处理所述部分入库场景的缓冲区的结尾处,将相关联的缓冲区返还给所述存储区,从而实现缓冲区的自动回收。
21.如权利要求20所述的装置,还包括控制寄存器,其提供了恢复位,用于在缓冲区被回收后恢复所述部分入库场景的入库。
22.一种对存储器进行自动管理以用于入库和渲染场景的方法,包括:
分配存储器页面;
定义一个存储区,可对该存储区进行访问以入库及渲染基于图块的渲染图像;
在所述存储区中存储所述存储器页面;
获取存储器页面以协助所述场景的入库;以及
在渲染所述场景后,将所获取的存储器页面返还给所述存储区,从而实现存储器页面的自动回收。
23.如权利要求22所述的方法,其中,定义可访问来用于入库和渲染的存储区还包括:
定义第一偏移量,在该处的下一个可用存储器页面的页面号将被用于入库;以及
定义第二偏移量,下一个释放的存储器页面的页面号将被写到该第二偏移量处。
24.如权利要求23所述的方法,其中,获取存储器页面以协助所述场景的入库还包括:
利用所述第一偏移量获得入库所需的存储器页面。
25.如权利要求23所述的方法,其中,在渲染所述场景后,将所获取的存储器页面返还给所述存储区,从而实现存储器页面的自动回收还包括:
利用所述第二偏移量而在执行后将存储器页面返还给所述存储区。
26.如权利要求22所述的方法,其中,在可访问来用于入库和渲染的存储区中存储所述存储器页面还包括:
通过物理页面号和相关联的存储器空间选择来识别每一个所存储的存储器页面。
27.如权利要求22所述的方法,还包括:
在入库每一个场景后,在数值上递增待处理场景计数器;以及
开始对入库场景的渲染。
28.如权利要求22所述的方法,其中,开始对入库场景的渲染包括:
格式化与所述场景相关联的渲染列表;以及
在处理了所述场景渲染列表后递减待处理场景计数器。
29.如权利要求22所述的方法,还包括:
在入库所述场景的过程中,确定是否有任何空闲存储器页面可用。
30.如权利要求29所述的方法,还包括:
当待处理场景计数器非零时,等待空闲页面;
当存储器页面变为可用时,从所述存储区抽取该存储器页面;以及
恢复所述场景的入库。
31.如权利要求29所述的方法,还包括:
当待处理场景计数器为零并有空闲存储器可用时,增长所述存储区;
将额外的空闲页面插入到所述存储区中;以及
恢复所述场景的入库。
32.如权利要求29所述的方法,包括:
当待处理场景计数器为零并且没有空闲存储器可用时,渲染某一入库场景的一部分;以及
恢复所述场景的未渲染部分的剩余部分的入库。
33.如权利要求22所述的方法,其中,所述存储区保存多个库列表,其中每个库列表是将用于初始库缓冲区的存储器页面的列表。
34.如权利要求33所述的方法,还包括:
利用所述多个库列表来排队多个场景。
35.如权利要求34所述的方法,还包括:
利用所述多个库列表而在入库第一场景的同时开始第二场景的入库。
36.一种机器可读介质,其上存储的多条机器可读指令可由处理器执行用来自动地管理存储器以入库和渲染场景,包括:
用于分配存储器页面的指令;
用于定义一个存储区的指令,可对该存储区进行访问以入库及渲染基于图块的渲染图像;
用于在所述存储区中存储所述存储器页面的指令;
用于获取存储器页面以协助所述场景的入库的指令;和
用于在渲染所述场景后,将所获取的存储器页面返还给所述存储区,从而实现存储器页面的自动回收的指令。
37.如权利要求36所述的机器可读介质,其中,用于定义可访问来用于入库和渲染的存储区的指令还包括:
用于定义第一偏移量的指令,在该第一偏移量处的下一个可用存储器页面的页面号将被用于入库;和
用于定义第二偏移量的指令,下一个释放的存储器页面的页面号将被写到该第二偏移量处。
38.如权利要求37所述的机器可读介质,其中,用于获取存储器页面以协助所述场景的入库的指令还包括:
利用所述第一偏移量获得入库所需的存储器页面的指令。
39.如权利要求37所述的机器可读介质,其中,用于在渲染所述场景后,将所获取的存储器页面返还给所述存储区,从而实现存储器页面的自动回收的指令还包括:
利用所述第二偏移量而在执行后将存储器页面返还给所述存储区的指令。
40.如权利要求36所述的机器可读介质,其中,用于在可访问来用于入库和渲染的存储区中存储所述存储器页面的指令还包括:
通过物理页面号和相关联的存储器空间选择来识别每一个所存储的存储器页面的指令。
41.如权利要求36所述的机器可读介质,还包括:
在入库每一个场景后,在数值上递增待处理场景计数器的指令;和
开始对入库场景进行渲染的指令。
42.如权利要求36所述的机器可读介质,其中,开始对入库场景进行渲染的指令包括:
格式化与所述场景相关联的渲染列表的指令;和
在处理了所述场景渲染列表后递减待处理场景计数器的指令。
43.如权利要求36所述的机器可读介质,还包括:
在入库所述场景的过程中,确定是否有任何空闲存储器页面可用的指令。
44.如权利要求43所述的机器可读介质,还包括:
用于在待处理场景计数器非零时等待空闲页面的指令;
用于在存储器页面变为可用时从所述存储区抽取该存储器页面的指令;和
用于恢复所述场景的入库的指令。
45.如权利要求43所述的机器可读介质,还包括:
用于在待处理场景计数器为零并有空闲存储器可用时增长所述存储区的指令;
用于将额外的空闲页面插入到所述存储区中的指令;和
用于恢复所述场景的入库的指令。
46.如权利要求43所述的机器可读介质,包括:
用于在待处理场景计数器为零并且没有空闲存储器可用时,渲染某一入库场景的一部分的指令;和
用于恢复所述场景的未渲染部分的剩余部分的入库的指令。
47.如权利要求36所述的机器可读介质,其中,所述存储区保存多个库列表,其中每个库列表是将用于初始库缓冲区的存储器页面的列表。
48.如权利要求47所述的机器可读介质,还包括:
利用所述多个库列表来排队多个场景的指令。
49.如权利要求48所述的机器可读介质,还包括:
利用所述多个库列表而在入库第一场景的同时开始第二场景的入库的指令。
CN028265866A 2001-12-31 2002-12-11 用于渲染场景的装置和相关的自动存储器管理方法 Expired - Fee Related CN1669055B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/038,921 2001-12-31
US10/038,921 US6747658B2 (en) 2001-12-31 2001-12-31 Automatic memory management for zone rendering
PCT/US2002/039791 WO2003058555A2 (en) 2001-12-31 2002-12-11 Automatic memory management for zone rendering

Publications (2)

Publication Number Publication Date
CN1669055A true CN1669055A (zh) 2005-09-14
CN1669055B CN1669055B (zh) 2011-05-25

Family

ID=21902658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028265866A Expired - Fee Related CN1669055B (zh) 2001-12-31 2002-12-11 用于渲染场景的装置和相关的自动存储器管理方法

Country Status (10)

Country Link
US (2) US6747658B2 (zh)
EP (1) EP1461773B1 (zh)
JP (1) JP4071196B2 (zh)
KR (1) KR100575143B1 (zh)
CN (1) CN1669055B (zh)
AT (1) ATE469409T1 (zh)
AU (1) AU2002359689A1 (zh)
DE (1) DE60236542D1 (zh)
TW (1) TWI279737B (zh)
WO (1) WO2003058555A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265309A (zh) * 2008-12-23 2011-11-30 想象技术有限公司 基于图块的3d计算机图形系统中的显示列表控制流分组
CN102654921A (zh) * 2011-03-03 2012-09-05 福建星网视易信息系统有限公司 用于对象管理的三维图形引擎
CN102654922A (zh) * 2011-03-03 2012-09-05 福建星网视易信息系统有限公司 消息管理引擎
CN105825469A (zh) * 2015-01-27 2016-08-03 想象技术有限公司 在图形处理系统中处理具有未解析片段的基元
US9665971B2 (en) 2011-12-14 2017-05-30 Intel Corporation Techniques for multiple pass rendering
CN109118570A (zh) * 2012-09-06 2019-01-01 想象技术有限公司 用于部分帧缓冲区更新的系统和方法
CN110704555A (zh) * 2019-08-20 2020-01-17 浙江工业大学 一种基于gis的数据分地区处理方法

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747658B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Automatic memory management for zone rendering
US8223157B1 (en) * 2003-12-31 2012-07-17 Ziilabs Inc., Ltd. Stochastic super sampling or automatic accumulation buffering
US20060074872A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Adaptive database buffer memory management using dynamic SQL statement cache statistics
US7694097B2 (en) * 2004-11-15 2010-04-06 International Business Machines Corporation System and method for managing an electronic storage volume
US20060153185A1 (en) * 2004-12-28 2006-07-13 Intel Corporation Method and apparatus for dynamically changing ring size in network processing
US20060230428A1 (en) * 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
US7764289B2 (en) * 2005-04-22 2010-07-27 Apple Inc. Methods and systems for processing objects in memory
US7280107B2 (en) 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
US9060101B2 (en) * 2005-07-08 2015-06-16 Activevideo Networks, Inc. Video game system having an infinite playing field
WO2007008356A1 (en) * 2005-07-08 2007-01-18 Tag Networks, Inc. Video game system using pre-encoded macro-blocks
US8118676B2 (en) * 2005-07-08 2012-02-21 Activevideo Networks, Inc. Video game system using pre-encoded macro-blocks
US9061206B2 (en) * 2005-07-08 2015-06-23 Activevideo Networks, Inc. Video game system using pre-generated motion vectors
US8284842B2 (en) 2005-07-08 2012-10-09 Activevideo Networks, Inc. Video game system using pre-encoded macro-blocks and a reference grid
US8270439B2 (en) * 2005-07-08 2012-09-18 Activevideo Networks, Inc. Video game system using pre-encoded digital audio mixing
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US8694697B1 (en) * 2006-04-27 2014-04-08 Nvidia Corporation Rescindable instruction dispatcher
US8085272B1 (en) * 2006-11-03 2011-12-27 Nvidia Corporation Method and system for improving data coherency in a parallel rendering system
US8139069B1 (en) 2006-11-03 2012-03-20 Nvidia Corporation Method and system for improving data coherency in a parallel rendering system
WO2008088772A2 (en) 2007-01-12 2008-07-24 Ictv, Inc. Mpeg objects and systems and methods for using mpeg objects
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US8031194B2 (en) * 2007-11-09 2011-10-04 Vivante Corporation Intelligent configurable graphics bandwidth modulator
GB0723536D0 (en) * 2007-11-30 2008-01-09 Imagination Tech Ltd Multi-core geometry processing in a tile based rendering system
US8522242B2 (en) * 2007-12-31 2013-08-27 Intel Corporation Conditional batch buffer execution
US9075559B2 (en) 2009-02-27 2015-07-07 Nvidia Corporation Multiple graphics processing unit system and method
US9135675B2 (en) 2009-06-15 2015-09-15 Nvidia Corporation Multiple graphics processing unit display synchronization system and method
US8194862B2 (en) * 2009-07-31 2012-06-05 Activevideo Networks, Inc. Video game system with mixing of independent pre-encoded digital audio bitstreams
US20110063306A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation CO-PROCESSING TECHNIQUES ON HETEROGENEOUS GPUs INCLUDING IDENTIFYING ONE GPU AS A NON-GRAPHICS DEVICE
WO2012051528A2 (en) 2010-10-14 2012-04-19 Activevideo Networks, Inc. Streaming digital video between video devices using a cable television system
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
EP2695388B1 (en) 2011-04-07 2017-06-07 ActiveVideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
JP5910310B2 (ja) * 2012-05-22 2016-04-27 富士通株式会社 描画処理装置及び描画処理方法
KR102089471B1 (ko) 2012-11-30 2020-03-17 삼성전자주식회사 타일 기반 렌더링 방법 및 장치
US9064437B2 (en) 2012-12-07 2015-06-23 Intel Corporation Memory based semaphores
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9326047B2 (en) 2013-06-06 2016-04-26 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9818379B2 (en) 2013-08-08 2017-11-14 Nvidia Corporation Pixel data transmission over multiple pixel interfaces
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
KR102276909B1 (ko) 2014-12-09 2021-07-13 삼성전자주식회사 렌더링 방법 및 장치
US10248419B2 (en) * 2016-03-09 2019-04-02 International Business Machines Corporation In-memory/register vector radix sort
US10621158B2 (en) * 2017-08-07 2020-04-14 Seagate Technology Llc Transaction log tracking
WO2021012257A1 (en) * 2019-07-25 2021-01-28 Qualcomm Incorporated Methods and apparatus to facilitate a unified framework of post-processing for gaming

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917502A (en) 1995-12-06 1999-06-29 Intergraph Corporation Peer-to-peer parallel processing graphics accelerator
US6344852B1 (en) * 1999-03-17 2002-02-05 Nvidia Corporation Optimized system and method for binning of graphics data
US6380935B1 (en) 1999-03-17 2002-04-30 Nvidia Corporation circuit and method for processing render commands in a tile-based graphics system
US6396473B1 (en) * 1999-04-22 2002-05-28 Webtv Networks, Inc. Overlay graphics memory management method and apparatus
FR2797370B1 (fr) * 1999-07-19 2001-10-05 Sual E Procede et systeme pour afficher des images transmises a distance
AU1776001A (en) 1999-11-18 2001-05-30 Info Assets, Inc. Rendering image data
US6747658B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Automatic memory management for zone rendering

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265309A (zh) * 2008-12-23 2011-11-30 想象技术有限公司 基于图块的3d计算机图形系统中的显示列表控制流分组
US9384584B2 (en) 2008-12-23 2016-07-05 Imagination Technologies Limited Display list control stream grouping in tile based 3D computer graphics system
CN102654921A (zh) * 2011-03-03 2012-09-05 福建星网视易信息系统有限公司 用于对象管理的三维图形引擎
CN102654922A (zh) * 2011-03-03 2012-09-05 福建星网视易信息系统有限公司 消息管理引擎
CN102654922B (zh) * 2011-03-03 2014-11-05 福建星网视易信息系统有限公司 消息管理引擎
US9665971B2 (en) 2011-12-14 2017-05-30 Intel Corporation Techniques for multiple pass rendering
CN109118570A (zh) * 2012-09-06 2019-01-01 想象技术有限公司 用于部分帧缓冲区更新的系统和方法
CN109118570B (zh) * 2012-09-06 2023-04-18 想象技术有限公司 存储像素图像数据的方法、计算机图形系统和介质
CN105825469A (zh) * 2015-01-27 2016-08-03 想象技术有限公司 在图形处理系统中处理具有未解析片段的基元
CN110704555A (zh) * 2019-08-20 2020-01-17 浙江工业大学 一种基于gis的数据分地区处理方法

Also Published As

Publication number Publication date
KR100575143B1 (ko) 2006-05-03
DE60236542D1 (de) 2010-07-08
US6747658B2 (en) 2004-06-08
AU2002359689A8 (en) 2003-07-24
CN1669055B (zh) 2011-05-25
WO2003058555A2 (en) 2003-07-17
AU2002359689A1 (en) 2003-07-24
WO2003058555A3 (en) 2004-02-12
TW200302437A (en) 2003-08-01
EP1461773A2 (en) 2004-09-29
JP4071196B2 (ja) 2008-04-02
US20040222998A1 (en) 2004-11-11
EP1461773B1 (en) 2010-05-26
US20030122836A1 (en) 2003-07-03
US6995773B2 (en) 2006-02-07
JP2005525617A (ja) 2005-08-25
ATE469409T1 (de) 2010-06-15
KR20040072696A (ko) 2004-08-18
TWI279737B (en) 2007-04-21

Similar Documents

Publication Publication Date Title
CN1669055B (zh) 用于渲染场景的装置和相关的自动存储器管理方法
CN1287330C (zh) 用于区带渲染的有效图形状态管理
CN1291355C (zh) 用于区域渲染的深度写禁止
CA2119220C (en) Simultaneous high resolution display within multiple virtual dos applications in a data processing system
JP2011129109A (ja) フレームバッファにおけるウィンドウ表示の形成
CN1329870C (zh) 任意形状图像的基于块的旋转
CN101048764A (zh) 具有前向进度位的存储器管理系统
US6999091B2 (en) Dual memory channel interleaving for graphics and video
US7295210B2 (en) Bin pointer and state caching apparatus and method
US20080055286A1 (en) Method And Apparatus For Displaying Bitmap Images
JP2010164972A (ja) 画像ドローイング方法及び装置
CN115775198A (zh) 多核gpu中的重叠几何形状处理
US7027060B2 (en) Method and apparatus for accelerating 2-D graphic data
US20200273142A1 (en) Bin resolve with concurrent rendering of a next bin
US20190369922A1 (en) Techniques for efficiently accessing values spanning slabs of memory
US20020101420A1 (en) Triangle shading method for a 3D graphic system
WO2003102869A2 (en) Device and method for memory reallocation with panning and scrolling area of display image
CN108629927A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110525

Termination date: 20171211

CF01 Termination of patent right due to non-payment of annual fee