CN103679785B - 用于部分帧缓冲区更新的系统和方法 - Google Patents

用于部分帧缓冲区更新的系统和方法 Download PDF

Info

Publication number
CN103679785B
CN103679785B CN201310401067.1A CN201310401067A CN103679785B CN 103679785 B CN103679785 B CN 103679785B CN 201310401067 A CN201310401067 A CN 201310401067A CN 103679785 B CN103679785 B CN 103679785B
Authority
CN
China
Prior art keywords
pixel
memory segments
region
pixel data
memory
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.)
Active
Application number
CN201310401067.1A
Other languages
English (en)
Other versions
CN103679785A (zh
Inventor
J·A·梅特卡夫
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Priority to CN201810935356.2A priority Critical patent/CN109118570B/zh
Publication of CN103679785A publication Critical patent/CN103679785A/zh
Application granted granted Critical
Publication of CN103679785B publication Critical patent/CN103679785B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明的多个方面包括一种像素源,该像素源产生了用于分成多个区域的一个被渲染表面的数据。一种映射识别出多个存储器区段,这些存储器区段存储了用于该表面的每个区域的像素数据。这种映射可以从一个先前被渲染表面中指向在对该渲染处理进行渲染的过程中未被改变的区域识别出存储了像素数据的存储器区段。此类改变的/未改变的状态是在逐区域的基础上进行跟踪的。可以为每个存储器区段维持一个计数器,以便跟踪多少个表面使用了存储在其中的像素数据。可以维持一个空闲存储器区段池。读取一个表面(如为了通过一个显示控制器来显示一个被渲染表面)包括:识别并读取这种映射以便识别存储了用于该表面的多个区域的像素数据的每个存储器区段、对其进行读取、并且更新用于被读取的这些存储器区段的计数器。

Description

用于部分帧缓冲区更新的系统和方法
背景技术
发明领域:
以下内容涉及图形处理、图形处理系统,如图形处理器单元(GPU),并且在示例具体方面涉及影像合成和图像生产技术。
相关领域:
用于存储等待被输出至显示器的数据的缓冲区通常被称为“帧缓冲区”,引发了显示一个帧时间序列中的一帧的概念,其中“帧”为一个完整的像素数据集合。在一些计算架构中,帧缓冲区还可以用作有待如被GPU进一步处理的数据源。
在这种情况下,GPU可以从帧缓冲区(例如,存储图像数据的存储器中的一个位置,如位图)上读取数据,并使用该数据和其他数据一起形成一张合成图像。然后该GPU将展现整个合成图像的数据写出至输出帧缓冲区。显示控制器可以从该输出帧缓冲区上读取该合成图像并引起显示该合成图像。因此,存储整个像素数据集以展现每个可显示帧。
作为一个更加具体的示例,可以设置一个常规渲染和显示系统以执行三倍缓冲方法,其中,预留了存储器的三个部分,每个部分能够保存一个全分辨率可显示帧(例如,缓冲区0、1和2),并且被安排在一条翻转链(flip chain)内。例如,图形处理器可以将有待显示的连续帧写到缓冲区0、1和2并从0重新开始。类似地,在再次返回读取缓冲区0之前,显示控制器读取缓冲区0、1和2。当缓冲区0、1和2中的任一个或多个之间像素数据相同时,在该像素数据出现的所有缓冲区内重复该像素数据。
概述
在根据本披露的实现方式中,展现多个渲染表面的数据(例如,有待显示的像素数据帧)括用于该渲染表面的表面区域和存储器区段之间的一个对应的映射集合。每个渲染表面可以被展现作为来自先前的表面的多个区域以及被确定为不同于该先前的表面的像素数据的像素数据区域的像素数据的组合。
作为示例,一种用于渲染的方法包括存储展现一个第一被渲染表面的数据,该第一被渲染表面包括多个存储用于该第一被渲染表面的对应区域的像素数据的存储器区段,以及这些区域与这些对应的存储器区段之间的映射。该方法还包括跟踪使用各存储器区段中的像素数据的多个被渲染表面。为了存储展现一个后续被渲染表面(该表面具有具有对应于该第一被渲染表面内的像素数据区域的像素数据区域),该方法包括确定该后续被渲染表面内哪些区域具有未从该第一参引表面改变的像素数据以及哪些区域具有不同的像素数据。对于带有相同像素数据的区域,用于该后续被渲染表面的映射被创建成包括一个指向与该第一表面相同的存储器区段的参引项。对于带有不同像素数据的区域,此类像素数据被写至从空闲区段池中获得的存储器区段,并且在该映射中提供了指向这些存储器区段的参引项。维持了存储用于该第二表面的像素数据的所有存储器表面的计数,这些计数可以包括对用于每个表面的计时器进行增值。
为了读取根据上述方法存储的表面,一种装置存取用于该表面的映射,以确定用于该表面的每个像素数据区域被存储在哪儿(例如,在通过具体的存储地址识别的存储器区段内)。该装置存取该像素数据并更新从那些存储器区段使用像素数据的那些表面的跟踪。带有像素数据的不再被任何表面使用的存储器区段可以被释放返回可用的空闲存储器区段池以接收用于进一步的被渲染表面的像素数据。
附图简要说明
本披露的各种特征和方面将从以下详细说明中变得更加明显,将结合附图阅读以下详细说明,其中:
图1描绘了系统的功能元件的概观,在该系统中可以实践所披露的方法和结构方面;
图2描绘了此处根据所披露的实施例的可以由一个或多个渲染表面构成的可显示帧的时间流程;
图3描绘了定义被分成多个区域的第一表面的数据的展示;
图4描绘了像素源以及像素汇的多个示例方面,该像素源渲染表面并存储存储器区段内的被渲染表面的区域以及产生区域到存储器区段的映射,该像素汇消耗该被渲染表面的区域;
图5描绘了一个第二表面的展示,包括与该第一表面一样的区域;
图6描绘了展现使用展现该第一表面的数据的区域的第二表面以及修改后的区域到存储器区段的映射的方面;
图7描绘了存储器区段中存储器表面区域的进一步的方面;
图8基于展现该第一表面的数据描绘了一种示例方法,该方法用于确定展现该第二表面的数据集合以及存储用于具有不同于该第一表面的像素数据的第二表面的区域的数据的存储器区段;
图9描绘了根据本披露的多个方面存取像素数据表面的示例过程,如用于产生可显示帧;
图10描绘了执行图9的过程中的示例数据流
图11描绘了在其中可以实践所披露的方面的系统的多个方面;以及
图12描绘了可以配置成执行本披露的多个方面的示例处理器的多个方面。
详细说明
许多常见的计算装置(如台式计算机、膝上型计算机、平板计算机或移动电话)包括一个可以产生用于显示的图形数据的图形子系统,如液晶显示器(LCD)或其他合适的显示技术。该显示器具有一个分辨率,该分辨率通常特征在于多个水平和竖直像素,如1080p显示器,其具有1920个水平像素(列)和1080个竖直像素(排)。刷新速率确定该显示器上显示的图像多长时间变化一次。该显示器上显示的每张独特的图像可以被认为是一个可显示帧。
在将图像数据存储在存储器内的背景下,将存储器表面概念化为一个平面,该平面具有根据一种图案分布在该平面上的多个像素位置。每个像素位置将具有被分配用于存储展现该像素的数据的存储量。因此,对于1080p显示器而言,该存储器表面将包括1920×1080像素,每个像素带有一定量被分配的存储空间,如4个字节。然而,此类存储器表面的物理实现方式可以在实现方式之间不同并且不必遵循该概念模型。在本披露的背景下,渲染表面被分成多个区域,并且每个区域在该表面内包含这些像素中的一些。例如,一个区域可以是一个8×8的正方形像素块、一个矩形、一个竖直或水平像素带等。更通常地,一个区域可以是任何形状,尽管希望该形状将是一个矩形,并且高度和宽度各自为一个或多个像素,并且典型地至少一个尺寸为多个像素。区域可以由不连续的像素形成,但为了简单性,本说明书描述了在像素区域为连续的假设下的示例实现方式。
可以基于系统架构考虑选定一个区域内的多个像素和一个区域的长度VS宽度。例如,设计目标可以是使存储页面大小与存储一个像素区域所需的存储量相匹配。然而,没有要求一个像素区域存储在存储器的一个连续部分内。相反,每个像素区域指向存储器表面内的其他像素区域将具有一个已知的相对位置,从而使得可以通过根据那些相对位置安排这些区域的像素来展现该存储器表面内的所有像素。同样地,普通技术人员将认识到一个表面内的那些像素区域各自为该表面内建立的像素的具体分组的一个逻辑结构。
在一些情况下,一个渲染表面全等于一个可显示帧,而在其他情况下,渲染表面可以是一个可显示帧的一部分,可以包括一个可显示帧和“屏幕外”像素,或者可以是有待被渲染和存储在存储器内的图像数据,或者两者都是。例如,像素数据可以被渲染至一个表面并且被存储用于用作纹理以及被显示。
图1描绘了根据本披露的系统3的实现方式的概念图。系统3包括一个像素源6和一个像素汇7,其分别起到生成和消耗像素数据的作用。像素源6可以从存储器10读取并写至存储器10。像素源6可以从存储器区段池12中读取并写入像素存储器区段(例如,如以上介绍的,写入和读取用于存储器表面的区域的数据)。池12可以用专用存储器实现,如嵌入在图形处理器中的存储器。这种存储器可以专用于这个目的,或者可以在需要时对其进行分配。池12还可以使用图形处理器私有的存储器或者在图形处理器和其他功能单元之间共享的存储器实现。存储器常驻控制元件(如池12中的空闲区域列表)还可以在嵌入式存储器中实现。实现方式可以嵌入池12的一部分以及存储器常驻控制元件。在示例中,区段池12可以是足够大的存储器以便以当前操作的显示分辨率存储像素数据的至少三个全帧,以便实现三倍缓冲。像素源6还可以从空闲区段列表14上读取,该空闲区段列表包括用于存储器区段的标识符,这些存储器区段可用于存储用于在被像素源6在任何表面上操作的像素数据区域。这样,如果像素源6使用来自空闲区段列表14的存储器区段,像素源6将用于该存储器区段的标识符从空闲区段列表14上清除。像素源6还可以从存储器10上读取和写入该存储器,以便更新存储器区段到表面区域的映射16。通过示例,可以用用于一个具体存储器表面的一个区域列表以及识别用于存储用于每个所列区域的像素数据的一个或多个存储器区段的信息来实现映射16。多个此类映射16可以存储在存储器10内,其中,每个映射与一个对应的表面相关联。
如以下解释的,当要使用或显示表面时,存取与该具体表面相关联的映射,以检索将像素数据存储在该表面内的存储器区段列表。如以下将要解释的,像素汇7使用来自映射16的一个选定的映射来识别有待存取的存储器区段,以便输出用于显示的一个具体表面(例如,以便产生一个可显示帧)。每个映射可以参引来自任何一个或多个不同表面的存储器区段,从而使得可以从不同的并且不连续的存储位置读取存储器区段。
在示例应用中,如图2中所描绘的,像素汇7包括一个输出一个可显示帧时间序列,其中,可显示帧20、21和21被形成为被输出用于在显示器25上显示。此操作与显示控制器的惯例操作相反,该操作可以被给予一个用于有待被显示的帧的起始点的位置,并且连续地从该起始点读取数据以输出帧用于显示。显示控制器还可以支持分散/集中操作。显示控制器还可以具有一个支持存储器的虚拟化的存储器管理单元(提供通过物理存储器的不同部分实现的虚拟存储器的一个连续区段)。通过进一步的对比,在本披露的实现方式中,存储在单个存储器区段内的像素数据可以被像素汇7用于形成多个用于显示的帧。例如,存储在给定的存储器区段的像素数据区域可以用于两个或三个连续的帧。
图3描绘了被分成多个区域110至114的表面105。每个区域具有定义数量的像素排和列,从而使得每个区域具有定义数量的像素。在水平和竖直方向上的多个区域由屏幕分辨率(用于固定区域大小)确定。可以为具体目标类型的显示器选定区域大小,并且基于以下考虑,如像素源6和像素汇7的特征、存储器接口特征以及其他特定实现方式标准。在一些实现方式中,表面105展现一系列表面中的一个表面,每个表面具有相同的分辨率和区域细分,从而使得该表面105内的每个像素(或像素区域)可以据说在该系列表面中的其他表面内具有相对应的像素(区域)。
图4描绘了图1的系统3的操作的多个方面,以便产生用于图3的表面105的像素数据。图4描绘了接收用于渲染像素表面的信息的像素源6,此类信息可以包括数据、设置和命令信息,如图元、纹理、照明信息、着色器等。像素源6的输出包括表面105的区域(例如,区域110至114)与存储器区段标识符(“参引项”)之间的映射127,存储这些输出以便产生用于表面105的所有区域的映射120。
生成用于多个区域的像素数据128并将其存储在来自池12的存储器区段内。从空闲区段列表14中识别从池12中被选定存储用于区域110至114的像素的区段。例如,存储地址可以被用作存储地址的区段标识符或部分。例如,可以使用32位或64位的存储地址。一个1080p帧具有207.36万个像素。对于64像素的区域,一个帧将具有32,400个区域,并且一组32位参引项将需要约130千字节的存储。另一种实现方式是识别一个用于存储器区段池的基存储地址,如64百万字节,其可以存储24或32位色(例如,1字节用于每个RGB以及一条阿尔法通道用于每个像素),并构建指示符作为与该基存储地址的偏移量。尽管逐字节定址64百万字节需要一个26位的地址空间,但每个区域具有一个256字节的容量(用于4字节像素)。因此,更低的8位将维持不变,并且18位可以用于每个指示符。另一种展现表面的方法的示例是识别先前表面并为每个被建立成包含不同于该先前表面的对应区域的像素数据区域提供该区域的外显识别以及一个存储用于该区域的像素数据的存储器区段。这些示例为说明性的并且不具有限制性。
在一种方法中,表面105展现一系列具有相同格式和分辨率的表面中的一个表面,从而使得展现映射120的数据可以为一系列预定义顺序下的参引项,如存储器参引项,并且不需要结合指向存储其像素信息的存储器区段的参引项来外显地识别每个区域。因此,像素汇107可以通过读取存储器区段(这些存储器区段存储用于该表面的每个区域的像素数据)来存取用于表面的像素数据;这些指向这些存储器区段的参引项的顺序隐含地定义像素数据区域的相对空间安排(如用于显示)。反过来,可以为每个区域内的像素数据的格式建立一个惯例。
结合将像素数据写入至所选定的存储器区段,计数13的集合被维持用于这些存储器区段,其如以下所解释的,跟踪有多少个表面将每个存储器区段用作一个像素数据源。
更新空闲区段列表14,以清除用于存储像素数据128的存储器区段。此示例示出了单独的空闲区段列表14,该空闲区段列表识别准备接收像素数据的空闲区段。然而,其他实现方式可以直接使用这些计数,并识别哪些存储器区段具有值为0的计数,以及选定有待被用于该基础上的存储器区段。
因此,图4描绘了映射120识别存储定义表面105的像素数据的一个存储器区段集合,并且共同地,映射120和该存储器区段集合展现表面105的被渲染像素数据。每个映射例如可以通过指针或存储地址来识别映射120。此类地址和指针可以被提供至像素汇7,该像素汇由此使用该被识别的映射确定从其上可以检索用于表面的像素数据的任何多个不同的存储器区段。因此,用于三倍缓冲情况的翻转链将包括指向三个映射的指针或存储地址序列。此方法容纳了通过从该序列上清除一个对应的指针或存储地址并对与存储用于该表面的像素数据的存储器区段相关联的计数进行减值来丢弃该序列中的表面之一。因此,如下所述,如果表面105被输出用于显示或用于进一步的处理,则存取映射120以识别存储用于表面105的像素数据并且然后从那些存储器区段上读取该像素数据。然而,在描述此类操作前,以下直接描述了展现进一步被渲染表面的数据的存储。
图5描绘了表面106作为一组像素数据区域,包括存在于表面105内的区域(即,这些区域内的像素数据与表面105的相应区域内的相同)。然而,表面106的一些区域不同于表面105,并且具体地,区域116、117和118不同。
图6描绘了映射120被复制到映射121,该映射120映射了用于表面105的像素数据区域所存储的位置。从空闲区段列表14上获得用于不同于表面105的每个像素数据区域的空闲存储器区段,并且像素数据被存储在那些存储器区段内。可以通过更新映射121来生成映射122,以便用新获得的现在存储用于表面106的区域的像素数据的存储器区段来替换用于存储用于表面105的像素数据的存储器区段。如所描绘的,现在区域116至118具有映射122中所列的相应的存储器区段参引项。
此外,如关于图7A所解释的,维持了用于存储器区段的计数13。图7A描绘了存储器区段池12,这些存储器区段共同存储用于被渲染表面的像素数据。现在,某些存储器区段存储用于表面105和用于表面106两者的像素数据,具体地,区域110和111内的像素数据相同并且存储此类数据的存储器区段(当写表面105时被填充)用于定义表面106。对计数13进行增值以反映用于那些存储器区段的数据现在用于定义两个表面。在一些实现方式中可以在专用的存储部分内维持计数;例如,为了区域大小的最大支持分辨率和最大粒度,被设计成能够三倍缓冲的处理器可以提供足够大的内存存储以容纳3深翻转链(2位计数器)。例如,在1080p显示器以及64像素区域中,约64k位可以被分配用于此类存储器。在一些情况下,可以将区域大小固定在该架构中。然而,最大分辨率可以是可改变的。而且,当用专用翻转链支持多个显示器或者在根据本披露的存储器内展现其他工作渲染表面时,将需要相应地调整此类存储器的容量。在一些示例中,存储器控制器可以分配预先确定的存储容量,用于存储多达预先确定数量的全分辨率帧。也可以在此类存储器中使用高速缓存技术。
图7B描绘了一个示例,其中,每个存储器区段可以由多个可能位于不连续的存储器区域内的部分组成;具体地,存储用于区域116的像素数据的区段被描绘成由部分116A至116C组成。
图8根据本披露描绘了一种用于存储用于被渲染表面的像素数据的示例方法。图8描绘了接收205源数据以便在渲染的表面时产生像素数据,以及产生207此类像素数据。在一些实现方式中,可以在以上如被描述用于表面105和106的那些区域中产生该像素数据。如果该像素数据没被产生或另外被分成多个区域,则该像素数据被分成209多个区域。在211处,对是否用来自之前被渲染表面的数据展现该被渲染表面作出决定。通常,当正在被渲染的表面的像素数据区域与之前所渲染的表面相同时,则来自之前所渲染的表面的区域可以用于定义正在被渲染的表面,并且如以上所介绍的,复制(213)用于先前的表面的映射(例如,映射120),并且对于正在被渲染的表面的每个区域而言,对该像素数据是否与该先前的表面的相应区域相同或不同做出确定(215)。如果用于该区域的像素数据没有变化(217),则用用于该存储器区段(将用于该未改变的区域的像素数据存储在该存储器区段内)的指示符更新(231)用于被渲染表面的映射,以及在232处,更新计数13。
如果该区域内的像素数据已经变化,则在225处,存储器区段被识别(如来自空闲区段列表14)并用于写入(227)用于该区域的被渲染像素数据。在229处,更新用于正在被渲染的表面的映射以使该区域与存储用于该区域的像素数据的存储器区段相关。在230处,更新计数13。
在各情况下,可以向前推进(233)至有待考虑的后续区域。通过循环回215所描绘的,可以根据上述流程处理正在被渲染的表面的每个区域,以便考虑该后续区域。在多倍缓冲(例如,三倍缓冲)的背景下,为了丢弃这些表面之一,从一个序列和用于存储该被丢弃的表面内的像素数据区域的存储器区段的计数上清除指向用于该表面的映射的存储地址或指针。
然而,如果在定义有待被渲染的表面时,不使用用于先前表面的像素数据,则在219处,获得用于存储像素区域的存储器区段,在221处,用于多个区域的像素数据被写入至相应的存储器区段,以及在223处,创建这些区域和这些存储器区段之间的映射。
因此,图8描绘了对于正在被渲染的给定表面而言(或者,更通常地,对于有待通过所存储的像素数据展现的表面而言),可以使用存储用于现有表面的区域的像素数据的存储器区段来展现该表面,其中存储了不同于该现有表面的像素数据以及带有说明可以在哪儿找到每个像素数据区域的映射。在这些示例中,用于一个现有表面的像素数据区域用于定义正在被渲染的表面;然而,在其他实现方式中,可以使用来自多个现有表面的像素数据。
可以执行各种方法来确定与现有表面的相应区域相比给定的区域是否包括不同的像素数据。在一个示例中,可以创建并且存储相应区域内的像素数据的循环冗余校验(CRC)或散列。可以产生用于后续表面的区域的像素数据和CRC。可以比较这些CRC,以及如果其不匹配,则确定这些区域是不同的。在另一个示例中,可以进行逐像素比较,如在硬件XOR单元中。仍然可以执行其他试探法。例如,可以有先验地确定是否保证表面的给定区域不是不同的方法。例如,在合成两个表面的背景下(例如,当使用户界面叠加在背景上时,如图像),该用户界面可以具有已知的边界,从而使得这些已知边界外的像素区域将不会改变。例如,应用程序编程界面调用可以具有关于受该调用影响的表面的边界的信息,如glscissor()调用,这将允许排除受这种界面调用影响的像素数据区域。
在使用分片(tiling)方法的渲染架构的具体背景下,其中,一起处理被发现存在于一片屏幕空间内的几何体(而不是按正确的提交顺序处理该几何体,不管几何体的每个元件被映射到屏幕空间哪里)。在一个示例中,当像素源正在产生用于一系列表面的像素数据时,当那些表面被组织成多个分片时,在该像素源写入该像素数据前,该像素源在打算存储用于每个分片的像素数据的存储位置上获得一个写锁。在产生该像素数据的过程中,该像素源或该系统内的另一个元件将像素数据写入用于任何具有不同于之前被渲染表面内的相应分片的像素数据的对应存储位置。因此,通过该像素源获得该写锁是对像素汇的一种指示,指示已经更新并且需要按顺序读取该具体分片内的像素数据,以汇编该表面(例如,用于显示)。然而,对于其他该像素源没有为其获得写锁的存储位置,像素汇可以使用该信息推断该像素数据与之前被渲染表面相同并且将为来自该之前被渲染表面的相应分片的那些分片获得像素数据。
在一种实现方式中,可以为整个表面预先分配一个存储位置集合,但只用用于具有已改变像素数据的分片的像素数据填充。作为这种分配的副产物,可以建立分片和存储位置之间的对应关系并被一个或多个像素源和一个或多个像素汇参引。在另一种实现方式中,不预先分配用于一个帧的所有分片的存储位置;可以根据需要分配存储位置。为了解释可变分片写入要求和分配的可变等待时间,可以维持一个预先分配的存储位置子集(例如,可以维持4个、8个或16个位置)。在该分配过程中,维持边带数据,该边带数据识别哪个分片的像素数据被存储在每个位置上。在后面的实现方式中,为用于所识别的分片的像素数据分配存储器的事实是对一个或多个像素汇的一种指示,指示已经更新用于该分片的像素数据。
以上描述示出了像素源如何可以用保存读取和写入存储宽带方式生成描述被渲染表面的数据以及如何可以总体提高操作(如合成操作)效率。例如,可以合成一个输出帧的整个区域,或者仅已知具有某些修改可能性的区域。作为示例,在渲染表面或表面的一部分的过程中,可以维持影响每个像素的合成数据(例如,深度分类和混合操作)。在合成过程中,如深度分类过程中(不具有半透明性),可以确定用于每个像素的一个图像数据源。例如,在开窗口环境中,确定像素是否将来源于给定的窗口或背景。对于每个区域而言,可以维持一个标记,该标记保留用于该区域内的像素的像素数据源的运行记录。如果发现任何像素不同于相应的像素,则可以标记包含该像素的区域,从而可以存储用于该区域的像素数据。在一些实现方式中,将会影响一个给定的像素或一个像素集合的那些图像部件在不同的时间可以是可供使用的。例如,在8×8的块中,指向用于每个像素的可见表面的参引项可以是可供使用的。在背景上合成窗口时,可以用对应的多对三角形图元(被映射到展现存储器内的窗口或背景的纹理上)展现该窗口和该背景。这些数据可以之前已经由处理器75或者由视频解码器70生成或者使得可以从一些其他来源获得这些数据。用于该窗口和该背景各自的图元在一定范围内可以具有标识符,以及硬件掩码可以确定一条像素线上的所有像素标识符在给定范围内是否具有一个标识符(例如,对每个像素ID的逐位掩码的输出进行与操作)。
在纹理化过程中还可以完成源识别,作为确定纹理源的副产物。在许多情况下,纹理化是一个逐像素过程,从而使的当对每个像素进行纹理化时,可以更新该源标记。对于这种源测试,实现方式可以具有提前退出;例如,如果关于参引图像已经确定任一像素或像素组需要更新,则不需要检查该分片中的剩余像素,因为将输出用于该整个分片的像素数据,即使有一个像素是不同的。
图9和图10用于解释用于存取根据本披露展现的像素数据的表面的示例过程。在305处,决定存取或输出表面(例如,图10中重新产生的表面105),例如,以便执行合成操作或输出、产生可显示帧。在307处,该过程包括选定和检索用于该表面的映射(例如,映射120)。在309处,使用这种映射识别存储用于该表面的像素数据的存储器区段。例如,参引映射120,识别用于区域110至114的存储器区段,以及在311处,从池12中检索用于这些区域的像素数据。在313处,对用于在311处读取的存储器区段的(计数器13的)每个计数器进行减值在315处,识别已经达到0的任何计数器(例如,用于存储用于区域112至114的像素数据的存储器区段的计数器)并将其释放返回空闲区段列表14。
如果正在读取该像素数据用于显示,则在319处,进一步的示例过程部分可以包括临时存储该像素数据,以及在320处,可以用适合用于显示的格式输出该像素数据(例如,如图10中所示)。显示控制器可以执行图9的过程;例如,像素汇7可以包括一个显示控制器。在其他示例中,图9的过程可以由一个处理器执行,如图形处理器,以便获得用于表面的像素数据以及使用该像素数据进行进一步的图形操作,并且仍然在其他实现方式中,图形处理器和显示控制器两者都可以执行根据图9的过程。
图11描绘了一种示例系统的多个元件,可以在该系统中实践所披露的多个方面。在图11中,用处理器75表示像素源6(来自图1),以及用显示控制器(85)表示像素汇7,尽管如以上所披露的,但处理器75也还可以起到像素汇的作用,而且除了处理器75外可以存在像素数据源。此外,视频解码器70以及存储器10可以通过总线20耦联到处理器75上。显示器25可以耦联到显示控制器85上。
用于处理75的API 50和驱动器52可以和软件如操作系统45和应用程序40一起被提供至界面处理器75。应用程序40可以检索输入35,以及产生用于渲染表面的数据、设置和命令。其他渲染输入可以包括加速结构66、纹理67、几何体68以及着色器代码69,可以通过驱动器52或通过应用程序40或者两者存取这些输入。操作系统45还可以接收来自用户界面30的输入,例如,该用户界面包括视觉UI元件31、键盘32以及鼠标33中的一个或多个。例如,应用程序40可以使用 中的一个或多个或者另一个合适的API与处理器75连接。驱动器52可以接收来自应用程序40的API调用,以及将这种调用转换成适用于处理器75的计算设置。
应用程序40可以在OS 45上运行,该OS可以提供允许在可供使用的屏幕空间内改变窗口的大小和移动窗口的API调用并且可以提供多种效果,如半透明性。同样地,开窗口过程47可以跟踪所有窗口和任何可用于显示的其他事项(如桌面上的图标、屏幕保护程序、背景壁纸等)的位置的尺寸。
应用程序40可以接收从UI元件生成的输入,通过示例包括UI元件31(例如,能够引起触摸输入的屏幕上菜单)、键盘32以及鼠标33。此类输入可以被OS 45处理并被引导至应用程序40。应用程序40还可以使用API与OS 45通信。OS 45可以发挥各种不同的通过这种API可供应用程序40使用的功能。
处理器75可以使用延迟着色方法来渲染表面,其中,延迟纹理和其他面向像素的操作,直到确定可见表面之后。可以在基于分片的渲染器内渲染表面(例如,表面105)的区域,在一个示例中,分片和区域之间存在1:1的对应关系。
显示控制器85读取使用映射识别的存储器区段,这些区段各自对应于一个可用于读取的表面。显示控制器85可以具有或控制可供使用的临时缓冲区,以便从所读取的存储器区段上汇编像素数据。在一些装置中,显示控制器85还可以能够执行如缩放、旋转、剪切功能以及多监视器操作。因此,本披露不暗示显示控制器85读取的像素数据必须被显示为无修改。一些实现方式可以提供一个显示控制器,该显示控制器根据本说明书运行,但是其可以控制常驻有显示器的永久性存储(例如,用于显示器的后背存储器,如LCD)。例如,针对一个具体的帧,这种显示控制器可以引起更新这种后背存储器的多个区域,同时针对该帧,该存储器的其他区域不变。
图12描绘了在某种背景下的处理器75的示例构造的多个方面。处理器75可以包括一个可编程计算集群156、一组协处理器157以及一个调度器155。这些单元中的每一个或其某一部分可以与高速缓存层级150通信,反过来,该高速缓存层级与存储器总线160通信。各种数据管理器可以设置有待在处理器75中调度和执行的计算;示例包括顶点数据管理器151、像素数据管理器152以及一个通用数据管理器153。主机接口158可以通过控制和总线161与处理器75通信。存储器总线160以及控制和寄存器总线161可以为图1的总线20的一部分。系统存储器接口162将存储器总线160连接到系统存储器层级164上。
图12中描绘的元件的每一个可以具有组成元件,为了清晰性目的,没有描绘这些组成元件。例如,可编程计算集群156可以具有多个计算集群,每个带有一个本地调度器,并且调度器155可以全局地在那些集群之间分配计算。协处理器157可以包括纹理协处理器或用于其他种类的可以有益地在固定功能硬件内被执行的算法(或部分这些算法)的协处理器,与在可编程集群156中的执行相反。例如,存储器10可以由多个不同的物理存储器组成,包括在图中没有外显地识别的工作存储器。例如,上述计数可以存储在处理器75的本地工作存储器内,该处理器可以具有维持这些计数的固定的或部分固定的功能硬件。
为了描述的清晰性,没有描述或抽象地描绘了常规元件。可以针对不同的实现方式有区别地执行所述功能性,从而使得不同的实现方式可以具有执行各种和不同组别功能性的元件。通过示例,可以在一个与被分配至计算线程以及用于其他目的存储器共享的存储器内实现存储像素数据的存储器。在一些实现方式中,可以有用于存储像素数据的专用视频存储器,而可以在一个或多个单独的存储器内提供用于应用程序和线程的工作存储器。这些存储器可以使用存储器层级的共同元件,如共享主存储器。所描绘的各种数据结构和数据类型还可以存在同一物理存储器内。这种数据源可以包括网络连接以及网络装置内的缓冲区。以上所披露的示例最直接地与以下情况相关:图形处理器,如3D图形处理器(其可以通过图形处理单元或被编程执行图形处理的通用处理器中的一个或多个实现)为一个像素源,以及显示控制器为一个像素汇。
在各实施例中,相对于图形处理单元,像素源可以包括一个视频解码器(例如,可以输出压缩视频流以及输出像素数据的表面用于显示的处理元件)和一个无线显示接收器。无线显示发送器可以是像素汇。在一些实现方式中,像素源和像素汇可以在同一系统内,或者在芯片上的同一系统或同一装置内,而在其他实现方式中,像素源和像素汇可以被一个或多个网络分开或临时地被分开,或者为两种情况的组合。例如,通过一次写入像素数据并在下一次读取该像素数据,图形处理器和视频解码器可以是像素源和像素汇两者。
如从本披露中将明显的,可以用硬件、软件、固件或它们的组合的形式实现所披露的一些部件和功能性。如果以固件和/或软件被实现,则这些功能可以作为机器可读介质上的一个或多个指令或代码被存储。在一个示例中,该介质为非瞬态的。示例包括一个带有数据结构编码的计算机可读介质和一个用计算机程序编码的计算机可读介质。其他种类的介质包括传输介质。非瞬态介质可以是任何可以被机器存取的有形介质。通过举例,但不限于,这种介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储装置,或任何其他可以被用来存储所希望的程序代码的介质,该程序代码为指令或数据结构的形式并且可以被机器存取。
为了示例硬件和软件的这种互换性,不同的示例部件、框图、模块、电路以及步骤已经在上文中就它们的功能方面而言进行了总体上进行了描述。这种功能作为硬件还是软件被实现取决于具体的应用以及总体系统强加的设计约束条件。熟练的业内人士可指向每一特定应用以不同方式实施所描述的功能,但这种实施决策不应被解释为导致偏离本披露的范围。
这些方面和特征的描述被提供成使本领域技术人员能够制作和使用这些系统、装置以及执行所披露的方法。各种修改对本领域技术人员而言将非常明显,并且此文件中所述的原理可以在不脱离本披露的精神或范围的情况下应用到其他方面上。因此,本说明书不旨在限制权利要求书。相反,权利要求书将被给予与在此披露的原理和新颖特征一致的内容。
关于示例过程,附图包括相对排序的过程部件,仅作为对理解本说明书的辅助。这种相对排序不是对过程部件的排序或安排的任何具体限制的隐含披露。通常,在不脱离本披露的范围的情况下,过程限制可以是顺序上互换的,并且权利要求书中的装置加功能并不旨在涵盖那些被描述为执行所列举的不仅包括结构等效物还包括等效结构的功能的结构。
进一步地,已经选定了部件和过程的某些细分,但根据本披露的这些实现方式并不被要求维持这些细分,以及可以有区别地分配或功能或对功能进行分组。例如,不同于、除了或少于此处识别的那些以外的部件内有区别地分配或执行这种功能性。相反,披露了所描述的特征和步骤,作为所附权利要求书的范围内的系统和方法的部件的示例。

Claims (6)

1.一种用所存储的数据来展现图形渲染输出的机器实施的方法,所述方法包括:
提供存储器区段池;
维持所述池的空闲存储器区段的空闲区段列表,所述空闲存储器区段可用于存储像素数据;
提供多个渲染表面,每个渲染表面包括像素图像数据的多个区域;以及
针对每个渲染表面:
确定所述多个区域中的哪些区域具有与来自先前的渲染表面的对应的相应区域的像素图像数据值不同的像素图像数据值以及所述多个区域中的哪些区域具有与所述先前的渲染表面的对应的相应区域中的值相同的像素图像数据值,其中用于所述先前的渲染表面的每个区域的像素数据被存储在所述池的相应的存储器区段之中;
从所述列表获得将被确定为不同于所述先前的渲染表面的像素数据的像素数据存储在内的空闲存储器区段,并且将所述不同的像素数据存储于其中;
针对所述渲染表面的所述区域而存储映射,所述映射包括指向存储了所述不同的像素数据的每个存储器区段的参引项,以及指向存储了被确定为与所述先前的渲染表面的对应区域相同的像素数据的每个存储器区段的参引项;
针对存储用于所述渲染表面的像素数据的每个存储器区段而更新相应的计数;
通过读取所述映射以识别存储用于所述渲染表面的像素数据的每个存储器区段、读取来自这些存储器区段的所述像素数据、以及更新每个存储器区段的所述相应的计数,来消耗所述渲染表面的像素数据;
其中维持所述空闲区段列表包括基于所述计数来确定哪些存储器区段不再存储用于任何渲染表面的像素数据并且将这些存储器区段返回所述空闲区段列表。
2.根据权利要求1所述的方法,其中指向存储器区段的所述参引项包括所述存储器区段的存储器地址。
3.一种计算机图形系统,包括:
存储器单元,被配置为维持用于存储像素图像数据值的存储器区段的池,其中每个存储器区段由相应的参引项识别;
空闲区段列表,所述空闲区段列表从所述池中标识可用于存储像素图像数据值的存储器区段;
像素数据源,所述像素数据源用于提供具有像素数据的多个区域的第一渲染表面,所述像素数据源被配置为:
从所述列表获得将所述第一渲染表面的像素图像数据值存储在内的存储器区段;
更新所述列表以从中清除所获得的存储器区段;
在所获得的存储器区段的相应存储器区段中存储用于每个区域的像素图像数据值,以及
存储所述第一渲染表面的每个区域到指向存储用于该区域的像素数据的所述存储器区段的相应参引项的映射;
更新每个存储器区段的相应计数;
渲染用于第二渲染表面的数据;
从所述列表获得将用于所述第二渲染表面的区域的像素图像数据值存储在内的存储器区段,所述第二渲染表面的这些区域的像素图像数据值不同于所述第一渲染表面的相应的对应区域的像素图像数据值;
在所获得的所述区段中存储所述不同的像素图像数据值;
更新存储用于所述第二渲染表面的像素图像数据值的每个存储器区段的所述相应计数;
更新所述列表以从中清除将用于所述第二渲染表面的像素图像数据值存储在内的存储器区段;
存储用于所述第二渲染表面的相应映射,所述映射包括指向存储用于所述第一渲染表面的区域的像素图像数据值的所述存储器区段的参引项和指向存储所述不同的像素图像数据的存储器区段的参引项,所述第一渲染表面的这些区域的像素图像数据值被确定为与用于所述第二渲染表面的对应区域的像素图像数据值相同;以及
像素数据汇,所述像素数据汇用于通过以下过程来读取所存储的用于所选择的渲染表面的像素图像数据值:
读取所述所选择的渲染表面的每个区域与指向存储用于该区域的像素图像数据值的存储器区段的参引项之间的映射,
从相应的存储器区段读取展现所述所选择的渲染表面的每个区域的数据,
使用所读取的所述数据,以及
更新被读取的所述存储器区段中的每个存储器区段的相应的计数,其中
所述存储器单元被适配以基于所述计数来确定哪些存储器区段不再用于存储用于任何渲染表面的像素图像数据值并且将这些存储器区段返回所述列表。
4.如权利要求3所述的计算机图形系统,其中所述像素数据源包括3D图形处理器以及视频编码器中的一个或多个。
5.如权利要求3所述的计算机图形系统,其中所述像素数据汇包括显示控制器。
6.根据权利要求3所述的计算机图形系统,其中指向存储器区段的所述参引项包括所述存储器区段的存储器地址。
CN201310401067.1A 2012-09-06 2013-09-05 用于部分帧缓冲区更新的系统和方法 Active CN103679785B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810935356.2A CN109118570B (zh) 2012-09-06 2013-09-05 存储像素图像数据的方法、计算机图形系统和介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261697785P 2012-09-06 2012-09-06
US61/697,785 2012-09-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810935356.2A Division CN109118570B (zh) 2012-09-06 2013-09-05 存储像素图像数据的方法、计算机图形系统和介质

Publications (2)

Publication Number Publication Date
CN103679785A CN103679785A (zh) 2014-03-26
CN103679785B true CN103679785B (zh) 2018-08-03

Family

ID=49486810

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810935356.2A Active CN109118570B (zh) 2012-09-06 2013-09-05 存储像素图像数据的方法、计算机图形系统和介质
CN201310401067.1A Active CN103679785B (zh) 2012-09-06 2013-09-05 用于部分帧缓冲区更新的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810935356.2A Active CN109118570B (zh) 2012-09-06 2013-09-05 存储像素图像数据的方法、计算机图形系统和介质

Country Status (4)

Country Link
US (2) US9672584B2 (zh)
CN (2) CN109118570B (zh)
DE (1) DE102013014846A1 (zh)
GB (1) GB2507851B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940686B2 (en) * 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
KR102317091B1 (ko) 2014-12-12 2021-10-25 삼성전자주식회사 영상 처리 장치 및 방법
US10163180B2 (en) * 2015-04-29 2018-12-25 Qualcomm Incorporated Adaptive memory address scanning based on surface format for graphics processing
KR20160131526A (ko) 2015-05-07 2016-11-16 삼성전자주식회사 시스템 온 칩, 상기 시스템 온 칩을 포함하는 디스플레이 시스템, 및 상기 디스플레이 시스템의 동작 방법
KR102531741B1 (ko) * 2016-01-12 2023-05-11 삼성전자 주식회사 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
KR102511363B1 (ko) * 2016-02-04 2023-03-17 삼성전자주식회사 디스플레이 장치 및 디스플레이 방법
US20170243322A1 (en) * 2016-02-19 2017-08-24 Remi Sigrist Multiple frame buffering for graphics processing
US10373286B2 (en) 2016-08-03 2019-08-06 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based rendering
US20180130443A1 (en) * 2016-11-04 2018-05-10 Nausheen Ansari Techniques for managing transmission and display of a display data stream
US10523956B2 (en) * 2016-11-16 2019-12-31 Citrix Systems, Inc. Multi-pixel caching scheme for lossless encoding
US10672367B2 (en) * 2017-07-03 2020-06-02 Arm Limited Providing data to a display in data processing systems
GB2575030B (en) * 2018-06-22 2020-10-21 Advanced Risc Mach Ltd Data processing systems
KR102423449B1 (ko) 2018-09-01 2022-07-21 삼성전자 주식회사 전자 장치 및 이를 이용한 화면 부분 업데이트 방법
CN109599135B (zh) * 2018-11-14 2021-02-09 西安翔腾微电子科技有限公司 Gpu帧缓冲区存储硬件、存储方法、存储系统和存储介质
CN110018759B (zh) * 2019-04-10 2021-01-12 Oppo广东移动通信有限公司 界面显示方法、装置、终端及存储介质
JP7120143B2 (ja) * 2019-04-22 2022-08-17 株式会社デンソー 車両用装置、車両用装置の制御方法

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB247115A (en) * 1925-09-30 1926-02-11 Ernst Kleinmann Shoulder straps for supporting ladies underwear
US4695883A (en) * 1985-10-24 1987-09-22 Concept Communications, Inc. Digital video compression system with variable digital filter
US5220312A (en) * 1989-09-29 1993-06-15 International Business Machines Corporation Pixel protection mechanism for mixed graphics/video display adaptors
US5353061A (en) * 1992-10-08 1994-10-04 International Business Machines Corporation System and method for frame-differencing video compression/decompression using perceptually-constant information and image analysis
US5586200A (en) * 1994-01-07 1996-12-17 Panasonic Technologies, Inc. Segmentation based image compression system
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US6072548A (en) * 1997-07-28 2000-06-06 Lsi Logic Corporation Video decoder dynamic memory allocation system and method allowing variable decoded image size
US6457034B1 (en) * 1999-11-02 2002-09-24 Ati International Srl Method and apparatus for accumulation buffering in the video graphics system
US6747658B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Automatic memory management for zone rendering
US6975322B2 (en) * 2002-03-12 2005-12-13 Sun Microsystems, Inc. Dynamically adjusting a number of rendering passes in a graphics system
US7224731B2 (en) * 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US20040008785A1 (en) * 2002-07-15 2004-01-15 Koninklijke Philips Electronics N.V. L-frames with both filtered and unfilterd regions for motion comensated temporal filtering in wavelet based coding
KR100506864B1 (ko) * 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
US6911983B2 (en) * 2003-03-12 2005-06-28 Nvidia Corporation Double-buffering of pixel data using copy-on-write semantics
US6911984B2 (en) * 2003-03-12 2005-06-28 Nvidia Corporation Desktop compositor using copy-on-write semantics
US8107535B2 (en) * 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
US7274370B2 (en) * 2003-12-18 2007-09-25 Apple Inc. Composite graphics rendered using multiple frame buffers
US7170526B1 (en) * 2004-01-26 2007-01-30 Sun Microsystems, Inc. Method and apparatus for redirecting the output of direct rendering graphics calls
US8036271B2 (en) * 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
GB0426170D0 (en) * 2004-11-29 2004-12-29 Falanx Microsystems As Processing of computer graphics
JP2007088922A (ja) * 2005-09-22 2007-04-05 Sanyo Electric Co Ltd 符号化装置と符号化方法
US8233535B2 (en) * 2005-11-18 2012-07-31 Apple Inc. Region-based processing of predicted pixels
US20070165042A1 (en) * 2005-12-26 2007-07-19 Seitaro Yagi Rendering apparatus which parallel-processes a plurality of pixels, and data transfer method
US20080002773A1 (en) * 2006-06-26 2008-01-03 Texas Instruments Incorporated Video decoded picture buffer
US8207972B2 (en) * 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
US20080222581A1 (en) * 2007-03-09 2008-09-11 Mips Technologies, Inc. Remote Interface for Managing the Design and Configuration of an Integrated Circuit Semiconductor Design
TWI357987B (en) * 2007-10-24 2012-02-11 Hannstar Display Corp A three-dimension image display device and a displ
US8120621B1 (en) * 2007-12-14 2012-02-21 Nvidia Corporation Method and system of measuring quantitative changes in display frame content for dynamically controlling a display refresh rate
US20090161766A1 (en) * 2007-12-21 2009-06-25 Novafora, Inc. System and Method for Processing Video Content Having Redundant Pixel Values
GB2461900B (en) * 2008-07-16 2012-11-07 Advanced Risc Mach Ltd Monitoring graphics processing
US8189666B2 (en) * 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5835879B2 (ja) * 2009-09-25 2015-12-24 アーム・リミテッド メモリからのデータの配列の読み込みを制御する方法および装置
US8659616B2 (en) * 2010-02-18 2014-02-25 Nvidia Corporation System, method, and computer program product for rendering pixels with at least one semi-transparent surface
US8493404B2 (en) * 2010-08-24 2013-07-23 Qualcomm Incorporated Pixel rendering on display
US9367927B2 (en) * 2011-07-13 2016-06-14 Nec Corporation Moving image region detection device

Also Published As

Publication number Publication date
CN109118570B (zh) 2023-04-18
US20140063030A1 (en) 2014-03-06
GB201315855D0 (en) 2013-10-23
GB2507851A (en) 2014-05-14
GB2507851B (en) 2017-05-17
US20170301057A1 (en) 2017-10-19
DE102013014846A1 (de) 2014-03-06
CN103679785A (zh) 2014-03-26
CN109118570A (zh) 2019-01-01
US9990692B2 (en) 2018-06-05
US9672584B2 (en) 2017-06-06

Similar Documents

Publication Publication Date Title
CN103679785B (zh) 用于部分帧缓冲区更新的系统和方法
US11748840B2 (en) Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
CN112085658B (zh) 用于非均匀帧缓冲器栅格化的装置和方法
JP5844485B2 (ja) グラフィックス処理システムにおけるメモリアクセス帯域幅をデスティネーションアルファ値に基づいて減少させるための技法
ES2820716T3 (es) Tubería de sombreadores con canales de datos compartidos
US9715750B2 (en) System and method for layering using tile-based renderers
KR102341267B1 (ko) 양안 시차 영상에 대한 렌더링 방법 및 장치
US10055883B2 (en) Frustum tests for sub-pixel shadows
US20090189909A1 (en) Graphics Processor having Unified Cache System
TW201423720A (zh) 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序
KR101609079B1 (ko) 그래픽 프로세싱 유닛에서의 명령 선별
US10163180B2 (en) Adaptive memory address scanning based on surface format for graphics processing
US11727632B2 (en) Shader binding management in ray tracing
CN105023234B (zh) 基于嵌入式系统存储优化的图形加速方法
KR102251444B1 (ko) 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 안티 에일리어싱 방법
CN117170883B (zh) 渲染显示的方法、装置、设备及存储介质
US20230326134A1 (en) Variable rate tessellation
CN118043842A (zh) 一种渲染格式选择方法及其相关设备
US11099685B2 (en) Selective touch sensor activation for power savings
CN117670641A (zh) 数据处理方法、装置、设备及存储介质
GB2607997A (en) A computer-implemented method and SDK for rapid rendering of object-oriented environments with enhanced interaction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant