具有共享数据信道的着色器管线的制作方法

文档序号:10663684阅读:308来源:国知局
具有共享数据信道的着色器管线的制作方法
【专利摘要】图形处理单元GPU可分配所述GPU的片上图形存储器中由图形处理管线的至少两个级共享的共享数据信道。所述GPU中的着色器单元可执行所述图形处理管线的所述至少两个级。所述GPU可在片上图形存储器中的所述共享数据信道中存储由执行于所述着色器单元上的所述图形处理管线的所述至少两个级中的每一者产生的数据。
【专利说明】
具有共享数据信道的着色器管线
技术领域
[0001] 本发明涉及用于存储由图形处理管线的级产生及消耗的数据的共享数据信道。
【背景技术】
[0002] 计算装置的图形处理单元(GPU)可执行包含用于处理图形命令的多个级的图形处 理管线以呈现三维场景的二维表示。三维场景通常由顶点组成,且图形处理管线包含一系 列级,所述级针对三维场景中的每一顶点以固定次序执行以呈现三维场景的二维表示。
[0003] 图形处理管线可包含着色器级链,所述级执行以转换三维场景的顶点。着色器级 中的每一者消耗由前一级产生的数据且产生用于下一级的数据。由于大量数据流经着色器 级链,管理用于着色器级链的数据的方式可影响GPU的性能和存储器效率。

【发明内容】

[0004] 在本发明的一个实例中,用于图形处理的方法可包含由图形处理单元(GPU)分配 GPU的片上图形存储器中由图形处理管线的至少两个级共享的共享数据信道。方法可进一 步包含在GPU中的着色器单元上执行图形处理管线的至少两个级。方法可进一步包含由GPU 将由着色器单元上执行的图形处理管线的至少两个级中的每一者产生的数据存储在片上 图形存储器中的共享数据信道中。
[0005] 在本发明的另一实例中,用于图形处理的设备可包含经配置以进行以下操作的图 形处理单元(GPU):分配GPU的片上图形存储器中由图形处理管线的至少两个级共享的共享 数据信道;在GHJ中的着色器单元上执行图形处理管线的至少两个级;及将由着色器单元上 执行的图形处理管线的至少两个级中的每一者产生的数据存储在片上图形存储器中的共 享数据信道中。
[0006] 在本发明的另一实例中,用于图形进行图形处理的设备可包含用于分配图形处理 单元(GHJ)的片上图形存储器中由图形处理管线的至少两个级共享的共享数据信道的装 置。设备可进一步包含用于执行图形处理管线的至少两个级的装置。设备可进一步包含用 于将由图形处理管线的至少两个级中的每一者的执行产生的数据存储在片上图形存储器 中的共享数据信道中的装置。
[0007] 在本发明的另一实例中,计算机可读存储媒体可存储指令,所述指令在执行时导 致一或多个可编程处理器进行以下操作:分配片上图形存储器中由图形处理管线的至少两 个级共享的共享数据信道;在着色器单元上执行图形处理管线的至少两个级;及将由着色 器单元上执行的图形处理管线的至少两个级中的每一者产生的数据存储在片上图形存储 器中的共享数据信道中。
[0008] 随图及以下描述中陈述一或多个实例的细节。其它特征、目标和优点将从所述描 述和图式以及权利要求书而显而易见。
【附图说明】
[0009] 图1为说明可经组配以实施本发明用于在多个图形管线级之中共享数据信道的一 个或多个方面的实例计算装置的框图。
[0010] 图2为说明可由GPU执行以产生三维场景的二维表示的实例图形处理管线的框图。
[0011] 图3为进一步详细地说明图1的CPU、GPU和系统存储器的实例实施方案的框图。
[0012] 图4为说明用于图形处理管线中的共享数据信道的实例的框图。
[0013] 图5为进一步详细地说明图4的高速缓存模式共享信道的框图。
[0014] 图6为说明用于通过图形处理管线的级共享数据信道的实例过程的流程图。
【具体实施方式】
[0015] -般来说,本发明描述用于使用具有共享数据信道的产生器到消耗器模型的单程 着色器管线的技术。计算装置中的图形处理单元(GPU)可在着色器单元上执行着色器管线, 所述着色器单元可在GPU上同时执行着色器管线的多个级。由于与存储于计算装置的系统 存储器中的数据相比,通常可更快速和有效地存取存储于GHJ中的片上存储器中的数据,因 此可通过消耗来自GPU中的片上存储器中的数据信道的数据且通过产生也存储于GPU中的 片上存储器中的数据信道中的数据来增大GPU中的着色器单元的效率。
[0016] 在一个实例中,GPU可分配相同大小的数据信道以存储由GPU中的着色器单元上的 着色器管线的执行消耗和产生的数据。然而,由于GPU中的片上存储器通常包含比计算装置 的系统存储器小许多的存储空间,GPU中的片上存储器可不具有充足存储空间来分配用于 由GPU中的着色器单元消耗和产生的全部数据的单独数据信道。此外,由于着色器管线的级 可为不均衡的,使得着色器管线的一些级往往会产生比着色器管线的其它级更多的数据, 为由着色器管线的每一级产生的数据分配片上存储器中的相同空间可浪费片上存储器中 的存储空间。另外,片上存储器可不具有充足存储空间来为由着色器管线的每一级产生的 数据分配相同空间,使得由着色器管线的级产生的数据中的至少一些可需要存储在较慢系 统存储器中,因此降低GHJ的性能。
[0017] 根据本发明的各方面,GPU可分配GPU中的片上存储器中的共享数据信道使得着色 器管线的两个或两个以上级可共享单一共享数据信道,使得共享数据信道中不用于存储来 自共享共享数据信道的着色器管线的第一级的数据的空间可用于存储来自共享数据信道 的着色器管线的第二级的数据。以此方式,GPU中的片上存储器可以更有效的方式利用。此 外,与其它途径相比,通过以更有效的方式利用GPU中的片上存储器来潜在地存储由着色器 管线产生的更多数据,GPU中的片上存储器可存储准备由执行着色器管线的各级的着色器 单元消耗的更多数据,因此增大着色器单元的利用率且提高GPU的性能。
[0018] 图1为说明可经组配以实施本发明用于在多个图形管线级之中共享数据信道的一 个或多个方面的实例计算装置的框图。如图1中所展示,装置2可为计算装置,包含但不限于 视频装置、媒体播放器、机顶盒、无线手持机(例如移动电话和所谓的智能电话)、个人数字 助理(PDA)、台式计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算装置及类似 者。在图1的实例中,装置2可包含中央处理单元(CPU)6、系统存储器10和GPU 12。装置2还可 包含显示处理器14、收发器模块3、用户接口 4和显示器8。收发器模块3和显示处理器14两者 可为如同CPU 6及/或GPU 12的同一集成电路(1C)的部分,两者可在包含CPU 6及/或GPU 12 的一或多个1C的外部,或可形成于在包含CPU 6及/或GPU 12的1C外部的1C中。
[0019] 出于清晰性的目的,装置2可包含图1中未展示的额外模块或单元。举例来说,装置 2可包含扬声器和麦克风(其均未在图1中展示)以在装置2为移动无线电话或扬声器(其中 装置2为媒体播放器)的实例中实现电话通信。装置2还可包含摄像机。此外,装置2中所展示 的各种模块和单元可不必在装置2的每个实例中。举例来说,在装置2为台式计算机或经装 备以与外部用户接口或显示器介接的其它装置的实例中,用户接口4和和显示器8可在装置 2外部。
[0020] 用户接口 4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用 户接口 4还可为触摸屏且可作为显示器8的一部分并入。收发器模块3可包含电路以允许计 算装置2与另一装置或网络之间无线或有线通信。收发器模块3可包含调制器、解调器、放大 器和用于有线或无线通信的其它此类电路。
[0021] CPU 6可为经配置以处理用于执行的计算机程序的指令的微处理器,例如中央处 理单元(CPU) XPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供 到计算装置2以导致CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可 包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒 体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU 6可 执行用于控制GPU 12的操作的GPU驱动程序22。用户可经由一或多个输入装置(图中未展 示)(例如键盘、鼠标、麦克风、触摸垫或经由用户接口 4耦合到计算装置2的另一输入装置) 将输入提供到计算装置2。
[0022] 在CPU 6上执行的软件应用程序可包含一或多个指示CPU 6以导致向显示器8呈现 图形数据的图形呈现指令。在一些实例中,软件指令可符合图形应用编程接口(API),例如 开放图形库K)pcnGI_/)API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形呈现指 令,CPU 6可将一或多个图形呈现命令发布到GPU 12(例如,经由GPU驱动程序22)以导致GPU 12执行呈现图形数据中的一些或全部。在一些实例中,待呈现的图形数据可包含一列图形 图元,例如,点、线、三角形、四边形、三角带等。
[0023] GPU 12可经配置以执行图形操作,从而向显示器8呈现一或多个图形图元。因此, 当CPU 6上执行的软件应用程序中的一者需要图形处理时,CPU 6可将图形命令和图形数据 提供到GPU 12以用于向显示器8呈现。图形数据可包含(例如)绘制命令、状态信息、图元信 息、纹理信息等。在一些情况下,GPU 12可内置有高度并行结构,所述高度并行结构提供比 CPU 6更有效的复杂图形相关操作的处理。举例来说,GPU 12可包含经配置从而以并行方式 对多个顶点或像素进行操作的多个处理元件,例如着色器单元。在一些情况下,GPU 12的高 度并行性质允许GPU 12比使用CPU 6直接将场景绘制到显示器8更快速地将图形图像(例 如,GUI及二维(2D)及/或三维(3D)图形场景)绘制到显示器8上。
[0024]在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可 存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中或可以其它方式并入经 配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微 处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等 效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,使得GPU 12可被称作多 核处理器。
[0025] GPU 12可直接耦合到图形存储器40。因此,GPU 12可在不使用总线的情况下从图 形存储器40读取数据且将数据写入到图形存储器40。换句话说,GPU 12可使用本地存储装 置而不是片外存储器在本地处理数据。此类图形存储器40可被称作片上存储器。此允许GPU 12通过消除GPU 12经由总线读取及写入数据的需要而以更有效的方式操作,其中经由总线 操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独的存储器,而是经 由总线利用系统存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储 装置,例如,随机存取存储器(RAM )、静态RAM (SRAM )、动态RAM (DRAM )、可擦除可编程ROM (EPROM)、电可擦除可编程R0M(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
[0026]在一些实例中,GPU 12可将完全形成的图像存储在系统存储器10中。显示处理器 14可从系统存储器10检索图像且输出导致显示器8的像素照亮以显示图像的值。显示器8可 为装置2显示由GPU 12产生的图像内容的显示器。显示器8可为液晶显示器(IXD)、有机发光 二极管显示器(0LED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。 [0027]根据本发明的各方面,GPU 12可执行其着色器单元上的多个图形管线级。GPU 12 可产生图形存储器40中由着色器单元上执行的多个图形管线级中的两个级共享的共享数 据信道。GPU 12可将由着色器单元上执行的多个图形管线中的两个级中的每一者产生的数 据存储在共享数据信道中。
[0028]图2为说明可由GPU 12执行以产生三维场景的二维表示的实例图形处理管线24的 框图。图形处理管线24可包含多个图形处理级,所述多个图形处理级一起操作以执行图形 处理命令。如图2中所展示,图形处理管线24可包含输入汇编程序26、顶点着色器级28、外壳 着色器级30、棋盘形布置器级32、域着色器级34、几何着色器级36和像素着色器级38。图形 处理管线24中的组分中的每一者可实施为固定功能组分、可编程组分(例如,为可编程着色 器单元上执行的着色器程序的部分),或实施为固定功能和可编程组分的组合。
[0029] GPU 12可经配置以经由GPU驱动程序22从CPU 6接收一或多个图形处理命令,且经 配置以经由图形处理管线24执行图形处理命令以产生可显示的图形图像。如上文所论述, 图形处理管线24包含一起操作以执行图形处理命令的多个级。
[0030] 图形处理管线24中的输入汇编程序26可为通常负责将图形数据(例如,三角形、线 和点)供应到图形处理管线24的固定功能级。举例来说,输入汇编程序级26可收集高阶表 面、图元及类似者的顶点数据,且将顶点数据和属性输出到顶点着色器级28。因此,输入汇 编程序级26可使用固定功能操作从片外存储器(例如系统存储器10)读取顶点。输入汇编程 序级26可接着根据这些顶点创建管线工作项,同时还产生顶点识别符("VertexID")、实例 识别符("InstancelD",其可供顶点着色器使用)和图元识别符("PrimitivelD",其可供几 何着色器和像素着色器使用)。在读取顶点时,输入汇编程序级26可自动地产生VertexID、 InstanceID和PrimitiveID〇
[0031] 顶点着色器级28可处理所接收顶点数据和属性。举例来说,顶点着色器级28可执 行每顶点处理,例如,变换、结皮、顶点移位及计算每顶点材料属性。在一些实例中,顶点着 色器级28可产生纹理坐标、顶点颜色、顶点照明、雾效因子及类似者。顶点着色器级28-般 采用单个输入顶点且输出单个经处理输出顶点。
[0032] 外壳着色器级30、棋盘形布置器32和域着色器级34可统称为棋盘形布置级。棋盘 形布置级将低细节细分表面转换为高细节图元,且将图块高阶表面转换为适合的表面(例 如,三角形)以供呈现。外壳着色器级30从顶点着色器级28接收图元且负责执行至少两个动 作。第一,外壳着色器级30通常负责确定一组棋盘形布置因子。外壳着色器级30可每图元产 生一次棋盘形布置因子。棋盘形布置因子可供棋盘形布置器级32使用以确定对给定图元进 行棋盘形布置的精细程度(例如,将图元分裂成较小部分)。外壳着色器级30还负责产生稍 后将由域着色器级34使用的控制点。也就是说,例如,外壳着色器级30负责产生将供域着色 器级34使用以创建最终在呈现中使用的实际的经棋盘形布置的顶点的控制点。
[0033]当棋盘形布置器级32从外壳着色器级30接收数据时,棋盘形布置器级32使用若干 算法中的一者来确定用于当前图元类型的适当采样模式。举例来说,一般来说,棋盘形布置 器级32将所请求的棋盘形布置的量(如通过外壳着色器级30确定)转换成当前"±或"内的一 群组坐标点。也就是说,取决于来自外壳着色器级30的棋盘形布置因子,以及棋盘形布置器 级32的特定配置,棋盘形布置器级32确定需要对当前图元中的哪些点进行采样以便将输入 图元棋盘形布置为较小部分。棋盘形布置器级32的输出可为一组域点,其可包含重心坐标。 [0034]除由外壳着色器级30产生的控制点以外,域着色器级34采用域点,且使用域点来 创建新顶点。域着色器级34可使用针对当前图元、纹理、程序算法或任何其它内容产生的控 制点的完整列表,来将每一经棋盘形布置的点的重心"位置"转换成传递到管线中的下一级 的输出几何。
[0035]几何着色器级36可接收由其顶点数据(例如,三角形的三个顶点、线的两个顶点或 点的单一顶点)定义图元且进一步处理所述图元。举例来说,几何着色器级36可执行每图元 处理,例如,轮廓边缘检测和阴影体挤出,以及其它的可能处理操作。因此,几何着色器级36 可接收一个图元作为输入(其可包含一或多个顶点)且输出零个、一个或多个图元(其再次 可包含一或多个顶点)。输出图元可含有比有可能在无几何着色器级36的情况下更多的数 据。输出数据的总量可等于顶点大小乘以顶点计数的所得值,且可根据调用来限制。来自几 何着色器级36的流输出可允许图元达到此级以存储到片外存储器(例如系统存储器10)。流 输出通常连接到几何着色器级36,且两者可编程在一起(例如,使用API)。
[0036]光栅化器级37通常为负责剪辑图元及准备图元以供像素着色器级38使用的固定 功能级。举例来说,光栅器级37可执行剪辑(包含定制的剪辑边界)、透视分割、观察口 /剪刀 选择及实施方案、显现目标选择及图元设置。以此方式,光栅器级37可产生供像素着色器级 38着色的数个片段。
[0037]像素着色器级38从光栅化器级37接收片段且产生每像素数据,例如色彩。像素着 色器级38还可执行每像素处理,例如纹理混合和照明模型计算。因此,像素着色器级38可接 收一个像素作为输入且可在相同的相对位置处输出一个像素(或对于像素,为零值)。
[0038]根据本发明的各方面,图形处理管线24的两个或两个以上级可共享图形存储器40 中的共享数据信道。举例来说,由顶点着色器级28和域着色器级34产生的顶点可存储于共 享数据信道中。此外,由外壳着色器级30和几何着色器级36产生的图元可存储于另一共享 数据信道中。以此方式,GPU 12可更高效地利用图形存储器40。
[0039] 图3为进一步详细地说明图1的CPU 6、GPU 12和系统存储器10的实例实施方案的 框图。如图3中所展示,CPU 6可包含至少一个软件应用程序18、图形API 20和GPU驱动程序 22,其中的每一者可为CPU 6上执行的一或多个软件应用程序或服务。
[0040] 可用于CPU 6和GPU 12的存储器可包含系统存储器10和帧缓冲器16。帧缓冲器16 可为系统存储器10的一部分或可与系统存储器10分离。帧缓冲器16可存储经呈现图像数 据。
[0041] 软件应用程序18可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用 程序18可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机 辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。
[0042]软件应用程序18可包含指示GPU 12呈现图形用户接口(GUI)及/或图形场景的一 或多个绘制指令。举例来说,绘制指令可包含定义将由GPU 12呈现的一或多个图形基元的 集合的指令。在一些实例中,绘制指令可共同地定义用于GUI中的多个开视窗表面中的全部 或部分。在额外实例中,所述绘图指令可共同地定义图形场景的全部或部分,所述图形场景 包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
[0043] 软件应用程序18可经由图形API 20调用GPU驱动程序22以将一或多个命令发布到 GPU 12,以用于将一或多个图形基元再现为可显示的图形图像。举例来说,软件应用程序18 可经由图形API 20调用GPU驱动程序22以将图元定义提供到GPU 12。在一些情况下,可以绘 图基元(例如,三角形、矩形、三角扇、三角带等)的列表的形式将基元定义提供到GPU 12。基 元定义可包含指定与将呈现的基元相关联的一或多个顶点的顶点规格。所述顶点规格可包 含每一顶点的位置坐标,且在一些情况下,包含与顶点相关联的其它属性,例如色彩坐标、 法向量及纹理坐标。所述基元定义还可包含基元类型信息(例如,三角形、矩形、三角扇、三 角带等)、缩放信息、旋转信息及类似者。基于由软件应用程序18发布到GPU驱动程序22的指 令,GPU驱动程序22可调配指定供GPU 12执行的一或多个操作以便呈现图元的一或多个命 令。当GPU 12从CPU 6接收命令时,图形处理管线24解码命令且配置图形处理管线24以执行 命令中指定的操作。举例来说,图形处理管线24中的输入汇编程序26可读取图元数据且将 数据汇编成供图形处理管线24中的其它图形管线级使用的图元。在执行指定操作之后,图 形处理管线24将所呈现数据输出到与显示装置相关联的帧缓冲器16。
[0044]帧缓冲器16存储用于GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位 置相关联。在一些实例中,帧缓冲器16可存储每一目的地像素的色彩分量和目的地阿尔法 值。举例来说,帧缓冲器16可存储每一像素的红色、绿色、蓝色、阿尔法(RGBA)分量,其中 "RGB"分量对应于色彩值且"A"对应于目的地阿尔法值。尽管将帧缓冲器16和系统存储器10 说明为单独存储器单元,在其它实例中,帧缓冲器16可为系统存储器10的部分。
[0045] 在一些实例中,图形处理管线24的顶点着色器级28、外壳着色器级30、域着色器级 34、几何着色器级和像素着色器级38可被认为是着色器级。这些着色器级可实施为GPU 12 中的着色器单元46上执行的一或多个着色器程序。着色器单元46可配置成处理分量的可编 程管线。在一些实例中,着色单元46可被称作"着色器处理器"或"统一着色器"且可执行几 何、顶点、像素或其它着色操作以呈现图形。着色器单元46可包含处理器核心48,所述处理 器核心中的每一者可包含用于获取及解码操作的一或多个组件、用于执行算术计算的一或 多个算术逻辑单元、一或多个存储器、高速缓存和寄存器。
[0046] GPU 12可通过将命令发送到着色器单元46来指定着色器单元46执行各种着色操 作,例如顶点着色、外壳着色、域着色、几何着色、像素着色及类似者,以执行图形处理管线 24中的顶点着色器级28、外壳着色器级30、域着色器级34、几何着色器级36和像素着色器级 38中的一或多者。在一些实例中,GPU驱动程序22可经配置以编译一或多个着色器程序,且 经配置以将经编译着色器程序下载到含于GPU 12内的一或多个可编程着色器单元上。可使 用高级着色语言着编写色器程序,所述语言例如OpenGL着色语言(GLSL)、高级着色语言 (HLSL)、C for Graphics(Cg)着色语言等。经编译着色器程序可包含控制GPU 12内的着色 器单元46的操作的一或多个指令。举例来说,着色器程序可包含:顶点着色器程序,可由着 色器单元46执行以执行顶点着色器级28的功能;外壳着色器程序,可由着色器单元46执行 以执行外壳着色器级30的功能;域着色器程序,可由着色器单元46执行以执行域着色器级 34的功能;几何着色器程序,可由着色器单元46执行以执行几何着色器级36的功能;及/或 像素着色器程序,可由着色器单元46执行以执行像素着色器38的功能。顶点着色器程序可 控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个每顶点操作的 指令。
[0047]图形存储器40为物理上集成到GPU 12的集成电路中的片上存储装置或存储器。由 于图形存储器40为片上存储器,因此与经由系统总线从系统存储器10读取值或将值写入到 所述系统存储器相比,GPU 12可能能够更快速地从图形存储器40读取值或将值写入到所述 图形存储器。同样,可通过从图形存储器40存储及读取由图形处理管线24的着色器级产生 及消耗的数据来提高着色器单元46的性能。
[0048] 根据本发明的各方面,着色器单元46可在处理器核心48上同时执行多个着色操 作。GPU 12可将使得图形处理管线24的不同着色级能够在不同处理器核心48上执行的命令 发送到着色单元46,因此使图形处理管线24的级交错。举例来说,GPU 12可将命令发送到导 致着色单元46在着色器单元46的不同处理器核心48上同时执行顶点着色器级28和几何着 色器级36的着色单元46。在另一实例中,GPU 12可将命令发送到导致着色单元46在多个处 理器上同时执行几何着色器级36的多个实例的着色单元46。
[0049]根据本发明的各方面,图形存储器40可包含使得由图形处理管线24的不同级产生 的数据能够共享单一数据信道的共享数据信道50A到50N( "共享数据信道50")中的一或多 者,因此使得GPU 12能够更高效地利用图形存储器40中的有限空间以及使得着色器处理器 集群46能够提高其处理器核心48的利用率以同时执行图形处理管线24的多个级。
[0050] 共享数据信道50中的每一共享数据信道可存储由图形处理管线24的两个或两个 以上级产生的数据。通过共享共享数据信道50中的共享数据信道,与分配用于图形处理管 线,的个别级的数据信道24相反,如果图形处理管线24中的级产生较少数据,那么共享同一 共享数据信道的另一级可能能够通过存储其在共享数据信道中产生的更多数据来利用所 述事实。
[0051] 根据本发明的一方面,几何处理单元(GPC)42可基于共享数据信道50的状态调度 着色器处理器集群46的执行。GPC 42可监视共享数据信道50以确定共享数据信道50中是否 存在将由待由着色器处理器集群46执行的图形处理管线24的级消耗的足够数据。GPC 42还 可监视共享数据信道50以确定共享数据信道50中是否存在存储由待由着色器处理器集群 46执行的图形处理管线24的级产生的数据的充足自由空间。如果GPC 42确定共享数据信道 50中存在充足数据和自由空间,那么GPC 42可将执行命令发送到着色器处理器集群46以执 行图形处理管线24的一批级。响应于完成所述批次的级的执行,着色器处理器集群46可将 指示处理器集群46已经完成所述批次的级的执行的信号发送到GPC 42。作为响应,数据信 道管理器44可更新用于共享数据信道50的相关读取和写入指针。GPC 42可包含管理共享数 据信道50的数据信道管理器44。数据信道管理器44可管理用于共享数据信道50的读取和写 入指针,所述指针指向共享数据信道50内的位置以用于将数据写入到共享数据信道50中或 从所述共享数据信道读取数据。
[0052]根据本发明的各方面,共享数据信道50A可为由图形处理管线24的两个或两个以 上级共享的数据信道,使得共享数据信道50A可存储由图形处理管线24的第一级输出的数 据55A和由图形处理管线24的第二级输出的数据55B两者。共享数据信道50A可为环形缓冲 器,使得在产生和/或消耗数据55A和55B时两者可动态地增大及减小其大小,因此允许更有 效使用分配到共享数据信道50A的存储器块。GPC 42可管理写入指针51A和51B以及读取指 针53A和53B。写入指针51A可指向共享数据信道50A的存储器位置以写入数据55A,且读取指 针53A可指向共享数据信道50A存储器位置,从所述位置读取数据55A。
[0053] 通常,GPU 12以先进先出(FIFO)次序存储共享数据信道50A中的数据55A和55B,使 得读取指针53A和53B分别指向存储数据55A和55B中的最老数据段(有时被称作队列的头 部)的共享数据信道50A的存储器位置,且使得写入指针51A和51B分别指向存储数据55A和 55B中最新数据段(有时被称作队列的尾部)的共享数据信道50A的存储器位置。
[0054]共享数据信道50A还可在FIFO模式下操作,使得从共享数据信道50A删除从数据 55A和55B读取的数据且那些存储器位置可解除分配。如可看出,当GPU 12从共享数据信道 50A读取数据55A时,共享数据信道50A中的自由空间57增大,因此允许用于GPU 12的共享数 据信道50A中的额外空间将数据写入到数据55B中。类似地,当GPU12从共享数据信道50A读 取数据55B时,共享数据信道50A中的自由空间59增大,因此允许用于GPU 12的共享数据信 道50A中的额外空间将数据写入到数据55A中。尽管上文已经详细地描述仅共享数据信道 50A,但应理解共享数据信道50中的每一共享数据信道可共享上文关于共享数据信道50A所 描述的功能。
[0055]图4为说明用于图形处理管线24中的共享数据信道50的实例的框图。如图4中所展 示,共享数据信道50A可由图形处理管线24的级共享以存储由所述级产生的数据。
[0056]具体地说,共享数据信道50A可存储由图形处理管线24的外壳着色器级30产生的 数据52且可进一步存储由图形处理管线24的几何着色器级36产生的数据54。数据52可由图 形处理管线24的域着色器级34消耗且数据54可由图形处理管线24的像素着色器级消耗。 [0057] 通过外壳着色器级30和几何着色器级36存储到共享数据信道50A中的数据52和数 据54可分别包含由外壳着色器级30输出的补丁控制点和由几何着色器级36输出的顶点。由 于数据信道50A不高速缓存数据52和54,因此数据52和54可分别充当FIFO队列,其中从共享 数据信道50A删除从数据52和54读取的数据。
[0058] 在一些实例中,由图形处理管线24的一些级产生的相同数据可由图形处理管线24 的其它级消耗多次。由于当从FIFO队列读取存储到FIFO队列中的数据时可删除所述数据, 因此,如果数据存储到充当FIFO队列的共享数据信道50中的一者中,那么图形处理管线24 产生数据的的级可需要执行多次以产生相同数据代替多次执行顶点着色器28或域着色器 34以多次产生同一顶点,GPU 12可替代地将由顶点着色器28和域着色器34产生的数据高速 缓存在高速缓存模式共享信道56中。
[0059]举例来说,由图形处理管线24的顶点着色器级28产生的数据(包含由顶点着色器 级28转换的顶点)可由图形处理管线24的外壳着色器级30消耗。类似地,由图形处理管线24 的域着色器级34产生的数据(例如由域着色器级34输出的顶点位置)可由图形处理管线24 的几何着色器级36消耗。举例来说,由于邻近图元(例如,三角形)可共享顶点,同一顶点可 用于形成两个邻近三角形。因此,由顶点着色器级28和域着色器级34产生的顶点数据可消 耗多次。由于由顶点着色器级28和域着色器级34产生的数据可消耗多次,由这些级产生的 数据可高速缓存在高速缓存模式共享信道56中,使得响应于从高速缓存模式共享信道56读 取高速缓存的数据而可不删除所述高速缓存的数据。
[0060] 图5为说明高速缓存模式共享信道56的框图。如图5中所展示,高速缓存模式共享 信道56可包含两个共享数据信道:共享图元队列50B共享顶点高速缓存50C,以及高速缓存 窗70。共享顶点高速缓存50C可在高速缓存模式下操作,使得在存储到共享顶点高速缓存 50C中的数据从共享顶点高速缓存50C读取后可不被删除。存储到共享图元队列50B中的数 据62和数据64可包含由顶点着色器级28和域着色器级34产生的图元数据。举例来说,数据 62可包含由用于每一图元的顶点着色器级28产生的存储在共享顶点高速缓存50C处的顶点 数据的顶点标号和位置,且数据64可包含由用于每一图元的域着色器级34产生的存储在共 享顶点高速缓存50C处的顶点数据的顶点标号和位置。数据62和64还可包含相关联图元中 的每一者的解除分配旗标。存储到共享顶点高速缓存50C中的数据66可包含由顶点着色器 级28转换的顶点,而存储到共享顶点高速缓存50C中的数据68可包含由域着色器级34输出 的顶点位置。GPC 42可检查共享图元队列50B和共享顶点高速缓存50C两者的自由空间以确 定高速缓存模式共享信道56是否具有接受数据的足够自由空间。
[0061] 如果特定顶点已经存储于共享高速缓存50C的限制窗中,那么高速缓存窗70可存 储指不。举例来说,尚速缓存窗70可充当完全关联尚速缓存且存储顶点指标,共孚顶点尚速 缓存50C内的顶点的数据位置和着色器的指示(例如旗标)可消耗顶点。
[0062] GPC 42通过图元处理几何图元。对于顶点着色器28和域着色器34,如果GPC 42基 于检查顶点指标上的高速缓存窗70和/或顶点属于的着色器确定图元的特定顶点不在共享 顶点高速缓存50C中,那么高速缓存未命中可出现,且GPC 42可将命令发送到着色器单元46 以执行适当的着色器级(例如,顶点着色器28或域着色器34),从而产生所需顶点且从而将 所产生顶点数据存储在高速缓存模式共享信道56中。GPC 42可将共享顶点高速缓存50C处 的顶点数据的顶点标号和位置添加到共享图元队列50B中。GPC 42可将现高速缓存于高速 缓存模式共享信道56中的顶点的适当数据添加到高速缓存窗70。高速缓存窗70可以先入先 出(FIFO)方式起作用,使得如果高速缓存窗70在高速缓存未命中之后不存在空间,那么在 高速缓存窗70中的最老槽中相关联且使具有共享图元队列50B中其解除分配旗标集合的顶 点可为具有关于添加到高速缓存模式共享信道56中的最新顶点的信息的集合。然而,如果 GPC 42确定特定顶点高速缓存于高速缓存模式共享信道56中,那么GPC 42可使用所需顶点 的共享顶点高速缓存50C中的存储器位置且将共享顶点高速缓存50C处的顶点数据的顶点 标号和位置添加到共享图元队列50B中。以此方式,GPU 12可减少图形处理管线24中的级的 额外处理。
[0063] 为了执行外壳着色器30和几何着色器36,GPC 42可消耗来自共享图元队列50B和 共享顶点高速缓存50C两者的数据。GPC 42可从共享图元队列50B读取共享顶点高速缓存 50C中的顶点数据的顶点标号和位置。GPC 42可随后使用从共享图元队列50B读取的位置从 共享顶点高速缓存50C读取顶点数据。GPC 42可在读取数据之后移动共享图元队列50B的读 取指针。然而,由于后续图元还可使用仅从共享顶点高速缓存50C读出的同一顶点,因此GPC 42可在从共享顶点高速缓存50C读取高速缓存的顶点之后不立即移动共享顶点高速缓存 50C的读取指针。如果设定用于图元消耗顶点的共享图元队列50B中的相关联解除分配旗 标,那么可允许GPC 42移动读取指针且将来自高速缓存模式共享信道56的顶点解除分配。 GPC 42可将命令发送到着色器单元46以执行着色器级(例如,外壳着色器30和几何着色器 36),从而消耗顶点数据,且从而产生用于下一着色器级的顶点并将所产生顶点数据存储在 共享数据信道50A中。
[0064] GPC 42可监视高速缓存模式共享信道56和共享数据信道50A是否死锁。在一个实 例中,如果高速缓存模式共享信道56充满由顶点着色器级28产生的数据,或如果共享数据 信道50A充满由外壳着色器级30产生的数据,那么死锁可出现。在此情况下,由于外壳着色 器级30消耗由顶点级28产生的数据,外壳着色器级30无法消耗由顶点着色器级28产生且存 储于高速缓存模式共享信道56中的数据以产生存储到共享数据信道50A中的数据,因为饿 共享数据信道50A中不存在存储新近所产生数据的自由空间。此外,由于高速缓存模式共享 信道56充满由顶点着色器级28产生的数据,且没有数据可由外壳着色器30消耗,因此不可 将数据解除分配来释放高速缓存模式共享信道56的空间以存储由域着色器34产生的数据。 此外,由于域着色器34消耗由外壳着色器级30产生且存储于共享数据信道50A中的数据,因 此由外壳着色器30A产生且存储于共享数据信道50A中的数据不可由域着色器34消耗来释 放共享数据信道50A中的空间以供共享数据信道50A存储由几何着色器36产生的数据。 [0065]为了防止高速缓存模式共享信道56与共享数据信道50A之间的死锁情况,GPC 42 可保留用于存储分别由域着色器34和几何着色器36产生的数据的高速缓存模式共享信道 56和共享数据信道50A中的空间,使得高速缓存模式共享信道56和共享数据信道50A并不仅 存储分别由顶点着色器28和外壳着色器30产生的数据。通过(例如)确定存储来自域着色器 34和几何着色器36用于给定数目的着色器集群46中的波的输出必需的空间量,GPC 42可确 定分量共享图元队列50B和共享顶点高速缓存50C两者中的高速缓存模式共享信道56的空 间量,和保留共享数据信道50A的空间量。
[0066]图6为说明用于通过图形处理管线的级共享数据信道的实例过程的流程图。如图6 中所展示,所述过程可包含由GPU 12分配GPU 12的片上图形存储器40中由图形处理管线24 的至少两个级共享的共享数据信道50A(502)。所述过程可进一步包含在GPU 12中的着色器 单元46上执行图形处理管线24的至少两个级(504)。所述过程可进一步包含由GPU 12将由 在着色器单元46上执行的图形处理管线24的至少两个级产生的数据存储在片上图形存储 器40中的共享数据信道50A中(506)。
[0067] 在一些实例中,所述过程可进一步包含由GPU 12分配GPU 12的片上图形存储器40 中由图形处理管线24的第二至少两个级共享的第二高速缓冲模式共享信道56,其中共享数 据信道50A为第一共享数据信道。在一些实例中,所述过程可进一步包含在GPU12中的着色 器单元46上执行图形处理管线24的第二至少两个级。在一些实例中,所述过程可进一步包 含由GPU 12将由在着色器单元46上执行的图形处理管线24的第二至少两个级中的每一者 产生的第二数据存储在第二高速缓冲模式共享信道56中。
[0068]在一些实例中,所述过程可进一步包含至少部分地基于第一共享数据信道50A或 第二高速缓冲模式共享信道56的状态由GPU 12调度由着色器单元46执行的图形处理管线 24的一个或多个级,使得数据在第一共享数据信道50A或第二高速缓冲模式共享信道56中 可用以由图形处理管线24(当在着色器单元46上执行时)一个或多个级消耗,且自由空间在 第一共享数据信道50A或第二高速缓冲模式共享信道56中可用以存储由图形处理管线24 (当在着色器单元46上执行时)的一个或多个级产生的数据。
[0069] 在一些实例中图形处理管线24的至少两个级包含顶点着色器28和域着色器34。在 一些实例中,图形处理管线24的第二至少两个级包含外壳着色器30和几何着色器36。
[0070] 在一些实例中,所述过程可进一步包含由GPU 12保留第一共享数据信道50A和第 二高速缓冲模式共享信道56中的至少一者中的自由空间以防止第一共享数据信道50A与第 二高速缓冲模式共享信道56之间的死锁。
[0071] 在一或多个实例中,所描述的功能可实施在硬件、软件、固件或其任何组合中。如 果在软件中实施,则可将功能作为一或多个指令或代码而存储在计算机可读媒体上或经由 计算机可读媒体发射。计算机可读媒体可包含计算机数据存储媒体或通信媒体,通信媒体 包含促进将计算机程序从一处传递到另一处的任何媒体。数据存储媒体可以是可由一或多 个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或 数据结构的任何可用媒体。举例来说且非限制,此类计算机可读媒体可包括RAM、R0M、 EEPR0M、⑶-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或 存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。而且, 任何连接可恰当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、 数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源发 射软件,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包 含于媒体的定义中。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、 数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘 利用激光以光学方式再现数据。以上的组合也应该包含在计算机可读媒体的范围内。
[0072] 代码可以由一或多个处理器执行,所述一或多个处理器例如一或多个数字信号处 理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等效 的集成或离散逻辑电路。因此,如本文中所使用的术语"处理器"和"处理单元"可指前述结 构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文 中所描述的功能性可提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者 并入于组合式编解码器中。另外,可以将所述技术完全实施于一或多个电路或逻辑元件中。
[0073] 本发明的技术可实施于广泛多种装置或设备中,所述装置或设备包含无线手持 机、集成电路(1C)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元以强调经配 置以执行所揭示的技术的装置的功能性方面,但未必需要通过不同硬件单元实现。确切地 说,如上文所描述,各种单元可结合合适的软件和/或固件组合在一个编解码器硬件单元 中,或由互操作硬件单元的集合来提供,所述硬件单元包括如上文所描述的一个或一个以 上处理器。
[0074] 已经描述各种实例。所述及其它实例属于所附权利要求书的范围内。
【主权项】
1. 一种图形处理方法,其包括: 由图形处理单元GPU分配所述GPU的片上图形存储器中由图形处理管线的至少两个级 共享的共享数据信道; 在所述GRJ中的着色器单元上执行所述图形处理管线的所述至少两个级;及 由所述GPU在片上图形存储器中的所述共享数据信道中存储由所述着色器单元上执行 的所述图形处理管线的所述至少两个级中的每一者产生的数据。2. 根据权利要求1所述的方法,其进一步包括: 由所述GPU分配所述GPU的片上图形存储器中由所述图形处理管线的第二至少两个级 共享的第二共享数据信道,其中所述共享数据信道为第一共享数据信道; 在所述GRJ中的所述着色器单元上执行所述图形处理管线的所述第二至少两个级;及 由所述GPU在所述第二共享数据信道中存储由所述着色器单元上执行的所述图形处理 管线的所述第二至少两个级中的每一者产生的第二数据。3. 根据权利要求2所述的方法,其进一步包括: 至少部分地基于所述第一共享数据信道或所述第二共享数据信道的状态由所述GPU调 度所述着色器单元上的所述图形处理管线的一个或多个级的执行,使得数据在所述第一共 享数据信道或所述第二共享数据信道中可用以由所述着色器单元上执行的所述图形处理 管线的所述一个或多个级消耗,且自由空间在所述第一共享数据信道或所述第二共享数据 信道中可用以存储由所述着色器单元上执行的所述图形处理管线的所述一个或多个级产 生的数据。4. 根据权利要求2所述的方法,其中,所述第一共享数据信道在高速缓存模式下操作以 高速缓存存储于所述第一共享数据信道中的数据,且所述第二共享数据信道在先进先出 FIFO模式下操作。5. 根据权利要求2所述的方法,其中所述第一共享数据信道为第一环形缓冲器,且所述 第二共享数据信道为第二环形缓冲器。6. 根据权利要求2所述的方法,其中存储于所述第一共享数据信道中的所述数据包含 由所述图形处理管线的所述至少两个级产生的顶点数据,且存储于所述第二共享数据信道 中的所述第二数据包含由所述图形处理管线的所述第二至少两个级产生的图元。7. 根据权利要求6所述的方法,其中所述图形处理管线的所述至少两个级包含顶点着 色器和域着色器。8. 根据权利要求6所述的方法,其中所述图形处理管线的所述第二至少两个级包括外 壳着色器和几何着色器。9. 根据权利要求2所述的方法,其进一步包括: 由所述GPU保留所述第一共享数据信道和所述第二共享数据信道中的至少一者中的自 由空间以防止所述第一共享数据信道与所述第二数据共享信道之间的死锁。10. -种经配置以处理图形数据的设备,其包括: 图形处理单元GRJ,其经配置以: 分配所述GHJ的片上图形存储器中由图形处理管线的至少两个级共享的共享数据信 道; 在所述GPU中的着色器单元上执行所述图形处理管线的所述至少两个级;及将由所述 着色器单元上执行的所述图形处理管线的所述至少两个级中的每一者产生的数据存储在 片上图形存储器上的所述共享数据信道中。11. 根据权利要求10所述的设备,其中所述GHJ经进一步配置以: 分配所述GPU的片上图形存储器中由所述图形处理管线的第二至少两个级共享的第二 共享数据信道,其中所述共享数据信道为第一共享数据信道; 在所述GRJ中的所述着色器单元上执行所述图形处理管线的所述第二至少两个级;及 将由所述着色器单元上执行的所述图形处理管线的所述第二至少两个级中的每一者 产生的第二数据存储在所述第二共享数据信道中。12. 根据权利要求11所述的设备,其中所述GRJ经进一步配置以: 至少部分地基于所述第一共享数据信道或所述第二共享数据信道的状态调度所述着 色器单元上的所述图形处理管线的一个或多个级的执行,使得数据在所述第一共享数据信 道或所述第二共享数据信道中可用以由所述图形处理管线的所述一个或多个级消耗,且自 由空间在所述第一共享数据信道或所述第二共享数据信道中可用以存储由所述着色器单 元上执行的所述图形处理管线的所述一个或多个级产生的数据。13. 根据权利要求11所述的设备,其中,所述第一共享数据信道在高速缓存模式下操作 以高速缓存存储于所述第一共享数据信道中的数据,且所述第二共享数据信道在先进先出 FIFO模式下操作。14. 根据权利要求11所述的设备,其中所述第一共享数据信道为第一环形缓冲器,且所 述第二共享数据信道为第二环形缓冲器。15. 根据权利要求11所述的设备,其中存储于所述第一共享数据信道中的所述数据包 含由所述着色器单元上执行的所述图形处理管线的所述至少两个级产生的顶点数据,且存 储于所述第二共享数据信道中的所述第二数据包含由所述着色器单元上执行的所述图形 处理管线的所述第二至少两个级产生的图元。16. 根据权利要求11所述的设备,其中所述GRJ经进一步配置以: 保留所述第一共享数据信道和所述第二共享数据信道中的至少一者中的自由空间以 防止所述第一共享数据信道与所述第二共享数据信道之间的死锁。17. -种设备,其包括: 用于分配图形处理单元GPU的片上图形存储器中由图形处理管线的至少两个级共享的 共享数据信道的装置; 用于执行所述图形处理管线的所述至少两个级的装置;及 用于将由所述图形处理管线的所述至少两个级中的每一者的执行产生的数据存储在 片上图形存储器中的所述共享数据信道中的装置。18. 根据权利要求17所述的设备,其进一步包括: 用于分配所述GPU的片上图形存储器中由所述图形处理管线的第二至少两个级共享的 第二共享数据信道的装置,其中所述共享数据信道为第一共享数据信道; 用于执行所述图形处理管线的所述第二至少两个的装置;及 用于将由所述图形处理管线的所述第二至少两个级中的每一者的执行产生的第二数 据存储在所述第二共享数据信道中的装置。19. 根据权利要求18所述的设备,其进一步包括: 用于至少部分地基于所述第一共享数据信道或所述第二共享数据信道的状态调度所 述图形处理管线的一个或多个级的执行的装置,使得数据在所述第一共享数据信道或所述 第二共享数据信道中可用以由所述图形处理管线的所述一个或多个级消耗,且自由空间在 所述第一共享数据信道或所述第二共享数据信道中可用以存储由所述图形处理管线的所 述一个或多个级产生的数据。20. 根据权利要求18所述的设备,其中,所述第一共享数据信道在高速缓存模式下操作 以高速缓存存储于所述第一共享数据信道中的数据,且所述第二共享数据信道在先进先出 FIFO模式下操作。21. 根据权利要求18所述的设备,其中所述第一共享数据信道为第一环形缓冲器,且所 述第二共享数据信道为第二环形缓冲器。22. 根据权利要求18所述的设备,其中存储于所述第一共享数据信道中的所述数据包 含由所述图形处理管线的所述至少两个级产生的顶点数据,且存储于所述第二共享数据信 道中的所述第二数据包含由所述图形处理管线的所述第二至少两个级产生的图元。23. 根据权利要求18所述的设备,其进一步包括: 用于保留所述第一共享数据信道和所述第二共享数据信道中的至少一者中的自由空 间的装置以防止所述第一共享数据信道与所述第二共享数据信道之间的死锁。24. -种存储指令的计算机可读存储媒体,所述指令在被执行时致使一或多个可编程 处理器进行以下操作: 分配片上图形存储器中由图形处理管线的至少两个级共享的共享数据信道; 在着色器单元上执行所述图形处理管线的所述至少两个级;及 将由所述着色器单元上执行的所述图形处理管线的所述至少两个级中的每一者产生 的数据存储在片上图形存储器上的所述共享数据信道中。25. 根据权利要求24所述的计算机可读存储媒体,其中所述指令在执行时进一步致使 所述一或多个可编程处理器进行以下操作: 分配片上图形存储器中由所述图形处理管线的第二至少两个级共享的第二共享数据 信道,其中所述共享数据信道为第一共享数据信道; 在所述着色器单元上执行所述图形处理管线的所述第二至少两个级;及 将由所述着色器单元上执行的所述图形处理管线的所述第二至少两个级中的每一者 产生的第二数据存储在所述第二共享数据信道中。26. 根据权利要求25所述的计算机可读存储媒体,其中所述指令在执行时进一步致使 所述一或多个可编程处理器进行以下操作: 至少部分地基于所述第一共享数据信道或所述第二共享数据信道的状态调度所述着 色器单元上的所述图形处理管线的一个或多个级的执行,使得数据在所述第一共享数据信 道或所述第二共享数据信道中可用以由所述着色器单元上执行的所述图形处理管线的所 述一个或多个级消耗,且自由空间在所述第一共享数据信道或所述第二共享数据信道中可 用以存储由所述着色器单元上执行的所述图形处理管线的所述一个或多个级产生的数据。27. 根据权利要求25所述的计算机可读存储媒体,其中,所述第一共享数据信道在高速 缓存模式下操作以高速缓存存储于所述第一共享数据信道中的数据,且所述第二共享数据 信道在先进先出FIFO模式下操作。28. 根据权利要求25所述的计算机可读存储媒体,其中所述第一共享数据信道为第一 环形缓冲器,且所述第二共享数据信道为第二环形缓冲器。29. 根据权利要求25所述的计算机可读存储媒体,其中存储于所述第一共享数据信道 中的所述数据包含由所述着色器单元上执行的所述图形处理管线的所述至少两个级产生 的顶点数据,且存储于所述第二共享数据信道中的所述第二数据包含由所述着色器单元上 执行的所述图形处理管线的所述第二至少两个级产生的图元。30. 根据权利要求25所述的计算机可读存储媒体,其中所述指令在执行时进一步致使 所述一或多个可编程处理器进行以下操作: 保留所述第一共享数据信道和所述第二共享数据信道中的至少一者中的自由空间以 防止所述第一共享数据信道与所述第二共享数据信道之间的死锁。
【文档编号】G06T15/00GK106030663SQ201580008868
【公开日】2016年10月12日
【申请日】2015年1月26日
【发明人】梅春惠, 维尼特·戈尔, 金东炫
【申请人】高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1