【技术实现步骤摘要】
本专利技术涉及图形处理单元和用于所述图形处理单元的操作方法,更具体地,涉及一种使用所述图形处理单元进行镶嵌化处理操作的技术。
技术介绍
图形处理单元(graphicsprocessingunit,GPU)可执行包括镶嵌化处理(tessellation)(也称为曲面细分处理)在内的图形处理操作。为了对复杂形状进行渲染以产生用于显示的图形图像,通常需要将复杂形状转换成渲染图元的网格(mesh),例如,多个三角形。而将复杂形状转换为渲染图元的网格的处理过程被称作镶嵌化处理。换言之,镶嵌化处理是指将物体表面的一部分(称为碎片(patch))划分为多个更小的部分,并将这些更小的部分互联起来。通常,镶嵌化处理近似于将粗糙表面转换为多个图元以产生更高分辨率的表面。然而,接收高分辨率表面所包含的信息会导致带宽效率低下,因为定义高分辨率表面所需要的信息量要比定义粗糙表面所需要的信息量大得多。过去,CPU(centralprocessingunit,中央处理单元)和GPU通常以主从模式协同工作。在主从模式下,CPU发送指令以利用GPU来执行特定的渲染应用程序。随着技术的进步,GPU自身可生成指令,并随后执行这些指令。例如,在OpenCL2.0中,GPU允许将命令和/或指令加入自身的队列之中,而无需同CPU进行互动,这被称作是内核入队(kernelenqueueing)。简言之,内核入队可使内核独立地加入至单独的设备中,且内核可只依靠其自身而将代码加入队列并控制代码的执行顺序。因此,图形处理单元可以更加灵活和自主地处理相关的计算。
技术实现思路
有鉴于此,本专利技 ...
【技术保护点】
一种执行镶嵌化操作的渲染方法,其特征在于,所述渲染方法由图形处理单元执行,所述图形处理单元包括着色器模块、非着色器模块和高速缓存器,用以执行一个或多个镶嵌化处理阶段,所述渲染方法包括以下步骤:利用多个顶点作为第一输入数据来执行顶点着色操作,其包括:从第一命令队列中加载顶点着色命令至所述着色器模块,其中,所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及执行所述顶点着色命令以计算所述多个顶点的变化;和利用所述多个顶点的变化作为第二输入数据来执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段,其包括:存储第一镶嵌化处理阶段命令至第二命令队列;从所述第二命令队列中加载所述第一镶嵌化处理阶段命令至所述着色器模块;及执行所述第一镶嵌化处理阶段命令以计算第一镶嵌化处理阶段的输出,其中,将所述多个顶点的变化和所述第一镶嵌化处理阶段的输出存储至所述高速缓存器。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。