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

文档序号:17749330发布日期:2019-05-24 20:51阅读:来源:国知局

技术特征:

1.一种执行镶嵌化操作的渲染方法,其特征在于,所述渲染方法由图形处理单元执行,所述图形处理单元包括着色器模块、非着色器模块和高速缓存器,用以执行一个或多个镶嵌化处理阶段,所述渲染方法包括以下步骤:

利用多个顶点作为第一输入数据来执行顶点着色操作,其包括:

从第一命令队列中加载顶点着色命令至所述着色器模块,其中,

所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及

执行所述顶点着色命令以计算所述多个顶点的变化;和

利用所述多个顶点的变化作为第二输入数据来执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段,其包括:

存储第一镶嵌化处理阶段命令至第二命令队列;

从所述第二命令队列中加载所述第一镶嵌化处理阶段命令至所述着色器模块;及

执行所述第一镶嵌化处理阶段命令以计算第一镶嵌化处理阶段的输出,

其中,将所述多个顶点的变化和所述第一镶嵌化处理阶段的输出存储至所述高速缓存器;

其中,执行所述第一镶嵌化处理阶段的步骤进一步包括:

至少根据所述多个顶点的变化的大小,计算所述第一镶嵌化处理阶段的输出的大小;

根据所述第一镶嵌化处理阶段的输出的大小和所述高速缓存器的容量从而确定所述第一镶嵌化处理阶段命令的数量;以及

检测对所述多个顶点的变化的计算是否完成,并将完成所述多个顶点的变化的计算作为条件来触发通过内核入列的方式存储所述第一镶嵌化处理阶段命令至所述第二命令队列。

2.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述第一镶嵌化处理阶段为镶嵌化控制着色器阶段和镶嵌化图元生成器阶段的其中之一。

3.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述第一处理单元为中央处理单元和数字信号处理器的其中之一。

4.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述第一镶嵌化处理阶段命令的数量为N,而所述第一镶嵌化处理阶段的输出包括N个第一工作组,其中,所述N个第一工作组的其中之一是由所述着色器模块根据所述多个顶点的变化的至少一部分而执行所述N条第一镶嵌化处理阶段命令的其中之一计算而来,且N为正整数。

5.如权利要求4所述的执行镶嵌化操作的渲染方法,其特征在于,所述渲染方法进一步包括利用所述N个第一工作组的其中之一作为第三输入数据来执行所述多个镶嵌化处理阶段中的第二镶嵌化处理阶段,其包括:

根据所述N个第一工作组的其中之一的大小和所述第二镶嵌化处理阶段的一个或多个参数从而计算第二镶嵌化处理阶段的输出的大小;

根据所述第二镶嵌化处理阶段的输出的大小和所述高速缓存器的容量从而确定第二镶嵌化处理阶段命令的数量;

检测对所述N个第一工作组的其中之一的计算是否完成;

当检测到对所述N个第一工作组的其中之一的计算完成时,通过内核入列的方式从而存储所述第二镶嵌化处理阶段命令至所述第二命令队列;

从所述第二命令队列中加载所述第二镶嵌化处理阶段命令至所述着色器模块;及

执行所述第二镶嵌化处理阶段命令用以从所述N个第一工作组的其中之一计算所述第二镶嵌化处理阶段的输出,

其中,所述第二镶嵌化处理阶段的输出存储至所述高速缓存器中。

6.如权利要求5所述的执行镶嵌化操作的渲染方法,其特征在于,所述第二镶嵌化处理阶段为镶嵌化图元生成器阶段和镶嵌化评估着色器阶段的其中之一,其中,所述第二镶嵌化处理阶段命令的数量为M且所述第二镶嵌化处理阶段的输出包括M个第二工作组,其中,所述M个第二工作组的其中之一是由所述着色器模块根据所述N个第一工作组的其中之一的至少一部分而执行所述M条第二镶嵌化处理命令的其中之一计算而来,且M为正整数。

7.如权利要求6所述的执行镶嵌化操作的渲染方法,其特征在于,所述第二镶嵌化处理阶段为所述镶嵌化评估着色器阶段,且所述渲染方法进一步包括:执行几何图形着色阶段以处理所述M个第二工作组,其中,对所述M个第二工作组的其中两个工作组的处理包括:

依序将存储器缓冲区中的第一存储空间分配给对应于所述两个第二工作组的其中一个工作组的几何图形着色阶段的输出,并将所述存储器缓冲区中的第二存储空间分配给对应于所述两个第二工作组中另外一个工作组的几何图形着色阶段的输出;

检测对所述两个第二工作组的计算是否完成;

当检测到对所述两个第二工作组的计算完成时,通过内核入列的方式存储两条几何图形着色阶段命令至所述第二命令队列;

从所述第二命令队列中加载所述两条几何图形着色阶段命令至所述着色器模块;

执行所述两条几何图形着色阶段命令用以从所述两个第二工作组计算几何图形着色阶段的输出;以及

将对应于所述两个第二工作组中其中一个工作组的所述几何图形着色阶段的输出存储至所述存储器缓存区的所述第一存储空间中,并将对应于所述两个第二工作组中另外一个工作组的所述几何图形着色阶段的输出存储至所述存储器缓存区的所述第二存储空间中。

8.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,所述加载所述顶点着色命令的步骤是由驱动程序发起的,且所述多个顶点的数量是由所述驱动程序确定的。

9.如权利要求1所述的执行镶嵌化操作的渲染方法,其特征在于,进一步包括:

执行存储管理任务,以在所述高速缓存器的利用率高于特定水平时,通过暂停执行所述顶点着色命令或所述第一镶嵌化处理阶段命令,从而调节所述高速缓存器的利用率。

10.一种执行镶嵌化操作的图形处理单元,其特征在于,所述图形处理单元执行顶点着色操作和一个或多个镶嵌化处理阶段,所述图形处理单元包括:

非着色器模块,用于:

在执行所述顶点着色操作的过程中,从第一命令队列中加载顶点着色命令,其中,所述顶点着色命令由第一处理单元存储至所述第一命令队列中;以及

在执行所述一个或多个镶嵌化处理阶段中的第一镶嵌化处理阶段的过程中,从第二命令队列中加载第一镶嵌化处理阶段命令;

着色器模块,用于:

在执行所述顶点着色操作的过程中,执行来自所述非着色器模块的所述顶点着色命令以计算多个顶点的变化,其中,所述顶点着色操作利用所述多个顶点作为第一输入数据;

在执行所述一个或多个镶嵌化处理阶段中的所述第一镶嵌化处理阶段的过程中,存储所述第一镶嵌化处理阶段命令至所述第二命令队列;及

在执行所述一个或多个镶嵌化处理阶段中的所述第一镶嵌化处理阶段的过程中,执行来自所述非着色器模块的所述第一镶嵌化处理阶段命令用以利用所述多个顶点的变化作为第二输入数据从而计算第一镶嵌化处理阶段的输出;及

高速缓存器,用以存储所述多个顶点的变化和所述第一镶嵌化处理阶段的输出;

其中,所述着色器模块进一步用以在执行所述一个或多个镶嵌化处理阶段中的所述第一镶嵌化处理阶段的过程中,至少完成以下任务:

至少根据所述多个顶点的变化的大小,计算所述第一镶嵌化处理阶段的输出的大小;

根据所述第一镶嵌化处理阶段的输出的大小和所述高速缓存器的容量从而确定所述第一镶嵌化处理阶段命令的数量;及

检测对所述多个顶点变化的计算是否完成,并将完成所述多个顶点的变化的计算作为条件触发通过内核入列的方式存储所述第一镶嵌化处理阶段命令至所述第二命令队列。

11.如权利要求10所述的执行镶嵌化操作的图形处理单元,其特征在于,所述第一镶嵌化处理阶段为镶嵌化控制着色器阶段和镶嵌化图元生成器阶段的其中之一。

12.如权利要求10所述的执行镶嵌化操作的图形处理单元,其特征在于,所述第一处理单元为中央处理单元和数字信号处理器其中之一。

13.如权利要求10所述的执行镶嵌化操作的图形处理单元,其特征在于,所述第一镶嵌化处理阶段命令的数量为N,而所述第一镶嵌化处理阶段的输出包括N个第一工作组,其中,所述N个第一工作组的其中之一是由所述着色器模块根据所述多个顶点的变化的至少一部分而执行所述N个第一镶嵌化处理命令的其中之一计算而来,且N为正整数。

14.如权利要求13所述的执行镶嵌化操作的图形处理单元,其特征在于,所述着色器模块进一步用以在执行所述多个镶嵌化处理阶段中的第二镶嵌化处理阶段的过程中,利用所述N个第一工作组的其中之一作为第三输入数据以至少完成以下任务:

根据所述N个第一工作组的其中之一的大小和所述第二镶嵌化处理阶段的一个或多个参数从而计算第二镶嵌化处理阶段的输出的大小;

根据所述第二镶嵌化处理阶段的输出的大小和所述高速缓存器的容量从而确定第二镶嵌化处理阶段命令的数量;

检测对所述N个第一工作组中的其中之一的计算是否完成;

当检测到对所述N个第一工作组中的其中之一的计算完成时,通过内核入列的方式从而存储所述第二镶嵌化处理阶段命令至所述第二命令队列;以及

执行所述第二镶嵌化处理阶段命令以用从所述N个第一工作组的其中之一计算所述第二镶嵌化处理阶段的输出,

其中,从所述第二命令队列加载所述第二镶嵌化处理阶段命令至所述着色器模块,且存储所述第二镶嵌化处理阶段的输出至所述高速缓存器中。

15.如权利要求14所述的执行镶嵌化操作的图形处理单元,其特征在于,所述第二镶嵌化处理阶段为镶嵌化图元生成器阶段和镶嵌化评估着色器阶段中之一,且所述第二镶嵌化处理阶段命令的数量为M,所述第二镶嵌化处理阶段的输出包括M个第二工作组,其中,所述M个第二工作组的其中之一是由所述着色器模块根据所述N个第一工作组的其中之一的至少一部分而执行所述M条第二镶嵌化处理命令的其中之一计算而来,且M为正整数。

16.如权利要求15所述的执行镶嵌化操作的图形处理单元,其特征在于,所述第二镶嵌化处理阶段为所述镶嵌化评估着色器阶段,且所述着色器模块进一步用以通过处理所述M个第二工作组从而执行几何图形着色阶段,其中,对所述M个第二工作组的其中两个工作组的处理包括:

依序将存储器缓冲区中的第一存储空间分配给对应于所述两个第二工作组的其中一个工作组的几何图形着色阶段的输出,并将所述存储器缓冲区中的第二存储空间分配给对应于所述两个第二工作组中另外一个工作组的几何图形着色阶段的输出;

检测对所述两个第二工作组的计算是否完成;

当检测到对所述两个第二工作组的计算完成时,通过内核入列的方式存储两条几何图形着色阶段命令至所述第二命令队列;

执行所述两条几何图形着色阶段命令用以从所述两个第二工作组计算几何图形着色阶段的输出;以及

将对应于所述两个第二工作组中其中一个工作组的所述几何图形着色阶段的输出存储至所述存储器缓存区的所述第一存储空间中,并将对应于所述两个第二工作组中另外一个工作组的所述几何图形着色阶段的输出存储至所述存储器缓存区的所述第二存储空间中。

17.如权利要求10所述的执行镶嵌化操作的图形处理单元,其特征在于,所述加载所述顶点着色命令的步骤是由驱动程序发起的,且所述多个顶点的数量是由所述驱动程序确定的。

18.如权利要求10所述的执行镶嵌化操作的图形处理单元,其特征在于,进一步包括存储管理模块,所述存储管理模块用以:

执行存储管理任务,以在所述高速缓存器的利用率高于特定水平时,通过暂停执行所述顶点着色命令或所述第一镶嵌化处理阶段命令,从而调节所述高速缓存器的利用率。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1