用于图形处理的任意控制点处的容错抢占机制的制作方法_3

文档序号:9756975阅读:来源:国知局
出抢占请求来停止其当前处理以支持另一工作。
[0035] 图形处理管线30可经配置以经由图形驱动程序28从CPU 6接收一或多个图形处理 命令,且执行图形处理命令以产生可显示的图形图像。如上文所论述,图形处理管线30包含 一起操作以执行图形处理命令的多个级。然而,应注意,所述级不需要一定实施在单独的硬 件块中。例如,几何处理级34及像素处理管线38的部分可实施为统一着色器单元的部分。同 样,图形管线30可经配置以在多个不同的渲染模式中的一者中执行,包含分箱渲染模式及 直接渲染模式。
[0036]命令引擎32可接收图形处理命令且配置图形处理管线30内的剩余的处理级以执 行用于实行图形处理命令的各种操作。图形处理命令可包含(例如)绘图命令及图形状态命 令。所述绘图命令可包含顶点规格命令,所述顶点规格命令指定一或多个顶点的位置坐标, 并且在一些情况下,指定与所述顶点中的每一者相关联的其它属性值,例如色彩坐标、法向 量、纹理坐标及雾坐标。所述图形状态命令可包含图元类型命令、变换命令、光照命令等。所 述图元类型命令可指定将要渲染的图元的类型及/或顶点如何组合以形成图元。所述变换 命令可指定对顶点执行的变换的类型。所述光照命令可指定图形场景内的不同光的类型、 方向及/或布局。命令引擎32可致使几何处理级34相对于与一或多个所接收的命令相关联 的顶点及/或图元而执行几何处理。
[0037]几何处理级34可对一或多个顶点执行逐顶点操作及/或图元设置操作以便产生用 于光栅化级36的图元数据。每一顶点可与一组属性(例如,位置坐标、色彩值、法向量及纹理 坐标)相关联。几何处理级34根据各种逐顶点操作而修改这些属性中的一或多者。例如,几 何处理级34可对顶点位置坐标执行一或多个变换以产生经修改的顶点位置坐标。几何处理 级34可(例如)向顶点位置坐标应用模型化变换、观看变换、投影变换、Model View变换、 ModelViewProjection变换、视口变换及深度范围缩放变换中的一或多者以产生经修改的 顶点位置坐标。在一些情况下,顶点位置坐标可为模型空间坐标,且经修改的顶点位置坐标 可为屏幕空间坐标。可在所述模型化、观看、投影及视口变换的应用之后获得屏幕空间坐 标。在一些情况下,几何处理级34还可对顶点执行逐顶点光照操作以产生顶点的经修改的 色彩坐标。几何处理级34还可执行其它操作,包含(例如)正常变换、正常规格化操作、观看 量修剪、均匀划分及/或隐面消除操作。
[0038] 几何处理级34可产生包含界定将被光栅化的图元的一组一或多个经修改的顶点 的图元数据以及指定顶点如何组合以形成图元的数据。所述经修改的顶点中的每一者可包 含(例如)与所述顶点相关联的经修改的顶点位置坐标及经处理的顶点属性值。所述图元数 据可共同地对应于将由图形处理管线30的其它级光栅化的图元。在概念上,每一顶点可对 应于图元的其中所述图元的两个边缘会合的隅角。几何处理级34可将图元数据提供到光栅 化级36以用于进一步处理。
[0039] 在一些实例中,几何处理级34的全部或部分可由在一或多个着色器单元上执行的 一或多个着色器程序实施。例如,在此些实例中,几何处理级34可由顶点着色器、几何着色 器或其任何组合实施。在其它实例中,可将几何处理级34实施为固定功能硬件处理管线或 实施为固定功能硬件与在一或多个着色器单元上执行的一或多个着色器程序的组合。 [0040]光栅化级36经配置以从几何处理级34接收表示将被光栅化的图元的图元数据,且 光栅化所述图元以产生对应于光栅化的图元的多个源像素。在一些实例中,光栅化级36可 确定哪些屏幕像素位置由将被光栅化的图元覆盖,且产生用于被确定为由图元覆盖的每一 屏幕像素位置的源像素。光栅化级36可通过使用所属领域的技术人员已知的技术(例如边 缘行走技术、评估边缘等式等)来确定哪些屏幕像素位置由图元覆盖。光栅化级36可将所得 的源像素提供到像素处理管线38以供进一步处理。
[0041]由光栅化级36产生的源像素可对应于屏幕像素位置,例如目的地像素,且与一或 多个色彩属性相关联。可称针对特定光栅化的图元所产生的所有源像素与光栅化的图元相 关联。由光栅化级36确定的将由图元覆盖的像素可在概念上包含表示图元的顶点的像素、 表示图元的边缘的像素及表示图元的内部的像素。
[0042]像素处理管线38经配置以接收与光栅化的图元相关联的源像素,且对所述源像素 执行一或多个逐像素操作。可由像素处理管线38执行的逐像素操作包含(例如)阿尔法测 试、纹理映射、色彩计算、像素着色、逐像素光照、雾处理、混合、像素所有权测试、源阿尔法 测试、模板测试、深度测试、剪刀测试及/或点刻操作。另外,像素处理管线38可执行一或多 个像素着色器程序以执行一或多个逐像素操作。由像素处理管线38产生的所得数据可在本 文中被称作目的地像素数据且存储在帧缓冲区15中。所述目的地像素数据可与帧缓冲区15 中的具有与被处理的源像素相同的显示位置的目的地像素相关联。所述目的地像素数据可 包含例如色彩值、目的地阿尔法值、深度值等数据。
[0043]帧缓冲区15存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相 关联。在一些实例中,帧缓冲区15可存储每一目的地像素的色彩分量及目的地阿尔法值。例 如,帧缓冲区15可存储每一像素的红色、绿色、蓝色阿尔法(RGBA)分量,其中"RGB"分量对应 于色彩值,且"A"分量对应于目的地阿尔法值。虽然帧缓冲区15及系统存储器10被说明为单 独的存储器单元,但在其它实例中,帧缓冲区15可为系统存储器10的部分。
[0044]图3是说明图1的CPU 6、GPU 12及系统存储器10在GPGPU应用中的实例实施方案的 框图。应注意,可基于经加载以在GPU上运行的软件以及用于控制GPU的操作的驱动程序而 选择性地驱动图1的系统的GPU 12以执行图形处理任务、GPGPU任务或适合于GPU的任何其 它类型的任务。在图3的实例中,CPU 6可执行至少一个软件应用25及GPGPU驱动程序50,其 中的每一者可为在CPU 6上执行的一或多个软件应用或服务。GPU 12可经配置以执行通用 着色器52。通用着色器52可为适用于在GPU 12上执行的利用GPU 12的处理元件的并行性质 来执行计算的任何应用。再者,CPU 6及GPU 12可用的存储器可包含系统存储器10 APU 12 还可利用更快的本地图形存储器14。
[0045] 软件应用25可为利用GPU 12的功能性的任何应用。例如,软件应用25可为需要GPU 12进行复杂计算的应用。
[0046] 软件应用25可调用GPGPU驱动程序50(例如)以向GPU 12发出一或多个命令以用于 执行通用着色器52。如将在下文更详细地阐释,GPGPU驱动程序50可由软件应用25使用以向 GPU 12发出抢占请求来停止其当前处理以支持另一工作。
[0047]如上文所论述,本发明涉及用于图形处理的技术,且更具体来说涉及用于任意控 制点处的抢占的技术。具体来说,本发明涉及用于计算系统中的I/O装置的抢占机制的技 术。具体来说,将在用于操作系统中以停止及恢复图形处理操作(例如,在图形处理单元 (GPU)上执行的图形处理)的抢占机制方面描述本发明。
[0048]简单来说,GPU上的抢占请求是由在图形处理系统的另一实体(例如,在中央处理 单元(CPU)上执行的应用)作出的用以停止命令缓冲区的当前图形处理以支持需要GPU处理 的另一较高优先级操作的请求。通常,此类抢占请求将源自操作系统。由此,所述较高优先 级操作可为操作系统在那时认为是较高优先级的可由GPU 12执行的任何操作。
[0049]图4是说明实例抢占请求的框图。如图4中所展示,CPU 6向GPU 12发出抢占请求以 停止执行当前任务。在一些实例中,所述抢占请求可通过GPU驱动程序7被传送到GPU 12。在 图4的实例中,由GPU 12执行的当前任务是命令缓冲区68中的渲染命令流。命令缓冲区68描 绘三角形基元A、B及C的绘制命令。CPU 6的抢占请求指令GPU 12停止当前任务且替代地开 始处理不同的任务,例如,辅助命令缓冲区70中展示的渲染命令。再者,辅助命令缓冲区70 中的命令是用于三角形基元的不同集合的不同绘制命令(例如,以渲染与当前通过命令缓 冲区68渲染的帧或瓦片不同的帧或瓦片)。应注意,抢占请求不限于渲染命令流,而是可作 出以抢占当前由GPU 12执行的任何种类的命令流以支持任何类型的命令流(渲染、一般计 算或其它)。
[0050] 用于抢占图形处理的常规的技术依赖于使用所谓的"安全点"。即,如果GPU接收到 抢占当前处理的请求,那么所述GPU继续处理直到特定点(例如,命令缓冲区中的特定点)且 保存关于所述点处的处理的状态的信息。此信息可包含命令缓冲区中的处理曾被停止且应 重新开始的点、接收GHJ处理的输出的任何缓冲区的内容,及可用作所述命令中的所述点处 的任何GPU处理的输入数据的一或多个缓冲区的内容。
[0051] 利用安全点的常规的抢占机制包含硬件及软件实施方案两者。一些软件解决方案 使用直接存储器存取缓冲区的大小来确定在哪里定位安全点。其它软件解决方案使用绘制 边界或分箱边界(即,所述帧的特定区)来确定在哪里定位安全点。用于抢占的其它技术可 利用额外的硬件支持以影响分箱、三角形或像素水平处的更细粒度的。虽然产生操作比仅 软件技术更快,但此些硬
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1