CN104823220B - 用于图形处理的图形存储器加载掩模 - Google Patents

用于图形处理的图形存储器加载掩模 Download PDF

Info

Publication number
CN104823220B
CN104823220B CN201380061733.XA CN201380061733A CN104823220B CN 104823220 B CN104823220 B CN 104823220B CN 201380061733 A CN201380061733 A CN 201380061733A CN 104823220 B CN104823220 B CN 104823220B
Authority
CN
China
Prior art keywords
mask
pixel
gmem
pixel group
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201380061733.XA
Other languages
English (en)
Other versions
CN104823220A (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104823220A publication Critical patent/CN104823220A/zh
Application granted granted Critical
Publication of CN104823220B publication Critical patent/CN104823220B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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/001Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

本发明描述包含创建指示哪些像素群组不需要从图形存储器GMEM加载的掩模的系统及方法。所述掩模指示不需要从GMEM加载像素群组。所述系统及方法可进一步包含在屏幕上呈现平铺块。此情形可包含基于来自所述掩模的所述指示加载所述GMEM,及基于来自所述掩模的所述指示跳过从所述GMEM的加载。

Description

用于图形处理的图形存储器加载掩模
技术领域
本发明涉及用于图形处理的技术,且更具体来说,涉及用于存取图形存储器的技术。
背景技术
图形处理单元通常用以呈现二维(2D)或三维(3D)内容以供显示。对于可能具有受限制计算及存储器容量的一些装置(例如,移动装置),一次呈现整个显示屏是不可能的或可能效率低下。因此,此些装置一次可呈现显示屏的一部分。此过程被称作“分格”。在分格的情况下,例如可一次一个地处理显示器的被称作分格的每一部分,直到呈现整个显示器为止。
包含使用分格操作的那些单元的图形处理单元可用以绘制用户接口(UI)。UI的操作可包含例如在更新及呈现UI对象(例如,移动窗口)时复制屏幕周围的数据。这些对象可移动到所呈现帧内的不同位置。在这样做时,数据读取及写入可占据宝贵的处理循环或其它装置资源。从图形存储器(GMEM)读取及写入数据还可占据宝贵处理循环或其它宝贵装置资源。
发明内容
通常,处理用于显示到屏幕的视频数据可包含从主存储器到GMEM的加载、GMEM中的呈现及从GMEM到主存储器的回写。根据本发明的实例可避免到GMEM的不必要的加载。因此,对于其中例如像素尚未从其上一次所呈现的状况改变的状况的至少一部分,可以避免像素从主存储器到GMEM的加载。用于此些像素的数据可已经存储于主存储器中,且对于未改变的像素,重复这些步骤将仅为将相同数据回写到主存储器。
在根据本发明的实例中,可创建掩模,其指示哪一像素或哪些像素群组不需要被加载到GMEM。此情形可允许对于尚未从像素上一次所呈现的状况改变的像素,避免或跳过从主存储器到GMEM的加载、GMEM中的呈现及到主存储器的回写。如果不需要改变,那么对于所述像素或像素群组,可跳过GMEM加载。对于不使用深度缓冲器作为处理屏幕图像的深度的部分的应用,掩模可存储于深度缓冲器中。
在一个实例中,本发明描述一种方法,其包含创建掩模,所述掩模指示哪些像素群组不需要被加载到图形存储器(GMEM)。掩模指示不需要将像素群组加载到GMEM。所述方法可呈现图片的平铺块,包含基于来自掩模的指示加载GMEM及基于来自掩模的指示跳过从GMEM的加载。
在另一个实例中,本发明描述一种用于解码视频数据的装置,所述装置包含经配置以创建掩模的视频解码器,所述掩模指示哪些像素群组不需要被加载到GMEM。掩模指示不需要将像素群组加载到GMEM。所述装置可在屏幕上呈现平铺块,包含基于来自掩模的指示加载GMEM及基于来自掩模的指示跳过从GMEM的加载。
在另一个实例中,本发明描述一种装置,其包含用于创建掩模的装置,所述掩模指示哪些像素群组不需要被加载到GMEM。掩模指示不需要将像素群组加载到GMEM。所述装置还包含用于在屏幕上呈现平铺块的装置,包含用于基于来自掩模的指示加载GMEM的装置及用于基于来自掩模的指示跳过从GMEM的加载的装置。
在另一个实例中,本发明描述一种计算机程序产品。所述计算机程序产品包含上面存储有指令的计算机可读存储媒体,所述指令在执行时致使装置的一或多个处理器创建掩模,所述掩模指示哪些像素群组不需要被加载到GMEM。掩模指示不需要将像素群组加载到GMEM。所述指令进一步致使处理器在屏幕上呈现平铺块,包含基于来自掩模的指示加载GMEM及基于来自掩模的指示跳过从GMEM的加载。
随附图式及以下描述中陈述一或多个实例的细节。其它特征、目标及优点将从所述描述及图式以及权利要求书而显而易见。
附图说明
图1为说明可用以实施本发明的图形存储器加载掩模的实例计算装置的框图。
图2为说明根据本发明中所描述的一或多个实例的实例GPU及存储器结构的框图。
图3为说明基于平铺块的呈现(“分格”)架构中的帧的平铺块的概念图。
图4为说明根据本发明中所描述的一或多个实例的可实施图形处理管线的实例的图形处理单元(GPU)的实例的框图。
图5为说明根据本发明中所描述的一或多个实例的实例分格管线的框图。
图6为说明光栅化的实例的图。
图7为说明根据本发明中所描述的一或多个实例的实例方法的流程图。
具体实施方式
本发明通常涉及图形处理,且更具体来说,涉及数据到图形存储器(GMEM)的加载的操作的控制。因为将数据加载到GMEM可占据宝贵处理循环或其它宝贵装置资源,所以如果不需要此加载,那么跳过将数据加载到GMEM可为有利的。
除非已经由用以清除存储器的区域的“清除”命令或用以移动数据块的块传送(Blt)命令显式地写入到例如GMEM等资源,驱动程序(例如,图形驱动程序)便可在执行任何呈现命令(例如,绘制命令)之前将所有像素加载到GMEM中。清除及Blt命令将所呈现的区的范围给予驱动程序,且因此通知驱动程序不需要加载的区。并无其它操作经由装置驱动程序接口(DDI)给予驱动程序此暗示。实际上,应用程序将极经常地经由正常呈现命令(例如,绘制)写入每一像素。借助于清除及Blt命令,应用程序知道显示器的已被“触摸”的区域。在已对像素群组执行已知操作时触摸像素群组。举例来说,如果执行Blt致使每一像素为蓝色,那么触摸每一像素,且系统知道每一像素为蓝色。在另一个实例中,像素群组可形成例如三角形等基元,在光栅化期间,三角形的基元落在像素上时,触摸此像素群组。换句话说,像素将用以绘制基元。
因为应用程序知道其在Blt或清除命令之后“触摸”每一像素,所以其将不清除资源,因为在技术上其为浪费的呈现操作,且将使应用程序在大多数平台上运行得更慢。驱动程序当前不可能知道应用程序已呈现给每一像素,且因此必须将所有像素加载到GMEM中,此举为昂贵的操作。换句话说,其占据系统资源。在一些UI情形中,呈现时间的1/3可因将这些像素加载到GMEM中而被浪费。
在一个实例中,在其中例如像素尚未从其上一次所呈现的状况改变的状况下,对于一或多个像素可避免从主存储器到GMEM的加载、GMEM中的呈现及到主存储器的回写。这是因为这些未改变的像素的数据已经存储于主存储器中,且从一个时间到下一时间将不会改变。因为数据未改变,所以皆可跳过从主存储器到GMEM的加载、GMEM中的呈现及到主存储器的回写,因为在此处理之后,未改变的像素的存储于主存储器中的数据自身未改变。举例来说,何时已对像素或像素群组执行已知操作(例如,绘制)以使得像素的状态已知,且因此可确定是否需要改变像素。如果不需要改变,那么对于所述像素或像素群组,可跳过GMEM加载。因此,根据本发明的一个实例,可创建图形存储器加载掩模,其指示哪一或哪些像素不需要被加载到GMEM。此情形可允许对于尚未从其上一次所呈现的状况改变的像素,避免或跳过从主存储器到GMEM的加载、GMEM中的呈现及到主存储器的回写。
图1为说明可用以实施本文中所描述的图形存储器加载掩模的实例计算装置2的框图。计算装置2可包括个人计算机、桌上型计算机、膝上型计算机、计算机工作站、平板计算装置、视频游戏平台或控制台、无线通信装置(例如,移动电话、蜂窝式电话、卫星电话和/或移动电话手持机)、陆线电话、因特网电话、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA))、个人音乐播放器、视频播放器、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算机,或处理及/或显示图形数据的任何其它类型的装置。
如图1的实例中所说明,计算装置2包含用户输入接口4、CPU 6、存储器控制器8、系统存储器10、图形处理单元(GPU)12、GMEM 14、显示接口16、显示器18和总线20。用户输入接口4、CPU 6、存储器控制器8、GPU 12及显示接口16可使用总线20彼此通信。总线20可为多种总线结构中的任一者,例如第三代总线(例如,超传输总线或无限带宽总线)、第二代总线(例如,高级图形端口总线、外围组件互连(PCI)高速总线,或高级eXentisible接口(AXI)总线)或另一类型的总线或装置互连件。应注意,图1中展示的不同组件之间的总线及通信接口的特定配置仅是示范性的,且具有相同或不同组件的计算装置及/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2以致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可包含操作系统、字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用程序可包含指示CPU 6以致使向显示器18呈现图形数据的一或多个图形呈现指令。举例来说,软件可为不需要GPU 12使用深度缓冲器处理深度信息的UI。因此,深度缓冲器可用以实施根据本发明的技术的图形存储器加载掩模,如下文将更详细地论述。
在一些实例中,所述软件指令可符合图形应用编程接口(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、DirectXAPI、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形呈现指令,CPU 6可将一或多个图形呈现命令发出到GPU 12以致使GPU 12执行图形数据的呈现的一些或全部。在一些实例中,待呈现的图形数据可包含例如点、线、三角形、四边形、三角形带等图形基元的列表。
存储器控制器8促进数据进出系统存储器10的传递。举例来说,存储器控制器8可接收存储器读取及写入命令,且服务关于存储器系统10的此类命令以便为计算装置2中的组件提供存储器服务。存储器控制器8通信地耦合到系统存储器10。虽然存储器控制器8在图1的实例计算装置2中被说明为与CPU 6及系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的功能性中的一些或全部可实施于CPU 6及系统存储器10中的一或两者上。
系统存储器10可另外存储由计算装置2的其它组件使用及/或产生的信息。举例来说,系统存储器10可充当用于GPU 12的装置存储器且可存储将在GPU 12上操作的数据以及由GPU 12执行的操作而产生的数据。举例来说,系统存储器10可存储纹理缓冲器、深度缓冲器、模板缓冲器、顶点缓冲器、帧缓冲器或其类似者的任何组合。系统存储器10可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
GPU 12可经配置以执行图形操作以向显示器18呈现一或多个图形基元。因此,当在CPU 6上执行的软件应用程序中的一者需要图形处理时,CPU 6可向GPU 12提供图形命令及图形数据以用于向显示器18呈现。所述图形数据可包含(例如)绘制命令、状态信息、基元信息、纹理信息等。在一些情况下,GPU 12可内置有高度平行结构,所述高度平行结构提供复合图形相关操作的比CPU 6更有效的处理。举例来说,GPU 12可包含经配置而以并行方式对多个顶点或像素操作的多个处理元件。在一些情况下,GPU 12的高度并行性质允许GPU12比使用CPU 6直接将场景绘制到显示器18更快速地将图形图像(例如,GUI及二维(2D)及/或三维(3D)图形场景)绘制到显示器18上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中或可以其它方式并入经配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。
GPU 12可直接耦合到GMEM 14。因此,GPU 12可在不必使用总线20的情况下从GMEM14读取数据且将数据写入到GMEM 14。换句话说,GPU 12可使用本地存储装置而不是非本地存储器在本地处理数据。此允许GPU 12通过消除GPU 12经由总线20读取及写入数据的需要而以更有效的方式操作,其中经由总线操作可经历繁重的总线业务。GMEM 14可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
CPU 6及/或GPU 12可将呈现的图像数据存储在系统存储器10内所分配的帧缓冲器中。显示接口16可从帧缓冲器检索数据且配置显示器18以显示由经呈现图像数据表示的图像。在一些实例中,显示接口16可包含经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号的数/模转换器(DAC)。在其它实例中,显示接口16可将数字值直接传递到显示器18以进行处理。显示器18可包含监视器、电视、投影装置、液晶显示器(LCD)、等离子显示器面板、发光二极管(LED)阵列、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器18可集成于计算装置2内。举例来说,显示器18可为移动电话手持机的屏幕。或者,显示器18可为经由有线或无线通信链路而耦合到计算装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。
图2为说明根据本发明中所描述的一或多个实例的包含GPU 12、深度缓冲器22、GMEM 14及系统存储器10的计算装置2的实例系统或子系统136的框图。图2提供与可能功能连接相关的较多细节,所述功能连接也可在GPU 12及顶点缓冲器及GMEM 14之间进行。在实例中,GPU 12创建图形存储器加载掩模,其指示哪些像素群组不需要从GMEM 14加载。在一些实例中,深度缓冲器22可与GPU 12及/或其它组件在一芯片上。在其它实例中,深度缓冲器22可为单独缓冲器。
如本文中所描述,在实例中,可在分格遍次期间产生图形存储器加载掩模。图形存储器加载掩模指示何时需要GMEM 14加载及何时可跳过所述GMEM 14加载。换句话说,像素或像素群组何时需要GMEM 14加载及其何时不需要。在一些实例中,图形存储器加载掩模24可存储于深度缓冲器22中。在不以其它方式使用深度缓冲器22时可出现此情形。举例来说,在对于3D图形不需要深度缓冲器22时,其可用于其它目的,例如本文中所描述的那些目的。图形存储器加载掩模24指示在触摸像素群组时不需要从GMEM 14加载像素群组。在光栅化期间基元落在群组像素上时触摸群组像素,如下文关于图6所描述。换句话说,像素或像素群组何时将用以绘制基元。
在不同实例中,处理视频数据以用于显示到屏幕可包含从系统存储器10到GMEM14的加载、GMEM 14中的呈现及到系统存储器10的回写。根据本发明的实例可避免到GMEM14的不必要加载。因此,在其中例如像素尚未从其上一次所呈现的状况改变的状况下可避免从系统存储器10到GMEM 14的加载、GMEM 14中的呈现及到系统存储器10的回写。
在实例中,可创建图形存储器加载掩模24,其指示哪些像素群组不需要从GMEM 14加载以使得对于尚未从其上一次所呈现的状况改变的像素,可跳过从系统存储器10到GMEM14的加载、GMEM 14中的呈现及到系统存储器10的回写。对于不使用深度缓冲器22作为处理屏幕图像的深度的部分的应用程序,图形存储器加载掩模24可存储于深度缓冲器22中,如图4中所说明。在其它实例(例如使用用于深度信息的深度缓冲器22的那些实例)中,其它存储器可用以存储图形存储器加载掩模24。
在本发明的一个实例中,计算装置2的GPU 12可经配置以执行基于平铺块的呈现。基于平铺块的呈现(有时被称作分格)通过将帧隔断成较小部分(例如,矩形平铺块或“分格”)及单独地呈现这些部分中的每一者来呈现场景的一个帧。基于平铺块的呈现可用于其中极少专用图形存储器可用的应用程序,例如移动应用程序。
更确切地说,在不同实例中,基于平铺块的呈现可将例如显示器的表面分裂成“分格”。可个别地呈现每一分格,而非一次呈现整个显示器。在一些实例中,可由经划分成GMEM的总量的格式及呈现目标分辨率确定分格大小。换句话说,GMEM的大小可与分格的大小相关,以使得特定分格中的所有像素的信息可同时存储于GMEM中。每一分格的所有像素可存储于此缓冲器(即,GMEM)中。另外,GMEM可具有与GPU的能力匹配的高带宽。
图3为说明可与图1的计算装置2结合使用的基于平铺块的呈现架构中的帧的平铺块的概念图。可将帧32划分成多个平铺块,例如平铺块34。接着可在逐平铺块的基础上执行图形处理以呈现整个帧。
在根据本发明的技术的实例中,确定哪些像素尚未改变可为有益的。举例来说,何时已对像素或像素群组执行已知操作以使得像素的状态已知,且因此可确定是否需要改变像素。如果不需要改变,那么对于所述像素或像素群组可跳过GMEM加载。在处理平铺块34时跟踪此信息也可为必要的。在实例中,可创建图形存储器加载掩模24,其指示哪些像素群组不需要从GMEM加载,以使得对于尚未从其上一次所呈现的状况改变的像素可跳过从主存储器到GMEM的加载、GMEM中的呈现及到主存储器的回写。对于不使用深度缓冲器22作为处理屏幕图像的深度的部分的应用程序,图形存储器加载掩模24可存储于深度缓冲器22中。
图4为说明根据本发明中所描述的一或多个实例的可实施图形处理管线的实例的图形处理单元(GPU)的实例的框图。举例来说,GPU 12可实施用于使用深度缓冲器22作为图形存储器加载掩模24以避免到GMEM 14中的不必要数据复制的技术。在一些状况下,其它存储器位置可用作图形存储器加载掩模24。
图4说明可实施图形处理管线的实例GPU 12。图形处理管线包含执行如由执行于GPU 12上的软件或固件定义的功能,及由经硬接线以执行极特定功能的固定功能单元执行功能。在GPU 12上执行的软件或固件可被称为着色器,及所述着色器可在GPU 12的一或多个着色器核心上执行。着色器为用户提供功能灵活性,这是因为用户可设计所述着色器以按任何可想象的方式来执行所要任务。然而,固定功能单元经硬接线以用于固定功能单元执行任务的方式。因此,固定功能单元可不提供大量功能灵活性。
图4中说明的图形处理管线为实质上如由Direct3D 11定义的图形处理管线。在此实例中,GPU 12可执行以下各者中的一或多者:输入汇编程序级118、顶点着色器级120、外壳着色器级122、曲面细分级124、域着色器级126、几何着色器级128、光栅化器级131、像素着色器级132及输出合并级134。GPU 12可包含比那些所说明多的级,及在一些实例中,GPU12未必可包含所有所说明的级。而且,提供所述级的特定排序用于说明目的且不应被视为限制。举例来说,根据较旧DirectX规范定义的图形管线可不包含外壳着色器级、曲面细分级及域着色器级。几何着色器级也可是任选的。
在一些实例中,应用程序在CPU 6上的执行致使CPU 6产生多个基元,所述多个基元连接在一起以形成可视内容。基元的实例包含点、线、三角形、正方形或任何其它类型的多边形。CPU 6可由其相应顶点定义这些基元。举例来说,CPU 6可定义顶点的坐标及色值。坐标值可为3D坐标或2D坐标。
为了执行图形操作,GPU 12可实施图形处理管线。图形处理管线包含执行如由执行于GPU 12上的软件或固件定义的功能,及由经硬接线以执行极特定功能的固定功能单元执行功能。在GPU 12上执行的软件或固件可被称为着色器,及所述着色器可在GPU 12的一或多个着色器核心上执行。着色器为用户提供功能灵活性,这是因为用户可设计所述着色器以按任何可想象的方式来执行所要任务。然而,固定功能单元经硬接线以用于固定功能单元执行任务的方式。因此,固定功能单元可不提供大量功能灵活性。
图4中说明的图形处理管线为实质上如由Direct3D 11定义的图形处理管线。在此实例中,GPU 12可包含以下各者中的一或多者:输入汇编程序级118、顶点着色器级120、外壳着色器级122、曲面细分级124、域着色器级126、几何着色器级128、光栅化器级131、像素着色器级132及输出合并级134。GPU 112可包含比那些所说明多的级,及在一些实例中,GPU112未必可包含所有所说明的级。另外,出于说明目的提供所述级的特定次序,且不应将其视为限制性的。举例来说,根据较旧DirectX规范定义的图形管线可不包含外壳着色器状态、曲面细分状态及域着色器级。几何着色器级也可是任选的。
光栅化器级130从几何着色器级128接收基元,且将基元转换成像素以用于显示。举例来说,基元可被定义为指示基元的互连的向量,且可定义于独立于将显示图像的显示器的坐标空间中。光栅化器级130将这些向量转换成显示器坐标,且执行任何额外功能,例如移除经遮蔽的基元内的点。
像素着色器级132接收如由光栅化器级130输出的像素,且执行后处理以将色值指派给待显示的像素中的每一者。举例来说,像素着色器级132可接收存储于系统存储器10中的恒定值、存储于系统存储器10中的纹理数据及任何其它数据以产生例如色值等逐像素输出。像素着色器级132还可输出指示像素的不透明性的不透明度值。
输出合并级134可执行任何最终像素处理。举例来说,输出合并级134可利用深度信息以进一步确定是否应从显示移除像素中的任一者。输出合并级134还可执行混合操作以产生最终像素值。
输出合并级134可将最终像素值输出到通常位于系统存储器10内但可位于GPU 12内的帧缓冲器。显示器处理器(未图示)可从帧缓冲器检索像素值,且致使计算装置2的显示器(未图示)的像素相应地照明像素值以致使显示器显示图像。
图5为说明根据本发明中所描述的一或多个实例的实例分格管线的框图。GPU 12可执行分格管线。分格管线为图4中所示的完整呈现管线的简化版本。对于包含曲面细分级(即,HS/TS/DS)的图形管线及任选的几何着色器,分格管线160可包含分格顶点着色器162、分格外壳着色器164、分格曲面细分器166、分格域着色器168、任选的分格几何着色器170、分格光栅化器172及分格深度测试174。
分格顶点着色器162也可被称作分格着色器。分格着色器可为顶点着色器的经修改版本,其中唯一输出为顶点位置。通常由顶点着色器执行的所有参数导出可从分格着色器以及与其相关的任何计算移除。在实例中,顶点着色器162可将图形存储器加载掩模24写入到深度缓冲器22。举例来说,分格管线中的分格顶点着色器可经配置以使用本发明中所描述的技术创建图形存储器加载掩模24。或者,可修改分格管线中的分格顶点着色器以使用本发明中所描述的技术创建深度缓冲器22中的图形存储器加载掩模24。举例来说,如本文中所描述,可在分格遍次期间产生图形存储器加载掩模24。可由分格着色器162执行此遍次。图形存储器加载掩模24指示何时需要GMEM 14加载及何时可跳过所述GMEM 14加载。换句话说,像素或像素群组何时需要GMEM 14加载及其何时不需要。在一些实例中,分格顶点着色器162可将图形存储器加载掩模24存储于深度缓冲器22中。在不以其它方式使用深度缓冲器22时可出现此情形。举例来说,在对于3D图形不需要深度缓冲器22时,其可用于其它目的,例如本文中所描述的那些目的。
从由分格顶点着色器162输出的顶点,分格外壳着色器64、分格曲面细分器166及分格域着色器在启用曲面细分的情境中以与图4的曲面细分管线相同的方式产生曲面细分输出基元。分格外壳着色器164及分格曲面细分器166可相对于图4的曲面细分管线中的对应级优化。确切地说,分格外壳着色器164及分格曲面细分器166可经优化以仅计算位置相关变量。
如果对于完整呈现管线启用几何着色器,那么分格管线160还可包含分格几何着色器170,所述分格几何着色器从由分格曲面细分器产生的曲面细分输出基元产生额外输出基元。
分格光栅化器172产生在2D空间(即,像素)中的输出基元的低分辨率表示。每一像素表示最终图像中的像素区域(例如,4x4像素区域)。所产生的低分辨率像素可具有两个值:部分覆盖或完全覆盖。分格光栅化器172使用与正常光栅化级相同的剔除规则(人脸、平截头体等),且因此仅产生对于场景来说实际上可见的那些三角形。
分格遍次中的最终级为分格深度测试单元174(其也称为低分辨率Z测试)。在一些状况下,分格深度测试单元174确定从输出基元光栅化的像素在最终场景中可见。
一些3D光栅化管线利用“深度测试”来确定新处理的像素是否由先前呈现的像素遮蔽或在先前呈现的像素“下方”。举例来说,图4中说明的管线可执行此功能。深度测试可涉及存取深度缓冲器22,深度值存储到所述深度缓冲器中且在像素着色级132期间进行检查以确定新处理的像素是否由先前呈现的像素遮蔽。基本上,距固定起点(例如,相机或观察者视点)的任何可见像素距离作为深度值存储于深度缓冲器22中。随后,另一经处理的像素可试图占据屏幕上的相同位置。可读取先前呈现的像素的深度值,且将其与新处理的像素的值相比较。如果比较结果指示新像素更接近于起点,那么其被认为是可见的,且用新像素的深度值改写深度缓冲器22的先前深度值。新像素进一步由管线处理,且最终呈现于帧缓冲器中。另一方面,如果比较结果指示新像素距起点较远,那么其被认为是不可见的,且舍弃新像素,并维持深度缓冲器22的先前深度值。此过程在本文中被称作隐藏面移除(HSR)。在不使用3D图像的实例中,深度缓冲器22可用以提供其它功能性。举例来说,根据本发明的技术,深度缓冲器22可用以存储图形存储器加载掩模24。
在根据本发明的技术的一个实例中,对于例如UI、字处理器、电子数据表、财务程序及可不使用深度缓冲器22来处理2D或3D图像的其它程序等应用程序,驱动程序可为图形存储器加载掩模24分配深度缓冲器22中的空间。深度缓冲器22中的空间可使用可用的最低精度格式。换句话说,图形存储器加载掩模24可不需要深度缓冲器22的特定存储器位置中的位中的每一者。举例来说,1位可用于每一像素或像素群组以指示可需要或可不需要GMEM加载。通常,深度缓冲器22的每一存储位置将大于1位。在一些实例中,更多位可用以提供关于像素或像素群组的额外信息。举例来说,可使用额外位存储辅助信息。在另一个实例中,额外位可用于与深度测试或需要GMEM加载的指示相关或不相关的其它目的。此情形可需要使用读取改变写入方案来更新缓冲器中的位,以使得出于一个目的到缓冲器的写入不会无意地改变用于另一目的的任何位。
在分格遍次期间,实施本发明的技术的GPU及/或GPU驱动程序可修改分格顶点着色器,或致使GPU 12加载经修改分格顶点着色器,以使得其在处理顶点时输出特定“深度值”。然而,“深度值”在被存储到深度缓冲器22时实际上与对于特定像素或像素集合是否需要GMEM加载相关。所述值可为指示是否需要GMEM加载(例如,从主存储器到GMEM的加载)且实际上根本不是深度值的位。可使用用于每一存储位置的单个位存储此值。
在实例中,在从主存储器到GMEM的加载(其有时被称作尚未解决的遍次)期间,可启用对可能存储于深度缓冲器22中的图形存储器加载掩模24的存取,且可在执行呈现遍次(例如,执行图形管线)之前舍弃具有非零深度值的任何像素。换句话说,可拒绝或跳过非零深度值进行进一步图形管线处理,而非经由整个管线处理非零深度值以确定是否需要非零深度值。在从主存储器到GMEM的加载期间,需要将数据从系统存储器复制回到GMEM中。从主存储器到GMEM的这些加载可不利地影响性能,且避免尚未解决的条件可为合乎需要的。
向显示器呈现可包含从主存储器到GMEM的加载、GMEM中的呈现及到主存储器的回写。在根据本发明的技术的实例中,可基于来自图形存储器加载掩模24的指示跳过此加载/呈现/写入序列。举例来说,一些系统、装置及方法可创建指示哪些像素群组不需要从GMEM加载的图形存储器加载掩模24。图形存储器加载掩模24指示在触摸像素群组时不需要从GMEM加载的像素群组。在已对像素群组执行已知操作时触摸像素群组。举例来说,如果执行Blt以致使每一像素为蓝色,那么触摸每一像素,且系统知道每一像素为蓝色。在另一个实例中,在光栅化期间基元落在像素群组上时像素群组可被视为触摸。换句话说,何时激活像素群组以绘制屏幕上的基元。关于图6详细地论述此概念。
实例方法可以软件实施。在此实例中,图形存储器加载掩模24可存储于深度缓冲器22中。举例来说,深度缓冲器22可用以在运行不处理3D图形的应用程序或不利用深度缓冲器22以用于深度测试的应用程序时存储图形存储器加载掩模24。在一些实例中,本发明的技术可应用于例如用户接口(UI)。这是因为UI通常不向屏幕呈现3D图形。因此,通常UI不使用深度缓冲器22,这允许驱动程序以非传统的方式使用其来存储图形存储器加载掩模24。可不呈现3D图形且可不使用深度缓冲器22以用于处理深度计算的其它实例应用程序可包含字处理器、电子数据表、浏览器及其它类型的程序。然而,将理解在一些状况下及不在其它状况下,不同程序可呈现3D图形,例如浏览器可呈现网页的图形,所述图形在一些状况下为3D,且在其它状况下为2D。在另一个实例中,专用硬件可用以积聚图形存储器加载掩模24。在一些实例中,实施这些技术的装置可处理包含1/2像素的增量的分格。
如上文所论述,在不使用深度缓冲器22的实例中,驱动程序可修改或加载分格顶点着色器(例如分格顶点着色器162)的经修改版本,其经配置以为图形存储器加载掩模24分配深度缓冲器22中的空间。图形存储器加载掩模24可使用可用的最低精度格式。因此,可使用比深度缓冲器22中的每一存储器位置中的位的总数少的位。举例来说,1位可用于每一像素或像素群组以指示可需要或可不需要GMEM 14加载。在实例中,深度缓冲器22的存储器位置的特定位中的二进制“0”可指示GMEM 14加载不是必要的,而深度缓冲器22的存储器位置的特定位中的二进制“1”可指示GMEM 14加载为必要的。将理解深度缓冲器22中的存储器位置通常大于一位。举例来说,深度缓冲器22可为8位、16位、24位、32位、64位等,但一些系统可不使用8位,这是归因于由如此少的位提供的受限制精度。在使用深度缓冲器22以用于图形存储器加载掩模24时,通常不需要8位、16位、32位等。而是,通常可存在可存储于单个位中的两种可能性,需要GMEM 14加载或不需要GMEM 14加载。因此,在许多实例中,可使用深度缓冲器22的每一存储器位置中的单个位。在其它实例中,多个位可用以存储额外信息。举例来说,可结合较低精度深度缓冲器使用一个位使用这些技术处理3D图像。此情形可需要使用读取改变写入方案来更新缓冲器中的位,以使得出于一个目的到缓冲器的写入不会无意地改变用于另一目的的任何位。
通常,在处理UI或其它2D屏幕时,可跳过分格遍次,因为需要显示的图像当相比于3D图像时通常并不特别复杂。然而,根据本发明的技术,分格遍次可用以产生图形存储器加载掩模24。举例来说,顶点着色器级120可经配置以使得在此分格遍次期间,其在处理顶点时输出特定值。值可指示是否需要GMEM 14加载或是否不需要GMEM 14加载。此值接着可存储到深度缓冲器22。另外,此分格遍次经由待显示的数据提供第一遍次,且允许预处理此数据以确定哪些(如果存在的话)像素已改变及哪些尚未改变。在分格遍次期间,实例系统可确定其特定基元,例如,三角形在分格中可见或在分格中不可见。因此,可跳过用于不可见的基元的信息。
然而,在本文中所描述的实例系统及方法中,分格遍次可运行于UI上以产生图形存储器加载掩模24。在分格遍次期间在确定改变及未改变的像素时,系统可确定像素或群组的像素的GMEM 14加载的需要。如果像素或像素群组并未改变,那么不需要GMEM14加载。如果像素或像素群组改变,那么可需要GMEM 14加载。
在分格遍次期间产生的与特定像素或像素群组的GMEM 14加载相关的数据可存储于图形存储器加载掩模24中。图形存储器加载掩模24可存储于深度缓冲器22中。因此,在分格遍次之后,在呈现遍次期间,可读取深度缓冲器22以确定何时需要GMEM 14加载。因此,在需要时可加载GMEM 14。然而,在不需要此加载时,可跳过GMEM 14加载。
根据本发明的技术,在从主存储器到GMEM的加载期间可启用对深度缓冲器22的存取。换句话说,可从深度缓冲器22读取数据。根据本发明的技术,数据将不为真深度数据,但例如可为指示对于特定像素是否需要到GMEM的加载的每一存储器位置中的个别位。举例来说,如果二进制“0”用以指示需要GMEM加载,且二进制“1”用以指示不需要GMEM加载,那么具有非零深度值的任何像素将在像素着色器级132执行之前被舍弃。换句话说,可拒绝或跳过非零深度值进行进一步图形管线处理,而非经由整个管线处理非零深度值以确定是否需要非零深度值。
图6为说明光栅化的实例的概念图。光栅化(有时拼写为光栅化(rasterization))为获取以向量图形格式(形状)描述的图像及将图像转换成光栅图像(像素或点)以用于输出于视频显示器或打印机上或用于以位图文件格式存储的任务。
现参看图6,说明上覆于表示像素302的一系列正方形上的三角形300。三角形300的图像可以向量图形格式(形状)描述。如图6中所说明,可使用各种像素304以在视频显示器或打印机上输出三角形的图像,或用于例如在将图像转换成光栅图像(像素或点)以用于输出之后以位图文件格式存储。说明表示三角形300所需要的像素304的唯一子集以使得底层向量图形格式三角形300可见。将理解本申请案的图可以光栅化格式打印或呈现。尽管如此,三角形300意欲表示向量图形格式。
如本文中所描述,一些视频系统可创建图形存储器加载掩模24,其指示哪些像素群组不需要从GMEM 14加载。图形存储器加载掩模24可指示在已对像素群组执行已知操作时不需要从GMEM 14加载像素群组,以使得像素的状态已知,且因此可确定是否需要改变像素。图6说明已对像素执行已知操作以使得像素的状态已知且因此可确定是否需要改变像素的实例。像素304为经绘制的像素的实例。换句话说,在从世界坐标(例如,向量形状)到像素的各种变换之后,特定像素304得以光栅化,例如,将呈现这些像素304。绘制像素群组304,因为在光栅化期间基元(三角形300)落在像素群组304上。换句话说,像素群组304为将用以在屏幕上所述三角形的像素。
然而,在一些状况下,即使触摸像素,仍可能不需要从GMEM 14加载所述像素。举例来说,可能不需要加载GMEM 14,因为像素群组尚未改变。
图6的三角形302可经呈现为屏幕上的平铺块的部分。此情形可包含基于来自图形存储器加载掩模24的指示加载GMEM 14及基于来自图形存储器加载掩模24的指示跳过从GMEM 14的加载。举例来说,对于未改变的像素可跳过GMEM 14加载。对于可见且已改变的像素,通常将不跳过加载,这是因为例如对含有像素的特定平铺块的上一图形处理操作。
在不同实例中,可产生图形存储器加载掩模24以指示何时需要及不需要这些GMEM14加载。指示对于像素306需要GMEM加载的此图形存储器加载掩模24在其不以其它方式在使用中(例如对于确实使用深度的UI)时可存储于深度缓冲器22中。在分格遍次期间处理306处的不透明像素时,可将位写入到深度缓冲器22,所述位指示如果例如像素尚未从其上一次处理的状况改变,那么不需要GMEM 14加载。在分格遍次期间处理已改变的像素时,可将位写入到深度缓冲器22,指示需要GMEM 14加载。
图7为说明用于使用深度缓冲器22作为图形存储器加载掩模24以避免到GMEM 14中的不必要数据复制的实例方法的流程图。在实例中,GPU 12可确定是否使用深度缓冲器22(400)。可进行此情形以确定是否可将图形存储器加载掩模24保存到深度缓冲器22。在一些实例中,如果深度缓冲器是在使用中,那么可不使用这些技术。在其它实例中,可将图形存储器加载掩模24存储到其它存储器。在一些状况下,例如如果深度缓冲器不用以存储图形存储器加载掩模24,那么可跳过此步骤。
GPU 12可基于改变/未改变的信息产生图形存储器加载掩模24(402)。在此实例中,GPU 12可创建指示哪些像素群组不需要被加载到GMEM 14的图形存储器加载掩模24。在一些实例中,GPU可将图形存储器加载掩模24保存到深度缓冲器22(404)。此情形可在不以其它方式使用深度缓冲器22时出现。举例来说,在对于3D图形不需要深度缓冲器22时,其可用于其它目的,例如本文中所描述的那些目的。在其它实例中,可将图形存储器加载掩模24保存到其它存储器位置(404)。例如在由用于3D呈现的应用程序使用深度缓冲器时可需要此情形。
图形存储器加载掩模24可指示在像素群组具有已对其执行的已知操作时不需要被加载到GMEM 14的所述像素群组,且像素的状态已知且可确定是否需要改变像素。举例来说,在光栅化期间基元落在像素群组上时,且必须绘制所述基元,因为其在通常将需要到GMEM 14的加载之前尚未绘制。因此,深度缓冲器22充当“加载或不加载掩模”。在实例中,在分格遍次中处理像素且确定像素尚未改变时,可将位写入到深度缓冲器22,其指示不需要GMEM 14加载。在分格遍次中处理已改变的像素时,可将位写入到深度缓冲器22,其指示需要GMEM 14加载。可在初始分格遍次期间产生此信息。举例来说,初始分格遍次可用以确定哪一特定基元(例如三角形)在分格中可见或在分格中看不见。因此,可跳过用于不可见的基元的信息。在一些系统中,UI可不包含分格遍次。这是因为UI中的几何形状可为简单的。因此,处理可更为简单。然而,在本文中所描述的实例系统及方法中,可在UI上执行分格遍次以产生图形存储器加载掩模24。因此,在分格遍次期间,可确定改变及未改变的像素。如果像素或像素群组并未改变,那么不需要GMEM 14加载。如果像素或像素群组改变,那么需要GMEM 14加载。在此状况下,分格遍次可包含用以确定已对哪些像素执行已知操作以使得像素的状态已知的一些处理。也可确定哪些像素改变。因此,可将位写入到深度缓冲器22以指示触摸及改变像素,且将需要GMEM 14加载。因此,可一次一位地将掩模保存到深度缓冲器(404)。在分格遍次之后,在呈现遍次期间,可读取深度缓冲器22以确定何时需要GMEM 14加载(406)。
在实例中,图形处理还可在屏幕上呈现平铺块(408)。此呈现可包含基于来自图形存储器加载掩模24的指示加载GMEM 14及基于来自图形存储器加载掩模24的指示跳过从GMEM 14的加载(402)。
在实例中,图形处理可确定操作系统是否在使用深度缓冲器22。在深度缓冲器22不由操作系统使用时,图形处理器可将图形存储器加载掩模24保存到深度缓冲器22中。图形存储器加载掩模24可在呈现期间由图形处理器从深度缓冲器22进行读取以确定是否需要GMEM 14加载。
可使用本文中所描述的系统及方法处理各种大小像素群组,例如处理1乘1像素群组、2乘2像素群组、4乘4像素群组、16乘16像素群组、32乘32像素群组、64乘64像素群组、128乘128像素群组、256乘256像素群组,处理n乘n像素群组,其中n为1与256之间的整数,或处理m乘n像素群组,其中m及n为1与256之间的整数,m不等于n。
在一些状况下,屏幕上的一些像素可为不透明的,而其它像素可为半透明的。不透明像素阻挡屏幕上在其“下方”的任何对象。半透明像素不会阻挡在其下方的对象。而是,在不透明像素下方的对象在一定程度上仍然可见。因此,不透明对象的像素可与在其下方的像素混合,以使得在不透明像素下方的像素保持可见。像素的混合使GMEM 14加载成为必要。举例来说,可存在屏幕上的一个项目的数据。如果将半透明像素放置在此项目上,那么半透明像素及先前项目两者通常将皆为可见的。半透明像素可不为完全半透明的,且因此可影响其下方的像素。因此,像素可混合在一起。此混合将需要从GMEM 14的加载,因为需要来自多个像素或多个像素集合的数据。因此,在一些实例中,可不结合包含混合的平铺块使用本发明的技术。然而,在其它实例中,可在图形存储器加载掩模24中在逐像素的基础上跟踪混合以允许对于未混合像素避免不必要的GMEM加载,甚至是在混合帧内的一些像素时。
应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可用不同顺序执行、可添加、合并或全部省略(例如,实践所述技术并不需要所有的所描述动作或事件)。此外,在某些实施例中,可同时(例如,通过多线程处理、中断处理或多个处理器)而非顺序地执行动作或事件。
在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果用软件实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体(例如,数据存储媒体),或包含任何促进将计算机程序从一处传送到另一处(例如,根据通信协议)的媒体的通信媒体。以此方式,计算机可读媒体大体上可以对应于(1)非暂时形的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可包括计算机可读媒体。
借助于实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或任何其它可用来存储呈指令或数据结构的形式的所要程序代码并且可由计算机存取的媒体。而且,任何连接被恰当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么将同轴电缆、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是实际上针对非暂时性的有形存储媒体。如本文所使用,磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上文的组合也应包含在计算机可读媒体的范围内。
指令可以由一或多个处理器执行,所述一或多个处理器例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文所描述的功能性可以提供于经配置用于编码及解码的专用硬件及/或软件模块内,或者并入于组合编码解码器中。而且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或IC的集合(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元实现。相反地,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述各种实例。这些和其它实例在所附权利要求书的范围内。

Claims (38)

1.一种用于处理图形数据的方法,其包括:
创建指示像素群组是否需要被加载到图形存储器GMEM的掩模;
将所述掩模存储于深度缓冲器中,且
将像素群组从主存储器加载到所述GMEM中,其中,加载包括测试存储在所述深度缓冲器中的所述掩模以及将所述掩模指示的需要加载到所述GMEM的像素群组从主存储器加载到所述GMEM中;
其中,测试所述掩模包括启用深度测试函数以及使用所述深度测试函数对从所述深度缓冲器中读取的所述掩模进行深度测试;以及
其中,创建掩模包括确定应用程序是否使用所述深度缓冲器来处理深度信息,且仅在所述应用程序没有使用所述深度缓冲器来处理深度信息的情形下创建所述掩模。
2.根据权利要求1所述的方法,其中所述掩模指示在已对像素群组执行已知操作时不需要将所述像素群组加载到GMEM,以使得所述像素群组中的像素的状态已知,且所述像素群组并未从先前操作改变。
3.根据权利要求1所述的方法,其中所述应用程序处理2维图像。
4.根据权利要求1所述的方法,其进一步包括修改分格管线中的分格顶点着色器以创建存储在所述深度缓冲器中的所述掩模。
5.根据权利要求1所述的方法,其进一步包括使用分格管线中的分格顶点着色器创建存储在所述深度缓冲器中的所述掩模,所述顶点着色器确定何时已对所述像素群组执行已知操作以使得所述像素群组中的像素的状态已知,且所述顶点着色器确定所述像素群组并未从先前操作改变。
6.根据权利要求1所述的方法,其进一步包括在呈现期间从所述深度缓冲器读取所述掩模以确定是否需要GMEM加载。
7.根据权利要求1所述的方法,其进一步包括处理包含1/2像素的增量的分格。
8.根据权利要求1所述的方法,其中所述掩模包括每一像素掩模1位。
9.根据权利要求1所述的方法,其中所述掩模包括每一像素掩模2位。
10.根据权利要求1所述的方法,其中所述像素群组包括单个像素。
11.根据权利要求1所述的方法,其中,存储在所述深度缓冲器中的所述掩模中的非零值指示了不应被加载到所述GMEM中的像素群组。
12.一种用于处理图形数据的装置,所述装置包括:
图形存储器GMEM,其经配置以存储像素群组,以及
与所述GMEM通信的一个或更多个处理器,所述一个或更多个处理器经配置以:
创建指示像素群组是否需要被加载到所述GMEM的掩模;及
将所述掩模存储于深度缓冲器中,且
将像素群组从主存储器加载到所述GMEM中,其中,所述加载包括测试存储在所述深度缓冲器中的所述掩模以及将所述掩模指示的需要加载到所述GMEM的像素群组从主存储器加载到所述GMEM中;
其中,测试所述掩模包括启用深度测试函数以及使用所述深度测试函数对从所述深度缓冲器中读取的所述掩模进行深度测试;以及
其中,经配置以创建掩模的所述处理器中的一者还经配置以确定应用程序是否使用所述深度缓冲器来处理深度信息,且仅在所述应用程序没有使用所述深度缓冲器来处理深度信息的情形下创建所述掩模。
13.根据权利要求12所述的装置,其中所述掩模指示在已对像素群组执行已知操作时不需要将所述像素群组加载到GMEM,以使得所述像素群组中的像素的状态已知,且所述像素群组并未从先前操作改变。
14.根据权利要求12所述的装置,其中所述应用程序处理2维图像。
15.根据权利要求12所述的装置,其进一步包括用以创建存储在所述深度缓冲器中的所述掩模的在分格管线中的分格顶点着色器,所述顶点着色器确定何时已对所述像素群组执行已知操作以使得所述像素群组中的像素的状态已知,且所述顶点着色器确定所述像素群组并未从先前操作改变。
16.根据权利要求12所述的装置,其经进一步配置以在呈现期间从所述深度缓冲器读取所述掩模以确定是否需要GMEM加载。
17.根据权利要求12所述的装置,其中所述装置处理包含1/2像素的增量的分格。
18.根据权利要求12所述的装置,其中所述掩模包括每一像素掩模1位。
19.根据权利要求12所述的装置,其中所述掩模包括每一像素掩模2位。
20.根据权利要求12所述的装置,其中所述像素群组包括单个像素。
21.根据权利要求12所述的装置,其中,存储在所述深度缓冲器中的所述掩模中的非零值指示了不应被加载到所述GMEM中的像素群组。
22.一种用于处理图形数据的装置,其包括:
用于创建指示像素群组是否需要被加载到图形存储器GMEM的掩模的装置;用于将所述掩模存储于深度缓冲器中的装置,且
用于将像素群组从主存储器加载到所述GMEM中的装置,其中,所述用于加载的装置包括用于测试存储在所述深度缓冲器中的所述掩模的装置以及用于将所述掩模指示的需要加载到所述GMEM的像素群组从主存储器加载到所述GMEM中的装置;
其中,所述用于测试所述掩模的装置包括深度测试函数,其使用所述深度测试函数对从所述深度缓冲器中读取的所述掩模进行测试;以及
其中,所述用于创建掩模的装置确定应用程序是否使用所述深度缓冲器来处理深度信息,且仅在所述应用程序没有使用所述深度缓冲器来处理深度信息的情形下创建所述掩模。
23.根据权利要求22所述的装置,其中所述掩模指示在已对像素群组执行已知操作时不需要将所述像素群组加载到GMEM,以使得所述像素群组中的像素的状态已知,且所述像素群组并未从先前操作改变。
24.根据权利要求22所述的装置,其中所述应用程序处理2维图像。
25.根据权利要求22所述的装置,其中,用于创建掩模的装置包括用来创建存储在所述深度缓冲器中的所述掩模的分格顶点着色器,所述顶点着色器确定何时已对所述像素群组执行已知操作以使得所述像素群组中的像素的状态已知,且所述顶点着色器确定所述像素群组并未从先前操作改变。
26.根据权利要求22所述的装置,其中所述装置为用于处理包含1/2像素的增量的分格的装置。
27.根据权利要求22所述的装置,其中所述掩模包括每一像素掩模1位。
28.根据权利要求22所述的装置,其中所述掩模包括每一像素掩模2位。
29.根据权利要求22所述的装置,其中所述像素群组包括单个像素。
30.根据权利要求22所述的装置,其中,存储在所述深度缓冲器中的所述掩模中的非零值指示了不应被加载到所述GMEM中的像素群组。
31.一种计算机程序产品,其包括计算机可读存储媒体,所述计算机可读存储媒体具有存储在其上的指令,所述指令在执行时致使装置的一或多个处理器执行以下步骤:
创建指示像素群组是否需要被加载到图形存储器GMEM的掩模
将所述掩模存储于深度缓冲器中,且
将像素群组从主存储器加载到所述GMEM中,其中,加载包括测试存储在所述深度缓冲器中的所述掩模,以及将所述掩模指示的需要加载到所述GMEM的像素群组从主存储器加载到所述GMEM中;
其中,测试所述掩模包括启用深度测试函数,以及使用所述深度测试函数对从所述深度缓冲器中读取的所述掩模进行深度测试;以及
其中,创建掩模包括确定应用程序是否使用所述深度缓冲器来处理深度信息,且仅在所述应用程序没有使用所述深度缓冲器来处理深度信息的情形下创建所述掩模。
32.根据权利要求31所述的计算机程序产品,其中所述掩模指示在已对像素群组执行已知操作时不需要将所述像素群组加载到GMEM,以使得所述像素群组中的像素的状态已知,且所述像素群组并未从先前操作改变。
33.根据权利要求31所述的计算机程序产品,其中所述指令在执行时进一步致使所述装置的一或多个处理器实施经配置以在所述深度缓冲器中创建所述掩模的在分格管线中的分格顶点着色器。
34.根据权利要求31所述的计算机程序产品,其中所述指令在执行时进一步致使所述装置的一或多个处理器提供经配置以在所述深度缓冲器中创建所述掩模的在分格管线中的分格顶点着色器。
35.根据权利要求31所述的计算机程序产品,其中所述指令在执行时进一步致使所述装置的一或多个处理器在呈现期间从所述深度缓冲器读取所述掩模以确定是否需要GMEM加载。
36.根据权利要求31所述的计算机程序产品,其中所述掩模包括每一像素掩模1位。
37.根据权利要求31所述的计算机程序产品,其中所述掩模包括每一像素掩模2位。
38.根据权利要求31所述的计算机程序产品,其中所述像素群组包括单个像素。
CN201380061733.XA 2012-11-29 2013-10-28 用于图形处理的图形存储器加载掩模 Expired - Fee Related CN104823220B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/688,748 2012-11-29
US13/688,748 US9280956B2 (en) 2012-11-29 2012-11-29 Graphics memory load mask for graphics processing
PCT/US2013/067113 WO2014085004A1 (en) 2012-11-29 2013-10-28 Graphics memory load mask for graphics processing

Publications (2)

Publication Number Publication Date
CN104823220A CN104823220A (zh) 2015-08-05
CN104823220B true CN104823220B (zh) 2018-05-08

Family

ID=49584781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380061733.XA Expired - Fee Related CN104823220B (zh) 2012-11-29 2013-10-28 用于图形处理的图形存储器加载掩模

Country Status (5)

Country Link
US (1) US9280956B2 (zh)
EP (1) EP2926321A1 (zh)
KR (1) KR101711775B1 (zh)
CN (1) CN104823220B (zh)
WO (1) WO2014085004A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087410B2 (en) * 2013-01-17 2015-07-21 Qualcomm Incorporated Rendering graphics data using visibility information
US9760968B2 (en) 2014-05-09 2017-09-12 Samsung Electronics Co., Ltd. Reduction of graphical processing through coverage testing
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
US9600926B2 (en) * 2014-12-15 2017-03-21 Intel Corporation Apparatus and method decoupling visibility bins and render tile dimensions for tiled rendering
KR102261962B1 (ko) 2015-07-21 2021-06-07 삼성전자주식회사 디스플레이 구동 장치, 이를 포함하는 디스플레이 장치 및 시스템
US10078883B2 (en) * 2015-12-03 2018-09-18 Qualcomm Incorporated Writing graphics data from local memory to system memory
US10825129B2 (en) 2016-06-12 2020-11-03 Apple Inc. Eliminating off screen passes using memoryless render target
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US20190073091A1 (en) * 2017-09-06 2019-03-07 Sap Se Dynamic display layout systems and methods

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0803797A1 (en) * 1996-04-22 1997-10-29 International Business Machines Corporation System for use in a computerized imaging system to efficiently transfer graphic information to a graphics subsystem employing masked span
US6636212B1 (en) * 2000-11-14 2003-10-21 Nvidia Corporation Method and apparatus for determining visibility of groups of pixels

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970071323A (ko) 1996-04-22 1997-11-07 포만 제프리 엘 그래픽 서브시스템
US7102646B1 (en) 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6828975B2 (en) 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US20030002729A1 (en) * 2001-06-14 2003-01-02 Wittenbrink Craig M. System for processing overlapping data
US9076265B2 (en) 2006-06-16 2015-07-07 Ati Technologies Ulc System and method for performing depth testing at top and bottom of graphics pipeline
US8379019B2 (en) 2007-12-26 2013-02-19 Advanced Micro Devices, Inc. Fast triangle reordering for vertex locality and reduced overdraw
GB0810205D0 (en) * 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
GB0916924D0 (en) 2009-09-25 2009-11-11 Advanced Risc Mach Ltd Graphics processing systems
WO2011052117A1 (ja) * 2009-10-26 2011-05-05 株式会社ソニー・コンピュータエンタテインメント 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
US20110134120A1 (en) * 2009-12-07 2011-06-09 Smart Technologies Ulc Method and computing device for capturing screen images and for identifying screen image changes using a gpu
KR101427444B1 (ko) * 2010-09-30 2014-08-11 현대중공업 주식회사 자유 낙하 방식 구명 보트 승정 플랫폼의 설계 방법
KR101681056B1 (ko) 2010-10-01 2016-12-01 삼성전자주식회사 정점 처리 방법 및 장치
KR101782044B1 (ko) * 2011-02-22 2017-09-26 삼성전자주식회사 그래픽 프로세서 및 조기 가시성 테스트 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0803797A1 (en) * 1996-04-22 1997-10-29 International Business Machines Corporation System for use in a computerized imaging system to efficiently transfer graphic information to a graphics subsystem employing masked span
US6636212B1 (en) * 2000-11-14 2003-10-21 Nvidia Corporation Method and apparatus for determining visibility of groups of pixels

Also Published As

Publication number Publication date
CN104823220A (zh) 2015-08-05
KR20150090118A (ko) 2015-08-05
KR101711775B1 (ko) 2017-03-02
US9280956B2 (en) 2016-03-08
US20140146064A1 (en) 2014-05-29
WO2014085004A1 (en) 2014-06-05
EP2926321A1 (en) 2015-10-07

Similar Documents

Publication Publication Date Title
CN104823220B (zh) 用于图形处理的图形存储器加载掩模
CN107209923B (zh) 图形处理中的混合渲染
KR102003655B1 (ko) 그래픽 프로세싱에서 셰도우 레이들에 대한 트리 횡단을 위한 시작 노드 결정
CN105518742B (zh) 用于图形处理的任意控制点处的容错抢占机制
US9569862B2 (en) Bandwidth reduction using texture lookup by adaptive shading
CN108027955B (zh) 经带宽压缩的图形数据的存储技术
US9852536B2 (en) High order filtering in a graphics processing unit
CN109564694A (zh) 用于基于入库的图形处理的顶点着色器
US9324127B2 (en) Techniques for conservative rasterization
US9646359B2 (en) Indefinite texture filter size for graphics processing
JP2017097870A (ja) グラフィックス処理装置を含むコンピューティング装置、及びグラフィックス処理装置においてグラフィックスパイプラインを実行する方法
CN108780582B (zh) 可见性信息修改
CN107851330A (zh) 用于图形处理的零像素剔除
CN106575428B (zh) 图形处理单元中的高阶滤波
CN107077716B (zh) 用于图形处理的动态管线

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180508

Termination date: 20201028

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