用于执行镶嵌化操作的图形处理单元及其方法技术

技术编号:14454804 阅读:35 留言:0更新日期:2017-01-19 02:36
本发明专利技术提出一种用于执行镶嵌化操作的图形处理单元及其方法。所述方法包括以下步骤:从第一命令队列中加载顶点着色命令至着色器模块;执行顶点着色命令以计算顶点的变化,从而利用顶点作为第一输入数据;存储第一镶嵌化处理阶段命令至第二命令队列;加载第一镶嵌化处理阶段命令至着色器模块;以及执行第一镶嵌化处理阶段命令以计算第一镶嵌化处理阶段的输出,从而利用顶点的变化作为第二输入数据执行第一镶嵌化处理阶段。顶点着色命令由第一处理单元存储至第一命令队列。顶点的变化和第一镶嵌化处理阶段的输出被存储至图形处理单元的高速缓存。本发明专利技术所提供的用于执行镶嵌化操作的图形处理单元及其方法,可更加灵活和自主地处理相关的计算。

【技术实现步骤摘要】

本专利技术涉及图形处理单元和用于所述图形处理单元的操作方法,更具体地,涉及一种使用所述图形处理单元进行镶嵌化处理操作的技术。
技术介绍
图形处理单元(graphicsprocessingunit,GPU)可执行包括镶嵌化处理(tessellation)(也称为曲面细分处理)在内的图形处理操作。为了对复杂形状进行渲染以产生用于显示的图形图像,通常需要将复杂形状转换成渲染图元的网格(mesh),例如,多个三角形。而将复杂形状转换为渲染图元的网格的处理过程被称作镶嵌化处理。换言之,镶嵌化处理是指将物体表面的一部分(称为碎片(patch))划分为多个更小的部分,并将这些更小的部分互联起来。通常,镶嵌化处理近似于将粗糙表面转换为多个图元以产生更高分辨率的表面。然而,接收高分辨率表面所包含的信息会导致带宽效率低下,因为定义高分辨率表面所需要的信息量要比定义粗糙表面所需要的信息量大得多。过去,CPU(centralprocessingunit,中央处理单元)和GPU通常以主从模式协同工作。在主从模式下,CPU发送指令以利用GPU来执行特定的渲染应用程序。随着技术的进步,GPU自身可生成指令,并随后执行这些指令。例如,在OpenCL2.0中,GPU允许将命令和/或指令加入自身的队列之中,而无需同CPU进行互动,这被称作是内核入队(kernelenqueueing)。简言之,内核入队可使内核独立地加入至单独的设备中,且内核可只依靠其自身而将代码加入队列并控制代码的执行顺序。因此,图形处理单元可以更加灵活和自主地处理相关的计算。
技术实现思路
有鉴于此,本专利技术提出一种用于执行镶嵌化操作的图形处理单元及其方法。依据本专利技术的实施方式,提供一种执行镶嵌化操作的渲染方法。所述渲染方法由图形处理单元执行。所述图形处理单元包括着色器模块、非着色器模块和高速缓存器,用以执行一个或多个镶嵌化处理阶段。所述渲染方法包括以下步骤:利用多个顶点作为第一输入数据来执行顶点着色操作,其包括:从第一命令队列中加载顶点着色命令至所述着色器模块,其中,所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及执行所述顶点着色命令以计算所述多个顶点的变化。利用所述多个顶点的变化作为第二输入数据来执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段,其包括:存储第一镶嵌化处理阶段命令至第二命令队列;从所述第二命令队列中加载所述第一镶嵌化处理阶段命令至所述着色器模块;及执行所述第一镶嵌化处理阶段命令以计算第一镶嵌化处理阶段的输出。其中,将所述多个顶点的变化和所述第一镶嵌化处理阶段的输出存储至所述高速缓存器。依据本专利技术的另一实施方式,提供一种执行镶嵌化操作的图形处理单元。,所述图形处理单元执行顶点着色操作和一个或多个镶嵌化处理阶段。所述图形处理单元包括非着色器模块、着色器模块和高速缓存。非着色器模块,用于:在执行所述顶点着色操作的过程中,从第一命令队列中加载顶点着色命令,其中,所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及在执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段的过程中,从第二命令队列中加载第一镶嵌化处理阶段命令。着色器模块,用于:在执行所述顶点着色操作的过程中,执行来自所述非着色器模块的所述顶点着色命令以计算多个顶点的变化,其中,所述顶点着色操作利用所述多个顶点作为第一输入数据;在执行所述一个或多个镶嵌化处理阶段中的所述第一镶嵌化处理阶段的过程中,存储所述第一镶嵌化处理阶段命令至所述第二命令队列;及在执行所述一个或多个镶嵌化处理阶段中的所述第一镶嵌化处理阶段的过程中,执行来自所述非着色器模块的所述第一镶嵌化处理阶段命令用以利用所述多个顶点的变化作为第二输入数据从而计算第一镶嵌化处理阶段的输出。高速缓存,用以存储所述多个顶点的变化和所述第一镶嵌化处理阶段的输出。本专利技术所提出的用于执行镶嵌化操作的图形处理单元及其方法,可更加灵活和自主地处理相关的计算。附图说明本专利技术可通过阅读后续的详细描述以及参照附图所作的示例,从而进行更加全面的理解。图1揭示了从图形处理管线的角度描述的一种图形处理单元的示意图;图2为本专利技术一实施例所揭示的一种图形处理单元的方框图;图3为本专利技术一实施例所揭示的用于镶嵌化处理操作的各种功能阶段之间的示例性输出映射关系的示意图;图4为本专利技术一实施例所揭示的用于镶嵌化处理阶段的输出的一种数据排列结构的示意图;图5为本专利技术又一实施例所揭示的用于执行镶嵌化处理操作的一种渲染方法的流程图;图6为本专利技术一实施例的一种几何图形着色阶段的输出的时序图。具体实施方式以下描述是实施本专利技术的最佳预期模式。但是,这些描述是为了说明本专利技术的一般原理,而并非是用来限制本专利技术。最佳地,本专利技术的范围通过所附的权利要求而确定。图1是从图形处理管线角度描述的图形处理单元100的示意图。图形处理单元100以图形处理管线的方式而实现,其包括多个着色阶段,例如,顶点着色器(vertexshader,VS)阶段10、镶嵌化控制着色器(tessellationcontrolshader,TCS)阶段12、镶嵌化图元生成器(tessellationprimitivegenerator,TPG)阶段14、镶嵌化评估着色器(tessellationevaluationshader,TES)阶段16和几何图形着色器(geometryshader,GS)阶段18。当然,图形处理单元100可包括比这里所揭示的着色阶段更多的着色阶段,或者,在一些示例中,图形处理单元100可不必包括所有上述的着色阶段。这些着色阶段可由图形处理单元100上所执行的软件或固件而定义,或者,其也可通过用来执行特定功能的硬件的固定功能单元而定义(例如,镶嵌化图元生成器阶段通常由固定功能单元实现)。图形处理单元100上所执行的软件或固件可称为着色器,其可为用户提供功能弹性,因为用户可对着色器进行设计从而以任意合理的方式来执行设计的任务。为了执行所示的着色阶段,着色器可设计成程序代码,其以顶点着色命令开始,并以几何图形着色命令结束,中间掺插着镶嵌化控制着色命令、镶嵌化图元生成器命令和镶嵌化评估着色命令,上述命令可(例如由CPU)发送至图形处理单元100,以执行相应的着色阶段。开始时,CPU可在发出顶点着色命令的同时,提供多个顶点至图形处理单元100。对于镶嵌化处理中的一个碎片,其相关的顶点被称为控制点。顶点着色器阶段10可对多个顶点执行逐顶点操作(per-vertexoperation),例如,变换(transformation)、皮肤化(skinning)、变形(morphing)和逐顶点照明(per-vertexlighting)等。当完成了顶点着色器阶段10之后,图形处理单元100执行镶嵌化控制着色命令从而执行镶嵌化控制着色器阶段12。镶嵌化控制着色器阶段12可接收由顶点着色器阶段10所处理的碎片中的控制点,对控制点进行处理,并输出处理后的碎片中的控制点。换言之,镶嵌化控制着色器阶段12接收输入碎片,对输入碎片进行处理并输出处理后的输出碎片。此处可执行各种功能以处理该输入碎片,例如,修改控制点的坐标以改变控制点的位置,或者,添加或删除某些本文档来自技高网...

【技术保护点】
一种执行镶嵌化操作的渲染方法,其特征在于,所述渲染方法由图形处理单元执行,所述图形处理单元包括着色器模块、非着色器模块和高速缓存器,用以执行一个或多个镶嵌化处理阶段,所述渲染方法包括以下步骤:利用多个顶点作为第一输入数据来执行顶点着色操作,其包括:从第一命令队列中加载顶点着色命令至所述着色器模块,其中,所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及执行所述顶点着色命令以计算所述多个顶点的变化;和利用所述多个顶点的变化作为第二输入数据来执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段,其包括:存储第一镶嵌化处理阶段命令至第二命令队列;从所述第二命令队列中加载所述第一镶嵌化处理阶段命令至所述着色器模块;及执行所述第一镶嵌化处理阶段命令以计算第一镶嵌化处理阶段的输出,其中,将所述多个顶点的变化和所述第一镶嵌化处理阶段的输出存储至所述高速缓存器。

【技术特征摘要】
2015.07.06 US 14/791,7431.一种执行镶嵌化操作的渲染方法,其特征在于,所述渲染方法由图形处理单元执行,所述图形处理单元包括着色器模块、非着色器模块和高速缓存器,用以执行一个或多个镶嵌化处理阶段,所述渲染方法包括以下步骤:利用多个顶点作为第一输入数据来执行顶点着色操作,其包括:从第一命令队列中加载顶点着色命令至所述着色器模块,其中,所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及执行所述顶点着色命令以计算所述多个顶点的变化;和利用所述多个顶点的变化作为第二输入数据来执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段,其包括:存储第一镶嵌化处理阶段命令至第二命令队列;从所述第二命令队列中加载所述第一镶嵌化处理阶段命令至所述着色器模块;及执行所述第一镶嵌化处理阶段命令以计算第一镶嵌化处理阶段的输出,其中,将所述多个顶点的变化和所述第一镶嵌化处理阶段的输出存储至所述高速缓存器。2.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述第一镶嵌化处理阶段为镶嵌化控制着色器阶段和镶嵌化图元生成器阶段的其中之一。3.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述第一处理单元为中央处理单元和数字信号处理器的其中之一。4.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,执行所述第一镶嵌化处理阶段的步骤进一步包括:至少根据所述多个顶点的变化的大小,计算所述第一镶嵌化处理阶段的输出的大小;根据所述第一镶嵌化处理阶段的输出的大小和所述高速缓存器的容量从而确定所述第一镶嵌化处理阶段命令的数量;以及检测对所述多个顶点的变化的计算是否完成,并以之作为条件来触发通过内核入列的方式存储所述第一镶嵌化处理阶段命令至所述第二命令队列。5.如权利要求4所述的执行镶嵌化操作的渲染方法,其特征在于,所述第一镶嵌化处理阶段命令的数量为N,而所述第一镶嵌化处理阶段的输出包括N个第一工作组,其中,所述N个第一工作组的其中之一是由所述着色器模块根据所述多个顶点的变化的至少一部分而执行所述N条第一镶嵌化处理阶段命令的其中之一计算而来,且N为正整数。6.如权利要求5所述的执行镶嵌化操作的渲染方法,其特征在于,所述渲染方法进一步包括利用所述N个第一工作组的其中之一作为第三输入数据来执行所述一个或多个镶嵌化处理阶段中的第二镶嵌化处理阶段,其包括:根据所述N个第一工作组的其中之一的大小和所述第二镶嵌化处理阶段的一个或多个参数从而计算第二镶嵌化处理阶段的输出的大小;根据所述第二镶嵌化处理阶段的输出的大小和所述高速缓存器的容量从而确定第二镶嵌化处理阶段命令的数量;检测对所述N个第一工作组的其中之一的计算是否完成;当检测到对所述N个第一工作组的其中之一的计算完成时,通过内核入列的方式从而存储所述第二镶嵌化处理阶段命令至所述第二命令队列;从所述第二命令队列中加载所述第二镶嵌化处理阶段命令至所述着色器模块;及执行所述第二镶嵌化处理阶段命令用以从所述N个第一工作组的其中之一计算所述第二镶嵌化处理阶段的输出,其中,所述第二镶嵌化处理阶段的输出存储至所述高速缓存器中。7.如权利要求6所述的执行镶嵌化操作的渲染方法,其特征在于,所述第二镶嵌化处理阶段为镶嵌化图元生成器阶段和镶嵌化评估着色器阶段的其中之一,其中,所述第二镶嵌化处理阶段命令的数量为M且所述第二镶嵌化处理阶段的输出包括M个第二工作组,其中,所述M个第二工作组的其中之一是由所述着色器模块根据所述N个第一工作组的其中之一的至少一部分而执行所述M条第二镶嵌化处理命令的其中之一计算而来,且M为正整数。8.如权利要求7所述的执行镶嵌化操作的渲染方法,其特征在于,所述第二镶嵌化处理阶段为所述镶嵌化评估着色器阶段,且所述渲染方法进一步包括:执行几何图形着色阶段以处理所述M个第二工作组,其中,对所述M个第二工作组的其中两个工作组的处理包括:依序将存储器缓冲区中的第一存储空间分配给对应于所述两个第二工作组的其中一个工作组的几何图形着色阶段的输出,并将所述存储器缓冲区中的第二存储空间分配给对应于所述两个第二工作组中另外一个工作组的几何图形着色阶段的输出;检测对所述两个第二工作组的计算是否完成;当检测到对所述两个第二工作组的计算完成时,通过内核入列的方式存储两条几何图形着色阶段命令至所述第二命令队列;从所述第二命令队列中加载所述两条几何图形着色阶段命令至所述着色器模块;执行所述两条几何图形着色阶段命令用以从所述两个第二工作组计算几何图形着色阶段的输出;以及将对应于所述两个第二工作组中其中一个工作组的所述几何图形着色阶段的输出存储至所述存储器缓存区的所述第一存储空间中,并将对应于所述两个第二工作组中另外一个工作组的所述几何图形着色阶段的输出存储至所述存储器缓存区的所述第二存储空间中。9.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述加载所述顶点着色命令的步骤是由驱动程序发起的,且所述多个顶点的数量是由所述驱动程序确定的。10.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,进一步包括:执行存储管理任务,以在所述高速缓存器的利用率高于特定水平时,通过暂停执行所述顶点着色命令、所述第一镶嵌化处理命令或所述第二镶嵌化处理命令,从而调节所述高速缓存器的利用率。11.一种执行镶嵌化操作的图形处理单元,其特征在于,所述图形处理单元执行顶点着色操作和一个或多个镶嵌化处理阶段...

【专利技术属性】
技术研发人员:丛培贵赖守仁吕彥宏蔡松芳吕坚平
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1