CN107077716B - 用于图形处理的动态管线 - Google Patents
用于图形处理的动态管线 Download PDFInfo
- Publication number
- CN107077716B CN107077716B CN201580057673.3A CN201580057673A CN107077716B CN 107077716 B CN107077716 B CN 107077716B CN 201580057673 A CN201580057673 A CN 201580057673A CN 107077716 B CN107077716 B CN 107077716B
- Authority
- CN
- China
- Prior art keywords
- graphics data
- bypassable portion
- bypassable
- current
- current set
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/18—Timing circuits for raster scan displays
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
- G09G2330/022—Power management, e.g. power saving in absence of operation, e.g. no data being entered during a predetermined time
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
Abstract
本发明描述一种经配置以处理图形数据的设备。所述设备可包含固定硬件管线,其经配置以对当前图形数据集合执行一或多个功能。所述固定硬件管线可包含多个级,包含所述多个级的可旁路部分。所述设备可进一步包含:快捷电路,其经配置以在所述多个级的所述可旁路部分周围投送所述当前图形数据集合;以及控制器,其位于所述多个级的所述可旁路部分之前,所述控制器经配置以将所述当前图形数据集合选择性地投送到所述快捷电路或所述多个级的所述可旁路部分中的一者。
Description
技术领域
本发明涉及图形处理。
背景技术
用于显示的视觉内容(例如用于图形用户接口和视频游戏的内容)可由图形处理单元(GPU)产生。GPU可将二维或三维(3D)对象转换成可显示的二维(2D)像素表示。将关于3D对象的信息转换成可显示的位图被称为像素渲染,且要求相当大的存储器和处理能力。在过去,3D图形能力仅可用于强大工作站上。然而,现在3D图形加速器常见于个人计算机(PC)中以及嵌入式装置中,例如智能电话、平板计算机、便携式媒体播放器、便携式视频游戏控制台及其类似者。通常,嵌入式装置相比于常规PC具有较少计算能力和存储器容量。因而,当在嵌入式系统上实施此类技术时,3D图形渲染技术中增加的复杂性带来困难。
发明内容
本发明描述用于用固定硬件管线来处理图形数据的技术。明确地说,本发明描述用于将图形数据选择性地路由到固定硬件管线的可旁路级或到在所述可旁路级周围路由图形数据的快捷电路的设备和技术。
在本发明的一或多个实例中,控制器可经配置以基于一或多个不同准则来路由当前图形数据集合。所述准则可包含用于所述当前图形数据集合的当前指令、用于后续图形数据集合的指令,以及所述可旁路级是否当前正在处理其它图形数据的指示。以此方式,本发明的实例设备和技术可通过可旁路级或在可旁路级周围选择性地路由图形数据,同时维持有序执行,并且还提供改进的数据等待时间、电力消耗和芯片面积成本。
在本发明的一个实例中,一种经配置以处理图形数据的设备包括:固定硬件管线,其经配置以对当前图形数据集合执行一或多个功能,所述固定硬件管线包括多个级,包含所述多个级的可旁路部分;快捷电路,其经配置以在所述多个级的可旁路部分周围路由所述当前图形数据集合;以及控制器,其位于所述多个级的所述可旁路部分之前,所述控制器经配置以将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者。
在本发明的另一实例中,一种用于处理图形数据的方法包括:用固定硬件管线来处理当前图形数据集合,所述固定硬件管线经配置以对当前图形数据集合执行一或多个功能,所述固定硬件管线包括包含所述多个级的可旁路部分的多个级,以及经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合的快捷电路;以及用位于所述多个级的所述可旁路部分之前的控制器,来将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者。
在本发明的另一实例中,一种经配置以处理图形数据的设备包括:用于用固定硬件管线来处理当前图形数据集合的装置,所述固定硬件管线经配置以对所述当前图形数据集合执行一或多个功能,所述固定硬件管线包括包含所述多个级的可旁路部分的多个级,以及经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合的快捷电路;以及用于将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者的装置。
在另一实例中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在被执行时,致使经配置以处理图形数据的装置的一或多个处理器:用固定硬件管线来处理当前图形数据集合,所述固定硬件管线经配置以对所述当前图形数据集合执行一或多个功能,所述固定硬件管线包括包含所述多个级的可旁路部分的多个级,以及经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合的快捷电路;且将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者。
在附图和下文描述中陈述本发明的一或多个实例的细节。本发明的其它特征、目标和优点将从所述描述和图式以及权利要求书而显而易见。
附图说明
图1是示出经配置以使用本发明的技术的实例计算装置的框图。
图2是更详细地示出图1的组件的框图。
图3是示出实例固定硬件管线的框图。
图4是示出固定硬件管线的另一实例的框图。
图5是示出固定硬件管线的另一实例的框图。
图6是示出可根据本发明的技术的固定硬件管线的实例的框图。
图7A和图7B是示出图形处理中可出现的实例数据泡的概念图。
图8A和图8B是示出根据本发明的实例数据泡防止技术的概念图。
图9是示出根据本发明的技术的固定硬件管线的另一实例的框图。
图10是示出根据本发明的技术的实例旁路控制器的框图。
图11是说明本发明的实例方法的流程图。
图12是说明本发明的另一实例方法的流程图。
图13是说明本发明的另一实例方法的流程图。
图14是说明本发明的另一实例方法的流程图。
具体实施方式
使用固定硬件管线来执行许多图形处理技术。就是说,并不是使用具有相关联算术逻辑单元(ALU)的可编程处理单元,可使用一系列固定硬件逻辑单元来执行一或多个功能。固定硬件管线缺乏可编程处理单元的灵活性,因为固定硬件管线执行的功能无法改变。然而,与使用可编程处理单元可执行功能相比,固定硬件管线通常更快地执行功能。
并非针对希望将使用硬件逻辑单元执行的每一功能或功能组合具有多个固定管线,许多图形处理单元(GPU)被配置成具有包含用于多于一个功能的硬件逻辑单元的固定硬件管线。在此布置中,可能不需要(即,旁路)固定硬件管线的特定级(即,一或多个硬件逻辑单元)来执行某一功能。这是因为旁路的级是用于其它不同功能。
用于实施包含一或多个可旁路级的固定硬件管线的当前技术在电力消耗、芯片面积成本和数据等待时间方面展现缺点。鉴于这些缺点,本发明描述用于用固定硬件管线来处理图形数据的设备和技术。明确地说,本发明描述用于将图形数据选择性地路由到固定硬件管线的可旁路级或到在所述可旁路级周围路由图形数据的快捷电路的设备和技术。
在本发明的一或多个实例中,控制器可经配置以基于一或多个不同准则来路由当前图形数据集合。所述准则可包含用于所述当前图形数据集合的当前指令、用于后续图形数据集合的指令,以及所述可旁路级是否当前正在处理其它图形数据的指示。以此方式,本发明的实例设备和技术可通过可旁路级或在可旁路级周围选择性地路由图形数据,同时维持有序执行,并且还提供改进的数据等待时间、电力消耗和芯片面积成本。
图1是说明可使用本发明的动态固定管线和相关联技术的实例计算装置2的框图。计算装置2可包括(例如)个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、移动电话(例如,蜂窝式或卫星电话、陆线电话、因特网电话)、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视机、电视机顶盒、服务器、中间网络装置、主机计算机、任何移动装置或处理和/或显示图形数据的任何其它类型的装置。
如图1的实例中所说明,计算装置2可包含用户输入接口4、中央处理单元(CPU)6、存储器控制器8、系统存储器10、GPU 12、图形存储器14、显示接口16、显示器18以及总线20和22。注意,在一些实例中,图形存储器14可与GPU 12“在芯片上”。在一些情况下,图1中所示的CPU 6、存储器控制器8、GPU 12和图形存储器14以及可能显示接口16可在芯片上,例如在芯片上系统(SoC)设计中。用户输入接口4、CPU 6、存储器控制器8、GPU 12和显示接口16可使用总线20彼此通信。存储器控制器8和系统存储器10也可使用总线22彼此通信。总线20、22可为多种总线结构中的任一者,例如第三代总线(例如,超传输总线或无限带宽总线)、第二代总线(例如,高级图形端口总线、外围部件互连标准(PCI)高速总线,或高级eXentisible接口(AXI)总线)或另一类型的总线或装置互连件。应注意,图1中所示的不同组件之间的总线和通信接口的特定配置仅是示范性的,并且具有相同或不同组件的计算装置和/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2以致使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU6可执行用于控制GPU 12的操作的GPU驱动程序7。用户可经由一或多个输入装置(未展示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用程序可包含指令CPU 6以致使向显示器18渲染图形数据的一或多个图形再现指令。在一些实例中,软件指令可符合图形应用编程接口(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3DAPI、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形渲染指令,CPU 6可将一或多个图形渲染命令发布到GPU 12(例如,通过GPU驱动程序7),以致使GPU12执行渲染图形数据中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形图元的列表。
在其它实例中,在CPU 6上执行的软件指令可致使GPU 12执行通用着色器,其用于执行适用于由GPU硬件的高度并行性质执行的更一般计算。此类通用应用可为所谓的通用图形处理单元(GPGPU),且可符合通用API,例如OpenCL。
存储器控制器8促进数据进出系统存储器10的传送。举例来说,存储器控制器8可接收存储器读取和写入命令,且服务关于存储器系统10的此类命令以便为计算装置2中的组件提供存储器服务。存储器控制器8经由存储器总线22以通信方式耦合到系统存储器10。虽然在图1中将存储器控制器8说明为与CPU 6和系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的一些或全部功能性可实施在CPU 6和系统存储器10中的一或两者上。
系统存储器10可存储可由CPU 6存取以用于执行的程序模块和/或指令和/或由在CPU 6上执行的程序使用的数据。举例来说,系统存储器10可存储窗口管理器应用程序,其由CPU 6使用以在显示器18上呈现图形用户接口(GUI)。另外,系统存储器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的高度并行性质允许GPU 12比使用CPU6直接将场景绘制到显示器18更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器18上。
如将在下文更详细地阐释,GPU 12可为经配置以对当前图形数据集合执行一或多个功能的固定硬件管线。在本发明的上下文中,图形数据集合是可对其执行逻辑和/或数学函数的数据的一或多个值。所述固定硬件管线可包含多个级,包含所述多个级的可旁路部分。GPU 12可进一步包含:快捷电路,其经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合;以及控制器,其位于所述多个级的所述可旁路部分之前。所述控制器可经配置以将所述当前图形数据集合选择性地路由到所述多个级的快捷电路或可旁路部分中的一者。
在一些情况下,可将GPU 12集成到计算装置2的主板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的主板中的端口中或可以其它方式并入经配置以与计算装置2交互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。
GPU 12可直接耦合到图形存储器14。因此,GPU 12可在无需使用总线20的情况下从图形存储器14读取数据且将数据写入到图形存储器14。换句话说,GPU 12可使用本地存储装置而非芯片外存储器在本地处理数据。这允许GPU 12通过消除GPU 12经由总线20读取和写入数据的需要而以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独存储器,而是经由总线20利用系统存储器10。图形存储器14可包含一或多个易失性或非易失性存储器或存储装置,例如RAM、SRAM、DRAM、EPROM、EEPROM、快闪存储器、磁性数据媒体或光学存储媒体。
CPU 6和/或GPU 12可将经渲染图像数据存储在帧缓冲器15中。帧缓冲器15可为独立存储器或可分配在系统存储器10内。显示接口16可从帧缓冲器15检索数据,并配置显示器18以显示由经渲染图像数据表示的图像。在一些实例中,显示接口16可包含经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号的数/模转换器(DAC)。在其它实例中,显示接口16可将数字值直接传递到显示器18以用于处理。显示器18可包含监视器、电视机、投影装置、液晶显示器(LCD)、等离子显示面板、发光二极管(LED)阵列(例如有机LED(OLED)显示器)、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器18可集成在计算装置2内。举例来说,显示器18可为移动电话的屏幕。或者,显示器18可为经由有线或无线通信链路而耦合到计算装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。
图2是进一步详细地说明图1的CPU 6、GPU 12和系统存储器10的实例实施方案的框图。CPU 6可包含至少一个软件应用程序24、图形API 26和GPU驱动程序7,其中的每一者可为在CPU 6上执行的一或多个软件应用程序或服务。GPU 12可包含图形处理管线30,其包含一起操作以执行图形处理命令的多个图形处理级。GPU 12可经配置以多种渲染模式执行图形处理管线30,包含分格渲染模式和直接渲染模式。如图2中所示,图形处理管线30可包含命令引擎32、几何处理级34、光栅化级36和像素处理管线38。像素处理管线38可包含纹理引擎39。图形处理管线30中的组件中的每一者可实施为固定功能组件、可编程组件(例如,作为在可编程着色器单元上执行的着色器程序的部分),或实施为固定功能与可编程组件的组合。可用于CPU 6和GPU 12的存储器可包含系统存储器10和帧缓冲器15。帧缓冲器15可为系统存储器10的一部分或可与系统存储器10分开。帧缓冲器15可存储经渲染图像数据。
软件应用程序24可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用24可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用程序的计算机辅助设计程序、视频游戏应用,或可利用GPU的另一种类型的软件应用程序。
软件应用程序24可包含指示GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘图指令可包含定义将由GPU 12渲染的一组一或多个图形图元的指令。在一些实例中,绘图指令可共同地定义用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘图指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序24可经由图形API 26调用GPU驱动程序7,以将一或多个命令发布到GPU 12,以用于将一或多个图形图元渲染到可显示的图形图像中。举例来说,软件应用程序24可经由图形API 26调用GPU驱动程序7,以将图元定义提供给GPU 12。在一些情况下,可将图元定义以绘制图元(例如,三角形、矩形、三角扇、三角带等)的列表的形式提供给GPU 12。图元定义可包含指定与将渲染的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每一顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,例如色坐标、法向量和纹理坐标。
所述图元定义还可包含图元类型信息(例如,三角形、矩形、三角扇、三角带等)、按比例缩放信息、旋转信息及类似者。基于由软件应用程序24发布到GPU驱动程序7的指令,GPU驱动程序7可制定指定供GPU 12执行的一或多个操作以便渲染所述图元的一或多个命令。在GPU 12从CPU 6接收命令时,图形处理管线30解码所述命令且配置图形处理管线30内的一或多个处理元件以执行所述命令中指定的操作。在执行所指定操作之后,图形处理管线30将经渲染数据输出到与显示装置相关联的帧缓冲器15。图形管线30可经配置以在多种不同的渲染模式中的一者中执行,包含分格渲染模式和直接渲染模式。
GPU驱动程序7可进一步经配置以编译一或多个着色器程序,且将经编译的着色器程序下载到GPU 12内所包含的一或多个可编程着色器单元上。可以高级着色语言编写着色器程序,例如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用于图形的C(Cg)着色语言等。经编译的着色器程序可包含控制GPU 12内的可编程着色器单元的操作的一或多个指令。举例来说,着色器程序可包含顶点着色器程序和/或像素着色器程序。顶点着色器程序可控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个每顶点操作的指令。像素着色器程序可包含控制可编程像素着色器单元或统一着色器单元的执行的像素着色器程序,且包含指定一或多个每像素操作的指令。
图形处理管线30可经配置以经由GPU驱动程序7从CPU 6接收一或多个图形处理命令,并执行图形处理命令来产生可显示图形图像。如上文所论述,图形处理管线30包含一起操作以执行图形处理命令的多个级。然而,应注意,所述级不需要一定实施在单独的硬件块中。举例来说,几何处理级34和像素处理管线38的部分可实施为统一着色器单元的部分。并且,图形处理管线30可经配置以在多种不同的渲染模式中的一者中执行,包含分格渲染模式和直接渲染模式。
命令引擎32可接收图形处理命令,且配置图形处理管线30内的其余处理级以执行用于实行图形处理命令的各种操作。图形处理命令可包含(例如)绘图命令和图形状态命令。所述绘图命令可包含顶点规格命令,所述顶点规格命令指定一或多个顶点的位置坐标,并且在一些情况下,指定与所述顶点中的每一者相关联的其它属性值,例如色彩坐标、法向量、纹理坐标和雾坐标。所述图形状态命令可包含图元类型命令、变换命令、照明命令等。所述图元类型命令可指定将要渲染啊的图元的类型和/或顶点如何组合以形成图元。所述变换命令可指定对顶点执行的变换的类型。所述照明命令可指定图形场景内的不同光的类型、方向和/或放置。命令引擎32可致使几何处理级34相对于与一或多个所接收的命令相关联的顶点和/或图元而执行几何处理。
几何处理级34可对一或多个顶点执行每顶点操作和/或图元设置操作,以便产生用于光栅化级36的图元数据。每一顶点可与一组属性(例如,位置坐标、色彩值、法向量和纹理坐标)相关联。几何处理级34根据各种每顶点操作而修改这些属性中的一或多者。举例来说,几何处理级34可对顶点位置坐标执行一或多个变换以产生经修改的顶点位置坐标。几何处理级34可(例如)将模型化变换、观看变换、投影变换、模型视图(ModelView)变换、模型视图投影(ModelViewProjection)变换、视口变换和深度范围缩放变换中的一或多者应用于顶点位置坐标以产生经修改的顶点位置坐标。在一些情况下,顶点位置坐标可为模型空间坐标,且经修改的顶点位置坐标可为屏幕空间坐标。可在所述模型化、观看、投影和视口变换的应用之后获得屏幕空间坐标。在一些情况下,几何处理级34还可对顶点执行每顶点照明操作,以产生顶点的经修改的色彩坐标。几何处理级34还可执行其它操作,包含(例如)正常变换、正常规格化操作、观看量修剪、均匀划分和/或隐面消除操作。
几何处理级34可产生包含定义将被光栅化的图元的一组一或多个经修改的顶点的图元数据,以及指定顶点如何组合以形成图元的数据。所述经修改的顶点中的每一者可包含(例如)与所述顶点相关联的经修改的顶点位置坐标和经处理的顶点属性值。所述图元数据可共同地对应于将由图形处理管线30的其它级光栅化的图元。在概念上,每一顶点可对应于图元的其中所述图元的两个边缘会合的隅角。几何处理级34可将图元数据提供到光栅化级36以进行进一步处理。
在一些实例中,几何处理级34的全部或部分可由在一或多个着色器单元上执行的一或多个着色器程序实施。举例来说,在此些实例中,几何处理级34可由顶点着色器、几何着色器或其任何组合实施。在其它实例中,可将几何处理级34实施为固定功能硬件处理管线,或实施为固定功能硬件与在一或多个着色器单元上执行的一或多个着色器程序的组合。
光栅化级36经配置以从几何处理级34接收表示将被光栅化的图元的图元数据,且光栅化所述图元以产生对应于经光栅化的图元的多个源像素。在一些实例中,光栅化级36可确定哪些屏幕像素位置由将光栅化的图元覆盖,且产生用于被确定为由图元覆盖的每一屏幕像素位置的源像素。光栅化级36可通过使用所属领域的技术人员已知的技术来去确定哪些屏幕像素位置由图元覆盖,例如边缘遍历技术、评估边缘等式等。光栅化级36可将所得源像素提供到像素处理管线38以供进一步处理。
由光栅化级36产生的源像素可对应于屏幕像素位置,例如目的地像素,且与一或多个色彩属性相关联。针对特定经光栅化的图元所产生的所有源像素可称为与经光栅化的图元相关联。由光栅化级36确定的将由图元覆盖的像素可在概念上包含表示图元的顶点的像素、表示图元的边缘的像素以及表示图元的内部的像素。
像素处理管线38经配置以接收与经光栅化的图元相关联的源像素,且对所述源像素执行一或多个每像素操作。可由像素处理管线38执行的每像素操作包含(例如)阿尔法测试、纹理映射、色彩计算、像素着色、逐像素光照、雾处理、混合、像素所有权测试、源阿尔法测试、模板测试、深度测试、剪刀测试和/或点刻操作。另外,像素处理管线38可执行一或多个像素着色器程序以执行一或多个逐像素操作。由像素处理管线38产生的所得数据可在本文中被称作目的地像素数据,且存储在帧缓冲器15中。目的地像素数据可与帧缓冲器15中的具有与经处理源像素相同的显示位置的目的地像素相关联。目的地像素数据可包含例如色彩值、目的地阿尔法值、深度值等的数据。
纹理引擎39可包括作为像素处理管线38的一部分。纹理引擎39可包含设计成将纹理(纹素)应用于像素的可编程和固定功能硬件两者。纹理引擎39可包含用于执行纹理滤波的专用硬件,借此一或多个纹素值乘以一或多个像素值,并累加以产生最终纹理映射像素。如将在下文更详细地阐释,本发明提出对纹理引擎39的修改,使得纹理引擎39可用于使用单个着色器指令来执行LCHOF。
帧缓冲器15存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器15可存储每一目的地像素的色彩分量和目的地阿尔法值。举例来说,帧缓冲器15可存储每一像素的红色、绿色、蓝色阿尔法(RGBA)分量,其中“RGB”分量对应于色彩值,且“A”分量对应于目的地阿尔法值。虽然帧缓冲器15和系统存储器10被说明为单独的存储器单元,但在其它实例中,帧缓冲器15可为系统存储器10的部分。
如上文阐释,GPU 12的图形处理管线30可包含一或多个固定硬件管线,其经配置以对图形数据执行一或多个过程。可利用固定硬件管线的图形处理管线30的实例过程包含纹理映射(例如在纹理引擎39中执行)、曲面细分(例如在几何处理级34或单独的曲面细分单元中执行)、三角形光栅化(例如在光栅化级36中执行)、像素混合(例如在纹理引擎39中执行)。纹理映射、曲面细分、三角形光栅化和像素混合仅为可使用固定硬件管线执行的图形过程的实例。本发明的技术通常可结合固定硬件管线利用,不管正执行的实际处理如何。
图3是示出实例固定硬件管线的概念图。固定硬件管线100经配置以对图形数据集合执行功能(功能A)。并且,在本发明的上下文中,图形数据集合是可对其执行逻辑和/或数学函数的数据的一或多个值。举例来说,固定硬件管线100(或本发明中所描述的任何其它固定硬件管线)可经配置以并行地对图形数据的一或多个值执行功能。固定硬件管线100可包含多个级,其包含:硬件逻辑单元,其用于对图形数据执行功能(即,执行一或多个逻辑功能);以及一或多个寄存器,其经配置以存储对所述图形数据执行所述功能的结果。如图3中所示,固定硬件管线100包含硬件逻辑单元102a和102b的第一级,以及硬件逻辑单元103a、103b和103c的第二级。固定硬件管线100还包含寄存器101a-f,其经配置以存储硬件逻辑单元102a-b和103a-c对所述图形数据执行逻辑功能的中间结果。
固定硬件管线110经配置以对图形数据集合执行不同功能(即,不同于功能A的功能B)。如图3中所示,固定硬件管线110包含硬件逻辑单元112a和112b的第一级,以及硬件逻辑单元113a和113b的第二级。固定硬件管线110还包含寄存器111a-e,其经配置以存储硬件逻辑单元112a-b和113a-b对所述图形数据执行逻辑功能的中间结果。
如图3中所描绘,固定硬件管线100的硬件逻辑单元102a-b执行与固定管线110的硬件逻辑单元112a-b相同的功能。具有两个单独的固定硬件管线100和110来分别执行功能A和B可能不是合意的,和/或在芯片面积方面昂贵的,因为固定功能管线常常需要相当大量的空间来在GPU上实施。一般来说,可存在N个不同功能,且具有N个单独固定管线可大大地增加电力消耗和芯片面积。
因此,在一些实例中,GPU(例如GPU 12)可设计成包含单个固定硬件管线120,如所说明,其包含执行功能A和功能B两者必需的硬件逻辑单元。在某种意义上,用于功能A和功能B的固定硬件管线已合并。然而,为了使用固定硬件管线120执行功能A,可能不需要硬件管线120的级中对应于硬件逻辑单元113a-b的部分,且可改为以某一方式旁路。同样地,为了使用固定硬件管线120执行功能B,可不需要所述级的包含硬件逻辑单元103a-c的部分,且可改为以某一方式旁路。
用于旁路固定硬件管线的一或多个级以便执行特定功能(即,并不需要所述固定硬件管线的特定级的特定功能)的常规技术在实施所需的大芯片面积、通过所述固定硬件管线的高数据等待时间(即,取得数据以移动通过所述管线的时间)以及较大和/或非所要量的电力消耗方面展现缺点。
举例来说,为了使用固定管线120执行功能A,图形数据集合仍穿过与硬件逻辑单元113a-b相关联的寄存器,如果不旁路,甚至通过硬件逻辑单元113a-b停用且不对图形集合执行任何功能(即,所述图形数据集合穿过硬件逻辑单元113a-b)。同样地,为了使用固定管线120执行功能B,图形数据集合仍穿过与级103a-c相关联的寄存器,如果不旁路,甚至通过硬件逻辑单元103a-c停用且不对所述组图形执行任何功能。就是说,为了使用固定硬件管线120执行功能A或功能B需要额外的时钟循环来移动所述数据通过所述固定硬件管线的不需要的部分。由此,固定硬件管线120,虽然限制单目的管线(例如固定硬件管线100和110)所需的硬件的量,但相对于单目的管线来说,为并不使用所述管线的所有所述级的功能引入了增加的等待时间(即,增加的移动通过所述管线的时间)。
图4示出经配置以限制与图3的经合并固定硬件管线120相关联的等待时间问题的固定硬件管线的实例。在图4的实例中,硬件逻辑单元210经配置以对图形数据集合执行功能C。同样地,硬件逻辑单元220经配置以对所述组图形执行功能D。执行功能C和功能D所需的硬件逻辑单元是相同的,不同之处在于硬件逻辑单元230(即,单元210和220是相同的,除了单元210包含单元230,但单元220并不包含)。在某种意义上,硬件逻辑单元230对于功能D来说是可旁路的。
为了便于描述,硬件逻辑单元210和220的矩形块中的每一者表示用以存储特定硬件逻辑单元对所述组图形数据操作的结果的硬件逻辑单元和对应寄存器两者。此公约将用于本申请案中的每一后续图。
并非合并用于功能C和功能D的管线,并引入用于处理功能C的所得增加的等待时间,如在图3的实例中,而是图4的实例维持两个单独管线来分别执行功能C和功能D。就是说,在多路复用器240处接收图形数据集合,且多路复用器240可经配置以将所述组图形数据路由到功能C或功能D管线中的一者,取决于希望对所述图形数据执行的操作(例如,如通过软件指令来控制)。一旦穿过固定硬件管线的功能C或功能D部分中的任一者,所述组图形数据穿过多路分用器250,且转发到固定硬件管线的另一部分(例如到另一可旁路部分或到不可旁路的部分)。
因此,图4的实例并不具有图3的实例中的固定硬件管线120的等待时间缺点中的任一者。然而,图4的实例的固定硬件管线需要芯片(例如GPU 12)上的额外面积来实施功能D所需的额外硬件逻辑单元。另外,针对功能C和功能D具有两个单独的固定硬件管线可增加所述管线的电力消耗。
图5示出经配置以限制图3和图4的固定硬件管线的电力消耗缺点的固定硬件管线的另一实例。在图5的实例中,固定硬件管线255可包含在不使用时(即,当旁路时)可完全掉电的可旁路级260,因此降低电力消耗。在可旁路级260所执行的功能将不对图形数据集合执行的情况下,通过替代数据路径270来路由所述组图形数据。替代的数据路径270包含等于可旁路级260中的级数目的数目的寄存器。以此方式,所述组图形数据可以与所述组图形数据计时通过可旁路级260的情况相同的时间量计时通过替代的数据路径270。尽管图5的实例仍展现等待时间问题,但维持有序执行。就是说,旁路可旁路级260的所述组图形数据并不在的确利用可旁路级260的先前数据之前到达固定硬件管线255的后续级。
如前述论述中示出,用于执行GPU中的固定硬件管线的各种技术展现数据等待时间、芯片面积成本和电力消耗方面的缺点。鉴于这些缺点,本发明描述用于执行动态固定硬件管线(用于对图形数据执行一或多个功能)的设备和技术。在本发明的各种实例中,动态固定硬件管线可经配置以选择性地跳过未用的管线级(即,可旁路级)。明确地说,本发明的实例技术使用旁路控制器来选择性地路由图形数据集合通过固定硬件管线的一或多个可旁路级,或路由所述组图形数据通过所述可旁路级周围的快捷电路。
在本发明的各种实例中,旁路控制器可经配置以基于一或多个不同准则来路由当前图形数据集合。所述准则可包含用于所述当前图形数据集合的当前指令、用于后续图形数据集合的指令,以及所述可旁路级是否当前正在处理其它图形数据的指示。以此方式,如将在下文更详细地阐释,本发明的实例设备和技术可选择性地路由图形数据通过可旁路级或在可旁路级周围路由,同时维持有序执行,且提供改进的数据等待时间、电力消耗和芯片面积成本。
图6是示出可根据本发明的技术的固定硬件管线的实例的框图。图6描绘可在GPU12中实施的较大固定硬件管线的级300的可旁路部分。就是说,图形数据集合302从较大固定硬件管线的先前部分进入级300的可旁路部分,且所述组图形数据302退出级300的可旁路部分,以继续到较大固定硬件管线的后续部分。级300的可旁路部分包含硬件逻辑单元304a-n,其经配置以对所述组图形数据302执行特定功能。如图6中所描绘,硬件逻辑单元304a-n中的每一者包含以下两者:一或多个硬件逻辑单元,其经配置以对所述组图形数据302执行逻辑和/或数学函数,以及寄存器,其用以存储应用于所述组图形数据302的逻辑和/或数学函数的中间结果。
应理解,级300的所述可旁路部分表示较大固定硬件管线中的可旁路级的一个可能部分。固定硬件管线可包含多个可旁路部分,其各自具有其自身的旁路控制器。图9是示出根据本发明的技术的固定硬件管线的另一实例的框图。如在图9中可看出,固定硬件管线可包含级352的第一可旁路部分、级354(即,不可旁路的级)的固定部分,以及可旁路级356的第二部分。通过将级的可旁路部分合并到一个固定硬件管线中,与使用不具有可旁路级的单独固定硬件管线的实施方案相比,可节约芯片面积。
级300的可旁路部分所执行的功能可能无需为每一图形数据集合执行。由此,可针对特定图形数据集合旁路级300的可旁路部分。根据本发明的技术,图形数据集合302可通过级300的可旁路部分路由,或通过经由快捷电路314路由所述图形数据集合302来在级300的可旁路部分周围路由。多路复用器308可经配置以将所述图形数据集合302选择性地路由到级300的可旁路部分或快捷电路314中的一者。明确地说,位于级300的可旁路部分之前的旁路控制器310经配置以控制多路复用器308路由图形数据集合302的操作。不管图形数据集合302路由到哪里,图形数据集合302最终到达多路分用器312,其将图形数据集合302转发到较大固定硬件管线的另一部分,或可能作为所述管线的输出。
旁路控制器310可经配置以使用一或多个准则来确定向哪路由图形数据集合302。一个实例准则是对应于图形数据集合302的指令。就是说,如果与处理图形数据集合302有关的指令需要级300的可旁路部分所执行的功能,那么旁路控制器310将控制多路复用器308来通过级300的可旁路部分路由图形数据集合302。如果与处理图形数据集合302有关的指令并不需要级300的可旁路部分所执行的功能,那么旁路控制器310将控制多路复用器308路由图形数据集合302通过快捷电路314。由于快捷电路314是级300的可旁路部分周围的直接连接,且并不需要计时通过相同数目的级,因此旁路级300的可旁路部分时所经历的数据等待时间大大减少。就是说,需要较少的时钟循环来在任何被旁路级周围移动图形数据集合。
此外,旁路控制器310(或GPU 12的另一硬件单元)可进一步经配置以在确定路由图形数据集合302通过快捷电路314时,使级300的可旁路部分掉电。以此方式,可减少电力消耗。
在本发明的另一实例中,旁路控制器310可经配置以利用额外准则来确定对图形数据集合302的路由。就是说,并非唯一地基于与图形数据集合302有关的指令来路由图形数据集合302,旁路控制器310也可考虑级300的可旁路部分是否当前正处理先前图形数据集合。在这点上,硬件逻辑单元304a-n可经配置以将旁路信号306a-n发射到旁路控制器310,所述信号指示硬件逻辑单元304a-n是否当前正处理图形数据。在本发明的一个实例中,旁路信号306a-n可由与硬件逻辑单元306a-n相关联的寄存器产生。实际上,所述寄存器可包含额外硬件,其产生旁路信号306a-n,所述信号指示先前图形数据集合的数据是否当前正存储在寄存器中,且因此仍正由级300的可旁路部分处理。
如上文所论述,旁路控制器310可利用旁路信号306a-n来确定级300的可旁路部分的状态。在另一实例中,旁路控制器310可经配置以分析与先前图形数据集合有关的指令,且确定那些指令是否要求所述先前图形数据集合将由级300的可旁路部分处理。如果是,旁路控制器可基于当前时间和先前图形数据集合进入级300的可旁路部分的时间,确定先前图形集合是否仍然正由级300的可旁路部分处理。就是说,旁路控制器310可存储指示级300的可旁路部分需要处理图形数据集合的时间量,且基于从处理开始起已过去的时间量来确定是否仍在处理特定图形数据集合。
在一些情况下,仅在级300的可旁路部分当前不在处理其它数据的情况下,将图形数据集合302路由到快捷电路314可为有益的。这是为了避免其中在先前图形数据集合已结束由级300的可旁路部分处理之前,图形数据集合302经由快捷电路314到达多路分用器312的情形。此情形将导致数据无次序,这在需要有序执行时可为不可接受的。有序执行是对数据(或数据集合)以与数据(或数据集合)进入固定硬件管线相同的次序退出固定硬件管线的要求。
因此,在本发明的另一实例中,旁路控制器310可经配置以基于与当前图形数据集合302有关的指令和级300的可旁路部分的状态(即,级300的可旁路部分是否当前正处理先前图形数据集合)两者,将图形数据集合302路由到级300的可旁路部分或快捷电路314。应理解,旁路控制器310可经配置以便以任何方式确定级300的可旁路部分的状态,例如通过旁路信号306a-n,以及上文所论述的指令分析技术。
在此实例中,如果与处理图形数据集合302有关的指令需要级300的可旁路部分所执行的功能,那么旁路控制器310将控制多路复用器308通过级300的可旁路部分来路由图形数据集合302。如果与处理图形数据集合302有关的指令并不需要级300的可旁路部分所执行的功能,那么旁路控制器310将控制多路复用器308仅在级300的可旁路部分当前不在处理先前图形数据集合(例如,如由旁路信号306a-n指示)的情况下,路由图形数据集合302通过快捷电路314。就是说,为了维持有序执行,旁路控制器310可经配置以在级300的可旁路部分当前正在处理先前图形数据集合的情况下,通过级300的可旁路部分来路由图形数据集合302。如果当前图形数据集合并不需要级300的可旁路部分所执行的功能,将指令级300的可旁路部分将图形数据集合302不变地传递下去。在与图形数据集合302有关的指令并不需要级300的可旁路部分的处理的情况下,旁路控制器310经配置以路由图形数据集合302通过快捷电路314,且旁路控制器310已确定级300的可旁路部分当前不在处理先前图形数据集合。
在本发明的另一实例中,旁路控制器310可进一步经配置以分析与后续图形数据集合有关的指令,以确定图形数据集合302的路由。举例来说,旁路控制器310可经配置以分析与后续图形数据集合有关的指令,以确定所述后续图形数据集合是否将由级300的可旁路部分处理。后续图形数据集合在当前图形数据集合(例如,图形数据集合302)之后。此分析可用于确定针对当前图形数据集合(例如图形数据集合302)的路由,以便避免所谓的数据“泡”。
比先前数据集合更快地处理一个数据集合时,产生数据泡,因此导致其中在管线的某一部分中不在执行数据处理的时间周期(即,泡)。此类数据泡导致数据不连续、未用的管线级,以及一般图形管线低效。在图6的实例中,如果路由图形数据集合302通过快捷电路314,但路由后续图形数据集合通过级300的可旁路部分,那么可出现数据泡。由于数据以比通过快捷电路314慢得多的速率横越通过级300的可旁路部分,因此数据泡可形成于图形数据集合302与后续图形数据集合之间。
图7A和图7B是示出图形处理中可出现的实例数据泡的概念图。如图7A中所示,每一正方形表示图形管线的级。管线的中间部分是级的可旁路部分。级的每一后续行表示不同时间的管线。如图7A中所示,当不旁路管线级时,图形数据背靠背横越所述管线。就是说,在任何一个时间,不存在未用的管线级。然而,如图7B中示出,如果图形数据集合旁路级的可旁路部分,那么数据泡可出现,借此所述管线级的一部分在某一时间周期内不使用。如图7B中所示,如果可旁路级的可旁路部分的图形数据在先前数据已完成级的可旁路部分(例如为了维持有序执行)之前停止某一时间周期,那么此泡可变得较大。
因此,在本发明的另一实例中,旁路控制器310可进一步经配置以分析与后续图形数据集合有关的指令,且基于所述分析来路由图形数据集合302。在此实例中,如果与处理图形数据集合302有关的指令需要级300的可旁路部分所执行的功能,那么旁路控制器310将控制多路复用器308通过级300的可旁路部分来路由图形数据集合302。
如果与处理图形数据集合302有关的指令并不需要级300的可旁路部分所执行的功能,那么旁路控制器310将控制多路复用器308仅在级300的可旁路部分当前不在处理先前图形数据集合(例如,如由旁路信号306a-n)指示的情况下,且在与后续图形数据集合有关的指令的分析也不需要级300的可旁路部分的功能的情况下,路由图形数据集合302通过快捷电路314。
如果当前图形数据集合不需要级300的可旁路部分所执行的功能,但旁路控制器310确定后续图形数据集合的确需要级300的可旁路部分的功能,那么旁路控制器310经配置以通过级300的可旁路部分来路由图形数据集合302。在此情况下,将指令级300的可旁路部分来将图形数据集合302不变地传递下去。
在本发明的另一实例中,可基于先前数据流的特性来预测数据泡,且不考虑与后续图形数据集合有关的指令或任何其它信息。举例来说,旁路控制器310可经配置以基于先前图形数据集合是否旁路了级300的可旁路部分来预测当前图形数据集合是否可旁路级300的可旁路部分。举例来说,如果先前图形数据集合旁路了级300的可旁路部分,那么旁路控制器310将控制多路复用器308路由图形数据集合302通过快捷电路314。如果先前图形数据集合并不旁路级300的可旁路部分,那么旁路控制器310将控制多路复用器308路由图形数据集合302通过级300的可旁路部分。
图8A和图8B是示出根据本发明的实例数据泡预测技术的概念图。如图8A中所示,调度非可旁路图形数据(即,无法旁路级的可旁路部分的图形数据)和可旁路图形数据(即,可旁路级的可旁路部分的图形数据)的交替序列来移动通过图形管线。
如上文所描述,旁路控制器310可经配置以执行指令的转发检查,以确定当前图形数据集合是否应路由通过快捷电路314。然而,指令的可用性以及指示当前图形数据集合是否可旁路的图形数据的其它属性可能不可用,可能在时间和/或处理能力方面获得起来昂贵。这是因为可仅在进入图形管线之前创建当前图形数据集合。
因此,在本发明的另一实例中,旁路控制器310可经配置以基于先前图形数据集合是否旁路了级的可旁路部分,来预测当前图形数据集合是否可旁路级的可旁路部分。
举例来说,如图8中示出,旁路控制器310可经配置以路由第一可旁路图形数据集合800通过级的可旁路部分(即,不通过快捷电路314)。这是因为横越所述管线的先前图形数据集合是非可旁路图形数据。如上文所论述,级的可旁路部分的每个级可经配置以发信号通知旁路信号306,来指示管线级内部的当前数据是否可旁路。仅在级的可旁路部分内部的所有图形数据均可旁路时,旁路控制器310才将经配置以使可旁路图形数据能够使用快捷电路314。
此预测技术使用先前图形数据的历史数据来确定图形数据何时可旁路级的可旁路部分。举例来说,如果级的可旁路部分的长度为N个级,那么旁路控制器310可经配置以不允许任何数据旁路级的可旁路部分,直到所有N个级已向旁路控制器310发信号通知旁路信号306,其指示级的可旁路部分中的所有数据是可旁路的。图8B示出其中在上一周期,级的可旁路部分中的所有数据都是可旁路的实例。接着可将后续可旁路图形数据路由到快捷电路314。此技术允许以非常低的成本来预测管线是否可旁路。
图10是示出根据本发明的技术的实例旁路控制器310的框图。如图10中所示,一个实例旁路控制器310可包含指令分析器370、泡确定单元372、旁路信号分析器374和路由单元376。
指令分析器370可经配置以分析针对一或多个图形数据集合的指令,以确定特定图形数据集合是否需要将由固定硬件管线的级的可旁路部分所执行的功能处理。指令分析器370可经配置以向路由单元376提供指示,其是否特定图形数据集合是否需要由级的可旁路部分处理。指令分析器也可向泡确定单元372提供此指示。
泡确定单元372经配置以分析针对在当前图形数据集合之后的图形数据集合的指令,且在当前图形数据集合路由到快捷电路314的情况下,确定数据泡是否将出现。举例来说,如果与后续图形数据集合有关的指令需要使用可旁路级,那么如果当前图形集合路由到快捷电路317,那么泡确定单元372可向路由376指示数据泡可出现。同样地,如果与后续图形数据集合有关的指令并不需要使用可旁路级,那么如果当前图形集合路由到快捷电路317,那么泡确定单元372可向路由376指示数据泡将不出现。
在其它实例中,泡确定单元372可经配置以使用基于先前数据流的预测算法来确定数据泡是否将出现。在此上下文中,数据流可表示通过可旁路级或在所述可旁路级周围处理的多个图形数据集合。泡确定单元372可经配置以分析正通过可旁路级或在所述可旁路级周围处理的数据的先前实例,且识别导致数据泡的此类流的特性。泡确定单元372接着可预测在其中将来数据流具有相同特性的情形中的数据泡的将来出现,且向路由单元376指示可能的数据泡。
旁路信号分析器374经配置以接收和分析来自级300的可旁路部分的旁路信号306a-n。并且,旁路信号306a-n指示级300的可旁路部分当前是否正处理先前图形数据集合。旁路信号分析器374可向路由单元376传递级300的可旁路部分当前是否正处理先前图形数据集合的指示。
路由单元376经配置以基于指令分析器370、泡确定单元372和旁路信号分析器374所提供的一或多个准则,将当前图形数据集合路由到级300的可旁路部分或快捷电路314中的一者。并且,所述准则可包含以下各项中的一或多者:与当前图形数据集合有关的当前指令是否需要级300的可旁路部分所执行的功能的指示;级300的可旁路部分当前是否正处理先前图形数据集合的指示,以及将当前图形数据集合路由到快捷电路314是否将导致数据泡的指示。图9到12描绘可基于这些准则做出的路由决策的各种实例。一旦路由已确定,那么路由单元376向多路复用器308发送信号,来将当前图形数据集合路由到级300的可旁路部分或快捷电路314中的一者。
综上所述,本发明提出一种经配置以处理图形数据的设备(例如GPU 12)。所述设备可包含固定硬件管线,其经配置以对当前图形数据集合执行一或多个功能。所述固定硬件管线可包含多个级,包含所述多个级的可旁路部分(例如级300的可旁路部分)。所述多个级的可旁路部分可包含一或多个可旁路级。
所述固定硬件管线可进一步包含:快捷电路(例如快捷电路314),其经配置以在所述多个级的可旁路部分周围路由所述当前图形数据集合;以及控制器(例如旁路控制器310),其位于所述多个级的可旁路部分之前,所述控制器经配置以将当前图形数据集合路由到快捷电路314或所述多个级的可旁路部分中的一者。在本发明的一个实例中,所述控制器经配置以在控制器将当前图形数据集合路由到快捷电路的情况下,断开到所述多个级的可旁路部分的电力。
图11是说明本发明的实例方法的流程图。在图11的实例中,旁路控制器310经配置以基于将对当前图形数据集合执行的当前功能来路由所述当前图形数据集合。旁路控制器310经配置以确定与当前图形数据集合有关的指令是否需要级300的可旁路部分所执行的功能(900)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(904)。如果否,那么旁路控制器310经配置以将当前图形数据集合路由到快捷电路314(902)。
图12是说明本发明的另一实例方法的流程图。在图12的实例中,级300的可旁路部分包含一或多个经配置以存储图形数据的寄存器(例如对应于硬件逻辑单元304a-n)。所述一或多个寄存器经配置以向旁路控制器310发送信号(例如旁路信号306a-n),指示所述一或多个寄存器中的图形数据当前是否正由级300的可旁路部分处理。另外,在图12的实例中,旁路控制器310经配置以基于与当前图形数据集合有关的指令和一或多个寄存器所发送的信号两者来路由所述当前图形数据集合。
旁路控制器310经配置以确定与当前图形数据集合有关的指令是否需要级300的可旁路部分所执行的功能(1000)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1006)。如果否,那么旁路控制器进一步经配置以确定级300的可旁路部分当前是否正处理先前图形数据集合(1002)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1006)。如果否,那么旁路控制器310经配置以将当前图形数据集合路由到快捷电路314(1004)。
图13是说明本发明的另一实例方法的流程图。在图13的实例中,旁路控制器310进一步经配置以确定后续图形数据集合是否将由级300的可旁路部分处理。在此实例中,旁路控制器310经配置以基于与当前图形数据集合有关的指令和后续图形数据集合是否将由级300的可旁路部分处理的确定两者,来路由当前图形数据集合。
旁路控制器310经配置以确定与当前图形数据集合有关的指令是否需要级300的可旁路部分所执行的功能(1100)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1106)。如果否,那么旁路控制器进一步经配置以通过与后续图形指令集合有关的指令的分析,来确定将当前图形数据集合路由到快捷电路314是否将导致数据泡(1102)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1106)。如果否,那么旁路控制器310经配置以将当前图形数据集合路由到快捷电路314(1104)。
图14是说明本发明的另一实例方法的流程图。在图14的实例中,旁路控制器310经配置以基于与由级300的可旁路部分的一或多个寄存器发送的当前图形数据集合旁路信号有关的所有三个指令,以及后续图形数据集合是否将由级300的可旁路部分处理的确定,来路由当前图形数据集合。
旁路控制器310经配置以确定与当前图形数据集合有关的指令是否需要级300的可旁路部分所执行的功能(1200)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1208)。
如果不,那么旁路控制器进一步经配置以确定级300的可旁路部分当前是否正处理先前图形数据集合(1202)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1208)。
如果不,那么旁路控制器进一步经配置以通过与后续图形指令集合有关的指令的分析,来确定将当前图形数据集合路由到快捷电路314是否将导致数据泡(1204)。如果是,那么旁路控制器310经配置以将当前图形数据集合路由到级300的可旁路部分(1208)。如果否,那么旁路控制器310经配置以将当前图形数据集合路由到快捷电路314(1206)。
在一或多个实例中,上文所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件实施,那么功能可作为一或多个指令或代码存储在包括非暂时性计算机可读媒体的制品上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。作为实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪存存储器或可用来携带或存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。另外,在一些方面中,可在专用硬件和/或软件模块内提供本文中所描述的功能性。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。
Claims (30)
1.一种经配置以处理图形数据的设备,所述设备包括:
固定硬件管线,其经配置以对当前图形数据集合执行一或多个功能,所述固定硬件管线包括多个级,包含所述多个级的可旁路部分;
快捷电路,其经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合;以及
控制器,其位于所述多个级的所述可旁路部分之前,所述控制器经配置以:
分析用于将在所述当前图形数据集合之后处理的后续图形数据集合的指令;且
至少部分地基于用于所述后续图形数据集合的所述指令的所述分析,将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者。
2.根据权利要求1所述的设备,其中所述控制器进一步经配置以在所述控制器将所述当前图形数据集合路由到所述快捷电路的情况下,断开到所述多个级的所述可旁路部分的电力。
3.根据权利要求1所述的设备,其中所述多个级的所述可旁路部分包括一或多个可旁路级。
4.根据权利要求1所述的设备,其中所述控制器经配置以基于将对所述当前图形数据集合执行的当前功能来路由所述当前图形数据集合。
5.根据权利要求4所述的设备,
其中所述控制器经配置以在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分,且
其中所述控制器经配置以在所述当前功能并不需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述快捷电路。
6.根据权利要求4所述的设备,其中所述多个级的所述可旁路部分包括一或多个寄存器,其经配置以存储图形数据,所述一或多个寄存器经配置以向所述控制器发送信号,所述信号指示所述一或多个寄存器中的所述图形数据当前是否正由所述可旁路部分处理。
7.根据权利要求6所述的设备,
其中所述控制器经配置以在所述当前功能需要所述可旁路部分的情况下,或在所述信号指示所述一或多个寄存器中的所述图形数据当前正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述可旁路部分,且
其中所述控制器经配置以在所述当前功能并不需要所述可旁路部分,且所述信号指示所述一或多个寄存器中的所述图形数据当前不是正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述快捷电路。
8.根据权利要求6所述的设备,
其中所述控制器经配置以基于来自所述一或多个寄存器的所述信号,来路由所述当前图形数据集合。
9.根据权利要求8所述的设备,
其中所述控制器经配置以在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分,
其中所述控制器经配置以在用于所述后续图形数据集合的所述指令的确需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分,
其中所述控制器经配置以在所述信号指示所述一或多个寄存器中的所述图形数据当前正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述可旁路部分,且
其中所述控制器经配置以在所述当前功能并不需要所述可旁路部分、用于所述后续图形数据集合的所述指令并不需要所述可旁路部分,且所述信号指示所述一或多个寄存器中的所述图形数据当前不是正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述快捷电路。
10.根据权利要求4所述的设备,
其中所述控制器进一步经配置以确定后续图形数据集合是否将由所述可旁路部分处理,且
其中所述控制器进一步经配置以基于将对所述当前图形数据集合执行的所述当前功能,以及所述后续图形数据集合是否将由所述可旁路部分处理的所述确定,来路由所述当前图形数据集合。
11.根据权利要求10所述的设备,
其中所述控制器经配置以通过分析用于所述后续图形数据集合的指令来确定所述后续图形数据集合是否将由所述可旁路部分处理,且
其中所述控制器经配置以基于将对所述当前图形数据集合执行的所述当前功能以及用于所述后续图形数据集合的所述指令的所述分析,来路由所述当前图形数据集合。
12.根据权利要求11所述的设备,
其中所述控制器经配置以在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分,
其中所述控制器经配置以在用于所述后续图形数据集合的所述指令的确需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分,且其中所述控制器经配置以在所述当前功能并不需要所述可旁路部分,且用于所述后续图形数据集合的所述指令也并不需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述快捷电路。
13.一种用于处理图形数据的方法,所述方法包括:
用固定硬件管线来处理当前图形数据集合,所述固定硬件管线经配置以对所述当前图形数据集合执行一或多个功能,所述固定硬件管线包括:多个级,包含所述多个级的可旁路部分;以及快捷电路,其经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合;
分析用于将在所述当前图形数据集合之后处理的后续图形数据集合的指令;以及
至少部分地基于用于所述后续图形数据集合的所述指令的所述分析,用位于所述多个级的所述可旁路部分之前的控制器,来将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者。
14.根据权利要求13所述的方法,其进一步包括:
在所述当前图形数据集合路由到所述快捷电路的情况下,断开到所述多个级的所述可旁路部分的电力。
15.根据权利要求13所述的方法,其中所述多个级的所述可旁路部分包括一或多个可旁路级。
16.根据权利要求13所述的方法,其中路由所述当前图形数据集合包括基于将对所述当前图形数据集合执行的当前功能来路由所述当前图形数据集合。
17.根据权利要求16所述的方法,其进一步包括:
在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分;以及
在所述当前功能并不需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述快捷电路。
18.根据权利要求16所述的方法,其中所述多个级的所述可旁路部分包括一或多个寄存器,其经配置以存储图形数据,所述方法进一步包括:
从所述一或多个寄存器向所述控制器发送信号,其指示所述一或多个寄存器中的所述图形数据当前是否正由所述可旁路部分处理。
19.根据权利要求18所述的方法,其进一步包括:
在所述当前功能需要所述可旁路部分的情况下,或在所述信号指示所述一或多个寄存器中的所述图形数据当前正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述可旁路部分;以及
在所述当前功能并不需要所述可旁路部分,且所述信号指示所述一或多个寄存器中的所述图形数据当前不是正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述快捷电路。
20.根据权利要求18所述的方法,其进一步包括:
基于来自所述一或多个寄存器的所述信号,来路由所述当前图形数据集合。
21.根据权利要求20所述的方法,其进一步包括:
在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分;
在用于所述后续图形数据集合的所述指令的确需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分;
在所述信号指示所述一或多个寄存器中的所述图形数据当前正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述可旁路部分;以及
在所述当前功能并不需要所述可旁路部分、用于所述后续图形数据集合的所述指令并不需要所述可旁路部分,且所述信号指示所述一或多个寄存器中的所述图形数据当前不是正由所述可旁路部分处理的情况下,将所述当前图形数据集合路由到所述快捷电路。
22.根据权利要求16所述的方法,其进一步包括:
确定后续图形数据集合是否将由所述可旁路部分处理;以及
基于将对所述当前图形数据集合执行的所述当前功能,以及所述后续图形数据集合是否将由所述可旁路部分处理的所述确定,来路由所述当前图形数据集合。
23.根据权利要求22所述的方法,其进一步包括:
通过分析用于所述后续图形数据集合的指令来确定所述后续图形数据集合是否将由所述可旁路部分处理;以及
基于将对所述当前图形数据集合执行的所述当前功能,以及用于所述后续图形数据集合的所述指令的所述分析,来路由所述当前图形数据集合。
24.根据权利要求23所述的方法,其进一步包括:
在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分;
在用于所述后续图形数据集合的所述指令的确需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分;以及
在所述当前功能并不需要所述可旁路部分,且用于所述后续图形数据集合的所述指令也并不需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述快捷电路。
25.一种经配置以处理图形数据的设备,所述设备包括:
用于用固定硬件管线来处理当前图形数据集合的装置,所述固定硬件管线经配置以对所述当前图形数据集合执行一或多个功能,所述固定硬件管线包括:多个级,包含所述多个级的可旁路部分;以及快捷电路,其经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合;
用于分析用于将在所述当前图形数据集合之后处理的后续图形数据集合的指令的装置,以及
用于至少部分地基于用于所述后续图形数据集合的所述指令的所述分析,将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者的装置。
26.根据权利要求25所述的设备,其中所述用于路由所述当前图形数据集合的装置包括用于基于将对所述当前图形数据集合执行的当前功能来路由所述当前图形数据集合的装置。
27.根据权利要求26所述的设备,其进一步包括:
用于在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分的装置;以及
用于在所述当前功能并不需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述快捷电路的装置。
28.一种存储指令的计算机可读存储媒体,所述指令在被执行时,致使经配置以处理图形数据的装置的一或多个处理器:
用固定硬件管线来处理当前图形数据集合,所述固定硬件管线经配置以对所述当前图形数据集合执行一或多个功能,所述固定硬件管线包括:多个级,包含所述多个级的可旁路部分;以及快捷电路,其经配置以在所述多个级的所述可旁路部分周围路由所述当前图形数据集合;
分析用于将在所述当前图形数据集合之后处理的后续图形数据集合的指令;以及
至少部分地基于用于所述后续图形数据集合的所述指令的所述分析,将所述当前图形数据集合选择性地路由到所述快捷电路或所述多个级的所述可旁路部分中的一者。
29.根据权利要求28所述的计算机可读存储媒体,其中所述一或多个处理器进一步经配置以基于将对所述当前图形数据集合执行的当前功能来路由所述当前图形数据集合。
30.根据权利要求29所述的计算机可读存储媒体,其中所述一或多个处理器进一步经配置以:
在所述当前功能需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述可旁路部分;以及
在所述当前功能并不需要所述可旁路部分的情况下,将所述当前图形数据集合路由到所述快捷电路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/537,589 US9697580B2 (en) | 2014-11-10 | 2014-11-10 | Dynamic pipeline for graphics processing |
US14/537,589 | 2014-11-10 | ||
PCT/US2015/055767 WO2016077025A1 (en) | 2014-11-10 | 2015-10-15 | Dynamic pipeline for graphics processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077716A CN107077716A (zh) | 2017-08-18 |
CN107077716B true CN107077716B (zh) | 2020-06-02 |
Family
ID=54366511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580057673.3A Active CN107077716B (zh) | 2014-11-10 | 2015-10-15 | 用于图形处理的动态管线 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9697580B2 (zh) |
EP (1) | EP3218868B1 (zh) |
JP (1) | JP6309696B2 (zh) |
CN (1) | CN107077716B (zh) |
WO (1) | WO2016077025A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9984434B1 (en) | 2016-09-23 | 2018-05-29 | Apple Inc. | Techniques to derive efficient conversion and/or color correction of video data |
US10474408B2 (en) * | 2017-09-07 | 2019-11-12 | Apple Inc. | Image data processing pipeline bypass systems and methods |
GB2608094A (en) * | 2021-01-27 | 2022-12-28 | Advanced Risc Mach Ltd | Graphics processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412061B1 (en) * | 1994-05-23 | 2002-06-25 | Cirrus Logic, Inc. | Dynamic pipelines with reusable logic elements controlled by a set of multiplexers for pipeline stage selection |
WO2008157190A2 (en) * | 2007-06-11 | 2008-12-24 | Samir Srivastava | Adapter for soft earning units |
CN102667743A (zh) * | 2009-10-09 | 2012-09-12 | 高通股份有限公司 | 存取具有非均匀页大小的多通道存储器系统 |
CN103348320A (zh) * | 2011-01-14 | 2013-10-09 | 高通股份有限公司 | 通用图形处理单元中的计算资源管线化 |
CN103999128A (zh) * | 2011-12-15 | 2014-08-20 | 高通股份有限公司 | 具有命令处理器的图形处理单元 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1985000453A1 (en) | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
AU553416B2 (en) | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
US5555384A (en) | 1989-12-01 | 1996-09-10 | Silicon Graphics, Inc. | Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction |
US5798770A (en) * | 1995-03-24 | 1998-08-25 | 3Dlabs Inc. Ltd. | Graphics rendering system with reconfigurable pipeline sequence |
US5964866A (en) | 1996-10-24 | 1999-10-12 | International Business Machines Corporation | Elastic self-timed interface for data flow elements embodied as selective bypass of stages in an asynchronous microprocessor pipeline |
US6587940B1 (en) * | 2000-01-18 | 2003-07-01 | Hewlett-Packard Development Company | Local stall/hazard detect in superscalar, pipelined microprocessor to avoid re-read of register file |
US6490674B1 (en) * | 2000-01-28 | 2002-12-03 | Hewlett-Packard Company | System and method for coalescing data utilized to detect data hazards |
US7065665B2 (en) * | 2002-10-02 | 2006-06-20 | International Business Machines Corporation | Interlocked synchronous pipeline clock gating |
US20050195198A1 (en) * | 2004-03-03 | 2005-09-08 | Anderson Michael H. | Graphics pipeline and method having early depth detection |
US7268786B2 (en) | 2004-05-14 | 2007-09-11 | Nvidia Corporation | Reconfigurable pipeline for low power programmable processor |
US7385609B1 (en) | 2004-11-02 | 2008-06-10 | Nvidia Corporation | Apparatus, system, and method for increased processing flexibility of a graphic pipeline |
US8933933B2 (en) * | 2006-05-08 | 2015-01-13 | Nvidia Corporation | Optimizing a graphics rendering pipeline using early Z-mode |
US8086832B2 (en) * | 2006-05-19 | 2011-12-27 | International Business Machines Corporation | Structure for dynamically adjusting pipelined data paths for improved power management |
WO2008012874A1 (fr) * | 2006-07-25 | 2008-01-31 | National University Corporation Nagoya University | Dispositif de traitement d'opération |
US7971043B2 (en) | 2007-11-22 | 2011-06-28 | Andes Technology Corporation | Electronic system and method for changing number of operation stages of a pipeline |
US8806181B1 (en) | 2008-05-05 | 2014-08-12 | Marvell International Ltd. | Dynamic pipeline reconfiguration including changing a number of stages |
JP2010198128A (ja) | 2009-02-23 | 2010-09-09 | Toshiba Corp | プロセッサシステム |
US9529599B2 (en) * | 2012-02-13 | 2016-12-27 | William Erik Anderson | Dynamic propagation with iterative pipeline processing |
US9019284B2 (en) | 2012-12-20 | 2015-04-28 | Nvidia Corporation | Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline |
US9380312B2 (en) * | 2014-07-14 | 2016-06-28 | Apple Inc. | Encoding blocks in video frames containing text using histograms of gradients |
-
2014
- 2014-11-10 US US14/537,589 patent/US9697580B2/en active Active
-
2015
- 2015-10-15 CN CN201580057673.3A patent/CN107077716B/zh active Active
- 2015-10-15 EP EP15788512.0A patent/EP3218868B1/en active Active
- 2015-10-15 WO PCT/US2015/055767 patent/WO2016077025A1/en active Application Filing
- 2015-10-15 JP JP2017524392A patent/JP6309696B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412061B1 (en) * | 1994-05-23 | 2002-06-25 | Cirrus Logic, Inc. | Dynamic pipelines with reusable logic elements controlled by a set of multiplexers for pipeline stage selection |
WO2008157190A2 (en) * | 2007-06-11 | 2008-12-24 | Samir Srivastava | Adapter for soft earning units |
CN102667743A (zh) * | 2009-10-09 | 2012-09-12 | 高通股份有限公司 | 存取具有非均匀页大小的多通道存储器系统 |
CN103348320A (zh) * | 2011-01-14 | 2013-10-09 | 高通股份有限公司 | 通用图形处理单元中的计算资源管线化 |
CN103999128A (zh) * | 2011-12-15 | 2014-08-20 | 高通股份有限公司 | 具有命令处理器的图形处理单元 |
Also Published As
Publication number | Publication date |
---|---|
US9697580B2 (en) | 2017-07-04 |
US20160132987A1 (en) | 2016-05-12 |
JP2017539004A (ja) | 2017-12-28 |
WO2016077025A1 (en) | 2016-05-19 |
JP6309696B2 (ja) | 2018-04-11 |
CN107077716A (zh) | 2017-08-18 |
EP3218868B1 (en) | 2019-11-20 |
EP3218868A1 (en) | 2017-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3257024B1 (en) | Hybrid rendering in graphics processing | |
JP5866457B2 (ja) | オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替 | |
KR102006584B1 (ko) | 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭 | |
CN109564694B (zh) | 用于基于入库的图形处理的顶点着色器 | |
US10078883B2 (en) | Writing graphics data from local memory to system memory | |
EP3427229B1 (en) | Visibility information modification | |
US9646359B2 (en) | Indefinite texture filter size for graphics processing | |
US9324127B2 (en) | Techniques for conservative rasterization | |
CN107851330A (zh) | 用于图形处理的零像素剔除 | |
CN107077716B (zh) | 用于图形处理的动态管线 | |
US20190087930A1 (en) | Adding metadata to texture surfaces for bandwidth compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |