选择性合并部分覆盖图块以执行分层z剔除的制作方法_2

文档序号:9893645阅读:来源:国知局
缓存行,其中,所述高速缓存行中的每个存储用于所述擅染目标 的所述图块位置中的相应一个的数据。例如,所述高速缓存行中的每个可经配置存储标记、 用于图块位置的所累积覆盖掩模和用于所述图块位置的所累积保守最远Z值。对应于存储 在特定高速缓存行中的数据的所述图块位置(例如,所述图块的屏座标)可用作该高速缓存 行的标记。
[0040] 在部分覆盖输入源图块被处理时,所述高速缓存可被存取W查看是否存在包含与 所述部分覆盖输入源图块的图块位置相关联的数据的高速缓存行。如果所述高速缓存行中 的一个的确含有与所述部分覆盖输入源图块的图块位置相关联的数据,则用于所述输入源 图块的所述覆盖掩模和所述保守最远Z值与包含于所述高速缓存中的所累积覆盖掩模和所 累积保守最远Z值合并。否则的话,生成用于所述图块位置的新高速缓存条目,并且所累积 的覆盖掩模和所累积的保守最远Z值被设定成分别等于所述输入源图块的所述覆盖掩模和 所述保守最远Z值。如果所述合并操作的运行产生完全覆盖的合并图块,则与所述完全覆盖 合并图块相关联的高速缓存行可W是无效的。
[0041] 如上文所论述,在完全覆盖的输入源图块被处理,并且所述输入源图块的保守最 远Z值比具有与所述输入源图块相同的图块位置的所述目的地图块的保守最远Z值更接近 时,则用于所述目的地图块的保守最远Z值利用所述输入源图块的保守最远Z值来更新。在 一些情况下,在所述完全覆盖输入源图块被处理时,一或多个部分覆盖的源图块可已经被 合并,并且与所述合并源图块相关联的数据可W存储在合并高速缓存单元中。
[0042] -种用于处理所述合并源图块的方法是在所述合并高速缓存中保持所述图块,并 保持合并部分覆盖源图块和所述合并源图块直到所述合并源图块被完全覆盖。然而,运种 方法可能不保证用于所得完全覆盖合并源图块的所述保守最远Z值比已经在使用的所述剔 除Z值更接近。如果所述剔除Z值被不是比已经在使用的所述剔除Z值更接近的保守最远Z值 代替,则可减小被所述分层Z剔除算法丢弃的样本的量,借此降低所述算法的效率。
[0043] 根据本发明的一些方面,在用于图块位置的所述剔除Z值响应于处理用于所述图 块位置的完全覆盖的非合并源图块而被更新时,高速缓存单元的存储用于所述图块位置的 合并源图块数据的高速缓存行可W是无效的。例如,响应于确定用于所述图块位置的源图 块被对应于所述源图块的所述基元完全覆盖和所述源图块的保守最远Z值比与所述图块位 置相关联的所述剔除Z值更接近,与图块位置相关联的高速缓存行可W是无效的。W此方式 使高速缓存行无效可阻止所述剔除Z值被不比已经在使用的所述剔除Z值更接近的保守最 远Z值代替。W此方式,可提高所得剔除Z值的质量,借此提高所述分层Z剔除算法的丢弃效 率。
[0044] 图1为说明可用于实施本发明的分层Z剔除技术的示例计算装置2的框图。计算装 置2可为例如,个人计算机、台式计算机、膝上型计算机、计算机工作站、视频游戏平台或控 制台、无线通信装置(诸如,例如,移动电话、蜂窝式电话、卫星电话和/或移动电话手持机)、 陆线电话、因特网电话、手持式装置(诸如,便携式视频游戏装置或个人数字助理(PDA))、个 人音乐播放器、视频播放器、显示装置、电视机、电视机顶盒、服务器、中间网络装置、主机计 算机,或处理和/或显示图形数据的任何其它类型的装置。
[0045] 如图1的示例中所说明,计算装置2包含用户接口4、CPU 6、存储器控制器8、存储器 10、图形处理单元(GPU) 12、显示器接口 14、显示器16和总线18。用户接口4、CPU 6、存储器控 制器8、GPU 12和显示器接口 14可使用总线18彼此通信。应注意,包含于图1的计算装置2中 的特定组件和在图1中示出的组件的配置仅是示例性的,且在所述相同或不同配置中具有 相同或不同组件的其它类型的计算装置和/或其它图形处理系统可用于实施本发明的技 术。
[0046] CPU 6可为控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算 装置2W致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的所述软件应用程序可包 含例如,图形应用程序、字处理器应用程序、电子邮件应用程序、总分析表应用程序、媒体播 放器应用程序、视频游戏应用程序、图形用户接口应用程序、操作系统或使用GPU 12来擅染 图形图像的任何类型的程序。用户可经由一或多个输入装置(未图示),诸如,键盘、鼠标、麦 克风、触摸垫或经由用户接口 4禪合接至计算装置2的另一输入装置将输入提供到计算装置 2。
[0047] 在CPU 6上执行的软件应用程序可包含一或多个图形擅染指令,其发指令给GPU 12W向用于在显示器16上显示的帖缓冲擅染图形数据。在一些示例中,所述图形擅染指令 可符合图形应用程序编程接口(API),诸如,例如,DirectX API、Direct3D API、开放图形库 (OpcnGL基)API、开放图形库嵌入式系统(OpenGL ES)API、X3D API、RenderMan API、WebGL API或任何其它公共或专属标准图形API。为了处理所述图形擅染指令,CPU 6可向GPU 12发 出一或多个图形擅染命令W致使GPU 12擅染所述图形数据中的一些或全部。在一些示例 中,待擅染的图形数据可包含例如点、线、Ξ角形、四边形、Ξ角形带等图形基元的列表。
[0048] 存储器控制器8有助于数据进出存储器10的传送。例如,存储器控制器8可接收存 储器读取和写入命令,W及并关于存储器10服务于此些命令,W便为计算装置2中的组件提 供存储器服务。存储器控制器8通信禪接至存储器10。虽然存储器控制器8在图1的示例计算 装置2中被说明为与CPU 6和存储器10均不同的处理模块,但是在其它示例中,存储器控制 器8的功能中的一些或全部可在CPU 6和存储器10中的一或两个上实施。
[0049] 存储器10可存储可被CPU 6存取用于执行的程序模块和/或指令和/或被在CPU 6 上执行的程序使用的数据。例如,存储器10可存储程序代码和与在CPU 6上执行的应用程序 相关联的图形数据。存储器10可另外存储被计算装置2的其它组件使用和/或生成的信息。 例如,存储器10可充当GPU 12的装置存储器并可存储被GPU 12运行的数据W及从GPU 12执 行的操作所得的数据。例如,存储器10可存储顶点缓冲器、纹理缓冲器、深度缓冲器、模板缓 冲器、帖缓冲器、擅染目标等等的任何组合。另外,存储器10可存储被GPU 12处理的命令流。 存储器10可包含一或多个易失性或非易失性存储器或存储装置,诸如例如,随机存取存储 器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM巧PROM)、电 可擦除可编程ROM化EPROM)、快闪存储器、磁性数据媒体或光学储存媒体。
[0化0] GPU 12可经配置执行由CPU 6发布至GPU 12的命令。由GPU 12执行的命令可包含 图形命令、绘制调用命令、GPU状态编程命令、存储器传送命令、通用计算命令、内核执行命 令等。
[0化1] GPU 12可经配置执行图形操作W擅染至显示器16的一或多个图形基元。在此些示 例中,在CPU 6上执行的软件应用程序中的一个需要图形处理时,CPU 6可向GPU 12提供图 形数据并向GPU 12发出一或多个图形命令。所述图形命令可包含例如,绘制调用命令、GPU 状态编程命令、存储器传送命令、传图命令等。所述图形数据可包含顶点缓冲器、纹理数据、 表面数据等。在一些示例中,通过向存储器10写入可被GPU 12存取的命令和图形数据,CPU 6可向GPU 12提供所述命令和图形数据。
[0052] 在一些情况下,GPU 12可内置有高度并行的结构,其提供比CPU 6更有效的对向量 运算的处理。例如,GPU 12可包含经配置W并行方式对多个顶点、控制点、像素和/或其它数 据操作的多个处理元件。在一些情况下,GPU 12的高度并行本质可允许GPU 12比使用CPU 6 擅染图像更快地将图形图像(例如,GUI和二维(2D)和/或Ξ维(3D)图形场景)擅染到显示器 16上。另外,GPU 12的高度并行本质可允许GPU 12比CPU 6更快地处理用于通用计算应用程 序的某些类型向量和矩阵运算。
[0053] 在一些情况下,GPU 12可集成到计算装置2的母板中。在其它情况下,GPU 12可存 在于安装在计算装置2的母板中的端口中的图形卡上或W其它方式可并入在经配置W与计 算装置2交互操作的外围装置内。在进一步例子中,GPU 12可与CPU 6位于同一微忍片上从 而形成忍片上系统(SoCKGPU 12可包含一或多个处理器,诸如一或多个微处理器、专用集 成电路(ASIC)、现场可编程口阵列(FPGA)、数字信号处理器化SP)或其它等效的集成或分立 逻辑电路。
[0054] 在一些示例中,GPU 12可包含GPU高速缓存,其可为存储器10的全部或一部分提供 高速缓冲存储服务。在此些示例中,GPU 12可使用本地存储装置而不是片外存储器,使用所 述高速缓存来本地处理数据。运允许GPU 12通过减少GPU 12经由总线18存取存储器10的需 要而W更有效的方式运行,其中,经由总线运行可使总线经受繁重的业务量。然而,在一些 示例中,GPU 12可不包含独立的高速缓存,而是经由总线18利用存储器10。所述GPU高速缓 存可包含一或多个易失性或非易失性存储器或存储装置,诸如例如,随机存取存储器 (RAM)、静态RAM(SRAM)、动态RAM(DRAM)等。
[0055] CPU 6和/或GPU 12可在存储器10内分派的帖缓冲器中存储光栅化图像数据。显示 器接口 14可从所述帖缓冲器检索所述数据并配置显示器16W显示由所述光栅化图像数据 表示的所述图像。在一些示例中,显示器接口 14可包含数/模转换器(DAC),其经配置W将从 帖缓冲器检索的数字值转换为可由显示器16耗用的模拟信号。在其它示例中,显示器接口 14可将数字值直接传递到显示器16W进行处理。
[0056] 显示器16可包含监视器、电视机、投影装置、液晶显示器化CD)、等离子体显示器面 板、发光二极管化抓)阵列、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器 (S抓)、激光电视机显示器、纳米晶体显示器或另一类型的显示单元。显示器16可集成在计 算装置2内。举例来说,显示器16可为移动电话手持机或平板计算机的屏幕。或者,显示器16 可为经由有线或无线通信链路而禪接至计算装置2的独立装置。举例来说,显示器16可为经 由电缆或无线链路而连接至个人计算机的计算机监视器或平板显示器。
[0057] 总线18可使用包含第一、第二和第Ξ代总线结构和协议、共享总线结构和协议、点 对点总线结构和协议、单向总线结构和协议W及双向总线结构和协议的总线结构和总线协 议的任何组合来实施。可用于实施总线18的不同总线结构和协议的示例包含例如超传输总 线、InfiniBand总线、高级图形端口总线、夕F围部件互连标准(PCI)总线、PCI Express总线、 高级微控制器总线架构(AMBA)高级高性能总线(AHB)、AMBA高级外围总线(APB)W及AMBA高 级可扩展接口(AXI)总线。也可使用其它类型的总线结构和协议。
[0058] 根据本发明,GPU 12可经配置执行本发明中描述的所述分层z剔除技术中的任一 个。例如,GPU 12可经配置W基于用于所述部分覆盖的源图块的保守最远Z值是否比用于图 块位置的剔除Z值更接近,选择性合并与所述图块位置相关联的样本的部分覆盖源图块。W 此方式选择性合并源图块可提高用于执行Z剔除的剔除Z值的质量,运可提高所述Z剔除算 法的丢弃率。W此方式,可提高执行分层Z剔除的图形处理器的性能和/或存储器带宽使用 率。
[0059] 作为另一示例,GPU 12可使用存储器单元来存储所累积的覆盖掩模和定义合并源 图块的所累积的最远Z值。所述合并源图块可用于更新用于执行分层Z剔除的剔除Z值。所述 存储器单元可在与GPU 12相同的忍片上或在另一个忍片(例如,存储器10)上形成。所述存 储器单元的大小可比存储用于擅染目标中的所有图块位置的所累积的覆盖掩模和所累积 的最远Z值所需的存储器的大小更小。运可减小存储所累积的覆盖掩模和所累积的最远Z值 所需的存储器占用面积。大小相对较小的存储器单元也可允许所述存储器单元在与GPU 12 相同的忍片上实施,借此减少存取所述数据所需的片外存储器带宽的量。另外,允许存储器 在与GPU 12相同的忍片上实施可减小存取所述数据所需的执行延迟的量,借此提高分层Z 剔除操作的性能。
[0060] 因为用于存储所累积的覆盖掩模和所累积的最远Z值的所述存储器单元可比存储 用于擅染目标中的所有图块位置的所累积覆盖掩模和所累积最远Z值所需的存储器的大小 更小,所W在两个不同图块位置映射到相同存储器条目的情况下,用于两个不同图块位置 的数据可彼此覆写是有可能的。虽然运可能会降低所述保守最远Z值的质量(即,所述保守 最远Z值在多大程度上接近实际最远Z值),但是在一些情况下,通过使用忍片上存储器实现 的性能好处可比由于数据覆写造成的任何性能下降更重要。
[0061] 在一些示例中,所述存储器单元可为高速缓存单元。所述高速缓存单元的大小可 比存储用于擅染目标中的所有图块位置的所累积的覆盖掩模和所累积的最远Z值所需的高 速缓存的大小更小。另外,所述高速缓存单元可不与底层存储器相关联。也就是说,所述高 速缓存单元可充当用于所合并的源图块数据的主数据存储装置而非仅充当用于存储主要 存储在其它地方的数据的复本的高速缓存数据存储装置。高速缓存单元通常经设计存储比 此些高速缓存单元为其提供高速缓冲存储服务的所述底层存储器空间更少量的数据。因 此,高速缓存单元往往实施多种映射策略(例如,直接映射、组相联、完全相联等)和替代策 略(例如,最近最少使用、最不频繁使用、随机等)W确定数据将被存储在所述高速缓存中的 什么地方和哪些数据将在所述高速缓存中被覆写。使用高速缓存单元作为用于存储合并源 图块数据的主存储装置单元可允许图形系统充分利用运些内置式机构来确定数据被存储 在高速缓存单元中的什么地方和哪些数据在高速缓存单元中被覆写,即使所述高速缓存单 元并不在所述底层存储器中保持额外复本。运可简化实施用于存储合并源图块数据的存储 器单元所需的面积的设计和/或减小所述面积的量。
[0062] 作为可由GPU 12执行的所述分层Z剔除技术的另一示例,在GPU 12在高速缓存单 元中存储所合并的源图块数据时,在用于图块位置的所述剔除Z值响应于处理用于图块位 置的完全覆盖的非合并源图块而被更新时,GPU 12可使所述高速缓存单元的用于所述图块 位置的高速缓存行无效。例如,响应于确定用于图块位置的源图块被对应于所述源图块的 基元完全覆盖和所述源图块的保守最远Z值比与所述图块位置相关联的剔除Z值更接近, GPU 12可使与所述图块位置相关联的高速缓存行无效。在响应于处理用于图块位置的完全 覆盖的非合并源图块已更新所述剔除Z值之后,对应于所述图块位置的所述合并源图块可 具有比所述已更新剔除Z值更远的保守最远Z值。如果所述剔除Z值经更新等于比已经使用 的剔除Z值更远的保守最远Z值,则可减少被剔除样本的量,借此降低所述分层Z剔除算法的 效率。使存储用于此图块位置的所述合并源图块数据的高速缓存行无效可确保存储在所述 合并高速缓存中的保守最远Z值并不随后用于更新所述剔除Z值。W此方式清除出所述合并 高速缓存可提高所得剔除Z值的质量,借此提高所述分层Z剔除算法的丢弃效率。
[0063] 图2是进一步详细说明图1中的计算装置2的CPU 6、GPU 12和存储器10的框图。如 图2中所示,CPU 6通信禪接至GPU 12和存储器10,且GPU 12通信禪接至CPU 6和存储器10。 在一些示例中,GPU 12可与CPU 6集成到母板上。在其它示例中,GPU 12可在安装于包含在 CPU 6的母板的端口中的图形卡上实施。在其它示例中,GPU 12可并入在经配置W与CPU 6 交互操作的外围装置内。在其它示例中,GPU 12可与CPU 6位于同一微忍片上从而形成忍片 上系统(SoC)。
[0064] CPU 6可包含一或多个处理器(例如微处理器),其经配置执行软件应用程序24、图 形API 26、GPU驱动程序28和操作系统30中的任一个。在一些示例中,CPU 6可经配置执行致 使CPU 6的一或多个处理器执行本发明中描述的技术中的任一个的全部或部分的指令。 [00化]GPU 12包含命令引擎32、一或多个处理单元34和存储器36。一或多个处理单元34 可经配置形成3D图形擅染管线。命令引擎32和处理单元34可包含专口硬件单元、固件、软件 和处理器的任何组合,其经配置W执行归于此些组件的功能。在一些示例中,GPU 12可经配 置W执行指令,所述指令致使GPU 12的一或多个处理器执行本发明中描述的技术中的任一 个的全部或部分。
[0066] 存储器10可存储一或多个命令38和基元数据40。在一些示例中,存储器10也可存 储指令,当所述指令被执行时,致使一或多个处理器执行本发明中描述的技术中的任一个 的全部或部分。
[0067] 软件应用程序24可为图形应用程序,其使用GPU 12将一或多个3D图形场景和/或 3D图形对象擅染到待在显示器上显示的图像中。软件应用程序24可包含致使GPU 12光栅化 和擅染一组3D图形基元的指令。软件应用程序24可经由图形API 26向GPU驱动程序28发出 所述指令。图形API 26可为将从软件应用程序24接收的所述指令转换为可由GPU驱动程序 28耗用的格式的运行时间服务。
[006引 GPU驱动程序28经由图形API 26从软件应用程序24接收指令,并控制GPU 12的操 作W服务所述指令。例如,GPU驱动器28可调配一或多个命令38,将命令38放置到存储器10 中,且指示GPU 12执行命令38。在一些示例中,GPU驱动器28可将命令38放置到存储器10中 且经由操作系统30,例如经由一或多个系统调用与GPU 12通信。
[0069] 操作系统30可提供软件应用程序24、图形API 26和GPU驱动程序28可在上面执行 的软件平台。操作系统30可管理在CPU 6、存储器10和GPU 12之间传送和传递数据的硬件细 T。
[0070] 命令38可包含一或多个状态命令和/或一或多个绘制调用命令。状态命令可发指 令给GPU 12W改变GPU 12中的状态变量中的一或多个,例如基元类型。绘制调用命令可发 指令给GPU 12W擅染由存储在存储器10中的一组一或多个顶点定义的几何形状(例如,在 顶点缓冲器中定义的)。在一些示例中,所述由所述组的一或多个顶点定义的几何形状可对 应于待擅染的多个基元(例如,基元数据40)。一般而言,绘制调用命令可调用GPU 12W擅染 存储在存储器10的所定义区段(例如缓冲器)中的所有顶点。换句话说,一旦GPU 12接收所 述绘制调用命令,则用于擅染由在存储器10的所定义区段(例如缓冲器)中的所述顶点表示 的所述几何形状和基元的控制被传递给GPU 12。
[0071] 命令引擎32经配置W检索和执行存储在存储器10中的命令38。命令引擎32可处理 GPU 12的擅染状态、控制处理单元34的操作,使得处理单元34实施图形擅染管线并致使图 形数据经由所述图形擅染管线被擅染为擅染目标。
[0072] 响应于接收到状态命令,命令引擎32可经配置W基于所述状态命令将GPU中的一 或多个状态寄存器设定到特定值,和/或基于所述状态命令配置固定功能处理单元34中的 一或多个。响应于接收绘制调用命令,命令引擎32可经配置W致使处理单元34擅染由存储 器10中的顶点表示的所述几何形状(例如,由基元数据40表示的所述几何形状)。命令引擎 32还可接收着色器程序绑定命令,并基于所述着色器程序绑定命令将特定着色器程序加载 到可编程处理单元34中的一或多个中。
[0073] 处理单元34可包含一或多个处理单元,其中的每一者可为可编程处理单元或固定 功能处理单元。可编程处理单元可包含例如可编程着色器单元,其经配置执行从CPU 6下载 到GPU 12上的一或多个着色器程序。在一些示例中,着色器程序可为W高级着色语言,诸如 例如高级着色语言化L化)、化en化着色语言(GLSL)、用于图形的C(Cg)着色语言等编写的程 序的编译版本。
[0074] 在一些示例中,可编程着色器单元可包含多个处理单元,其经配置W并行运行例 如单指令多数据(SIMD)管线。可编程着色器单元可具有存储着色器程序指令的程序存储器 和执行状
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1