用于图形处理中的着色器程序执行技术制造技术

技术编号:15343337 阅读:110 留言:0更新日期:2017-05-17 00:25
本发明专利技术描述了用于在图形处理单元GPU中执行着色器程序的技术。在一些实例中,所述用于执行着色器程序的技术可以包括通过图形处理器的着色器单元执行着色器程序,所述着色器程序执行顶点着色器处理并且针对由所述着色器程序接收的每个输入顶点产生多个输出顶点。在其它实例中,所述用于执行着色器程序的技术可以包括使用非复制模式的执行来执行合并顶点/几何着色器程序。所述非复制模式的执行可以涉及将多个基元中的每一个分配到每个基元的一个合并顶点/几何着色器程序实例并且使得所述实例中的每一个输出多个顶点。在额外实例中,所述用于执行着色器程序的技术可以包括用于选择非复制模式和复制模式中的一个以用于执行合并顶点/几何着色器程序的技术。

【技术实现步骤摘要】
【国外来华专利技术】用于图形处理中的着色器程序执行技术
本专利技术涉及图形处理系统,且更确切地说,涉及在图形处理系统中执行着色器程序。
技术介绍
计算装置通常利用图形处理单元(GPU)以加速呈现用于显示的图形数据。此类计算装置可以包括例如计算机工作站、移动电话(例如,所谓的智能电话)、嵌入系统、个人计算机、平板计算机和视频游戏控制台。GPU通常执行图形处理管线,所述图形处理管线包括一起操作以执行图形处理命令的多个处理级。传统上,GPU包括固定功能图形处理管线,其中管道中的每个处理级是通过固定功能硬件(例如,作为硬连线以执行某一组专业化功能且无法执行用户可下载程序的硬件)实施的。近年来,图形处理管线已经转移到可编程架构,其中管线中的一或多个处理级是可编程处理级并且通过一或多个可编程着色器单元实施。可编程着色器单元中的每一个可经配置以执行着色器程序。用户应用程序可以在可编程图形管线中规定待通过可编程处理级执行的着色器程序,由此在现今的GPU的使用中提供更高程度的灵活性。随着图形处理技术的发展,图形处理管线变得更加精密并且不断增多的数目的不同类型的可编程处理级被添加到由主要图形应用程序编程接口(API)规定的标准图形处理管线。在GPU中通过有限的资源实施这些不同类型的可编程处理级可以带来相当大的挑战。
技术实现思路
本专利技术描述了用于在图形处理单元(GPU)中执行着色器程序的技术。着色器程序可以指加载到GPU上并且通过GPU执行的程序,其中一或多个着色器单元包括于GPU中。GPU可以执行着色器程序的多个实例,其中着色器程序的实例中的每一个相对于不同数据项执行相同程序指令。实例数据项可以包括顶点、基元和像素。处理顶点的着色器程序通常经配置以针对通过着色器程序接收的输入顶点中的每一个产生单个输出顶点。然而,在一些实例中,本专利技术的技术可以执行一种着色器程序,所述着色器程序执行顶点着色器处理并且针对由着色器程序接收的每个输入顶点产生多个输出顶点。执行一种执行顶点着色器处理并且针对由着色器程序接收的输入顶点中的每一个产生多个输出顶点的着色器程序相对于当着色器程序仅用来产生针对每个输入顶点的单个输出顶点时需要的数目的线程可以减少处理特定集合的输入顶点需要的线程的数目。减少用于处理顶点的线程的数目可以减少由GPU使用的处理资源和/或减少GPU的电力消耗。此外,允许执行顶点着色器处理的着色器程序产生针对每个输入顶点的多个输出顶点可以改进GPU的编程灵活性。以此方式,可以改进执行可编程顶点处理的GPU的性能、电力消耗和/或编程灵活性。在一个实例中,本专利技术描述一种方法,所述方法包括通过图形处理器的着色器单元执行一种着色器程序,所述着色器程序执行顶点着色器处理并且针对由着色器程序接收的每个输入顶点产生多个输出顶点。在另一个实例中,本专利技术描述一种包括图形处理单元(GPU)的装置,所述图形处理单元包括着色器单元,所述着色器单元经配置以执行一种着色器程序,所述着色器程序执行顶点着色器处理并且针对由着色器程序接收的每个输入顶点产生多个输出顶点。在另一个实例中,本专利技术描述一种设备,所述设备包括图形处理器,所述图形处理器包括着色器单元。所述设备进一步包括用于通过图形处理器的着色器单元执行着色器程序的装置,所述着色器程序执行顶点着色器处理并且针对通过着色器程序接收的每个输入顶点产生多个输出顶点。在另一个实例中,本专利技术描述一种存储指令的非暂时性计算机可读存储媒体,在通过一或多个处理器执行所述指令时使得一或多个处理器通过图形处理器的着色器单元执行一种着色器程序,所述着色器程序执行顶点着色器处理并且针对由着色器程序接收的每个输入顶点产生多个输出顶点。在附图和以下描述中阐述本专利技术的一或多个实例的细节。本专利技术的其它特征、对象和优点将从所述描述和图式以及权利要求书中显而易见。附图说明图1是说明可以通过使用本专利技术的着色器程序执行技术实施的实例图形管线的概念图。图2是可用于实施本专利技术的着色器程序执行技术的实例GPU的方块图。图3是说明可以用于图2的GPU中的实例着色器单元的方块图。图4是说明可以使用本专利技术的实例着色器程序执行技术处理的实例三角形条带的概念图。图5是说明根据本专利技术可用于执行合并顶点/几何着色器程序的多个实例以用于处理图4中所示的三角形条带的实例线程配置的概念图。图6是说明根据本专利技术与执行合并顶点/几何着色器程序相关联的实例处理流程的概念图。图7说明根据本专利技术与执行合并顶点/几何着色器程序相关联的伪代码。图8是说明可用于实施本专利技术的着色器程序执行技术的实例计算装置的方块图。图9是说明根据本专利技术用于执行着色器程序的实例技术的流程图。图10是说明根据本专利技术根据复制模式和非复制用于执行合并顶点/几何着色器程序的实例技术的流程图。图11是根据本专利技术用于选择复制模式和非复制中的一个以用于执行合并顶点/几何着色器程序的实例技术的流程图。具体实施方式本专利技术描述了用于在图形处理单元(GPU)中执行着色器程序的技术。着色器程序可以指加载到GPU上并且通过GPU执行的程序,其中一或多个着色器单元包括于GPU中。GPU可以执行着色器程序的多个实例,其中着色器程序的实例中的每一个相对于不同数据项执行相同程序指令。实例数据项可以包括顶点、基元和像素。处理顶点的着色器程序通常经配置以针对通过着色器程序接收的输入顶点中的每一个产生单个输出顶点。然而,在一些实例中,本专利技术的技术可以执行一种着色器程序,所述着色器程序执行顶点着色器处理并且针对由着色器程序接收的每个输入顶点产生多个输出顶点。执行一种执行顶点着色器处理并且针对由着色器程序接收的输入顶点中的每一个产生多个输出顶点的着色器程序相对于当着色器程序仅用来产生针对每个输入顶点的单个输出顶点时需要的数目的线程可以减少处理特定集合的输入顶点需要的线程的数目。减少用于处理顶点的线程的数目可以减少由GPU使用的处理资源和/或减少GPU的电力消耗。以此方式,可以改进执行可编程顶点处理的GPU的性能和/或电力消耗。此外,允许执行顶点着色器处理的着色器程序产生针对每个输入顶点的多个输出顶点可以改进GPU的编程灵活性。通常,顶点着色器编程模型规定顶点着色器程序针对每个输入顶点被调用一次并且顶点着色器程序产生针对顶点着色器程序的每次调用的单个输出顶点。本专利技术的技术可用于实施将针对顶点着色器程序的每次调用产生的允许多个输出顶点的顶点着色器编程模型。以此方式,可以改进通过GPU执行的可编程顶点处理的灵活性。在一些实例中,执行顶点着色器处理并且针对通过着色器程序接收的输入顶点中的每一个产生多个输出顶点的着色器程序可以是合并顶点/几何着色器程序。合并顶点/几何着色器程序可以指相对于基元相对于顶点和几何着色器处理可配置以执行顶点着色器处理的着色器程序。几何着色器程序通常经配置以接收输入基元并且响应于接收输入基元输出0或大于0的输出基元。因为由几何着色器程序产生的输出基元中的每一个可以包括一个以上顶点,所以如果合并顶点/几何着色器程序针对每个输入顶点仅产生单个输出顶点,那么合并顶点/几何着色器程序的多个实例可能需要针对基元中的每一个执行以便为基元执行几何着色器处理。然而,执行根据本专利技术的技术针对由着色器程序接收的每个顶点产生多个输出顶点的合并顶点/几何着色器程序在一些实例本文档来自技高网...
用于图形处理中的着色器程序执行技术

【技术保护点】
一种方法,其包括:通过图形处理器的着色器单元执行着色器程序,所述着色器程序执行顶点着色器处理并且针对由所述着色器程序接收的每个输入顶点产生多个输出顶点。

【技术特征摘要】
【国外来华专利技术】2014.08.22 US 14/466,5541.一种方法,其包括:通过图形处理器的着色器单元执行着色器程序,所述着色器程序执行顶点着色器处理并且针对由所述着色器程序接收的每个输入顶点产生多个输出顶点。2.根据权利要求1所述的方法,其中通过所述图形处理器的所述着色器单元执行所述着色器程序包括:通过所述着色器单元执行所述着色器程序的多个实例使得所述着色器程序的所述实例中的每一个接收多个输入顶点中的相应一个并且响应于接收到所述多个输入顶点中的所述相应一个产生多个输出顶点。3.根据权利要求1所述的方法,其中所述顶点着色器处理是通过顶点着色器程序规定的,并且其中所述着色器程序包括合并顶点/几何着色器程序,所述合并顶点/几何着色器程序是可配置的以执行通过所述顶点着色器程序规定的所述顶点着色器处理以及通过几何着色器程序规定的几何着色器处理。4.根据权利要求1所述的方法,其中所述着色器程序包括合并顶点/几何着色器程序,所述合并顶点/几何着色器程序是可配置的以执行顶点着色器处理和几何着色器处理,并且其中通过所述图形处理器的所述着色器单元执行所述着色器程序包括:通过所述着色器单元执行所述合并顶点/几何着色器程序的多个实例使得所述合并顶点/几何着色器程序的所述实例中的每一个产生M个输出顶点,其中M是大于或等于2的整数。5.根据权利要求4所述的方法,其中M等于通过由所述合并/顶点几何着色器程序实施的几何着色器程序规定的最大输出顶点计数值,所述最大输出顶点计数值指示针对由所述几何着色器程序处理的每个基元待由所述几何着色器程序产生的最大数目的输出顶点。6.根据权利要求4所述的方法,其中所述合并顶点/着色器程序的所述实例中的每一个是可配置的以相对于分配到所述合并顶点/着色器程序的所述相应的实例的基元执行所述几何着色器处理,并且其中多个基元中的每一个被分配到一个合并顶点/几何着色器实例以用于进行处理。7.根据权利要求6所述的方法,其中所述合并顶点/着色器程序的所述实例中的每一个是进一步可配置的以相对于分配到所述合并顶点/着色器程序的所述相应的实例的顶点执行所述顶点着色器处理,其中多个顶点中的每一个被分配到一个合并顶点/几何着色器实例以用于进行处理,并且其中所述合并顶点/几何着色器程序的所述实例中的至少一个经配置以相对于所述多个顶点中的一个执行所述顶点着色器处理并且相对于所述多个基元中的一个执行所述几何着色器处理。8.根据权利要求6所述的方法,其中所述合并顶点/着色器程序的所述实例中的每一个可以是进一步可配置的以相对于分配到所述合并顶点/着色器程序的所述相应的实例的顶点执行所述顶点着色器处理,并且其中通过所述着色器单元执行所述合并顶点/几何着色器程序的所述多个实例进一步包括:通过所述合并顶点/几何着色器程序的第一实例相对于多个顶点中的一个执行所述顶点着色器处理以产生顶点着色顶点;通过所述合并顶点/几何着色器程序的第二实例相对于所述多个基元中的第一基元基于由所述合并顶点/几何着色器程序的所述第一实例产生的所述顶点着色顶点执行所述几何着色器处理以产生对应于所述第一基元的一或多个几何着色顶点;并且通过所述合并顶点/几何着色器程序的第三实例相对于所述多个基元中的第二基元基于由所述合并顶点/几何着色器程序的所述第一实例产生的所述顶点着色顶点执行所述几何着色器处理以产生对应于所述第二基元的一或多个几何着色顶点。9.根据权利要求1所述的方法,其中所述图形处理器是可配置的以在第一着色器程序执行模式中操作并且是可配置的在不同于所述第一着色器程序执行模式的第二着色器程序执行模式中操作,其中所述着色器程序包括可配置以执行顶点着色器处理和几何着色器处理的合并顶点/几何着色器程序,其中通过所述图形处理器的所述着色器单元执行所述着色器程序包括通过所述着色器单元执行所述合并顶点/几何着色器程序的多个实例,其中所述合并顶点/着色器程序的所述实例中的每一个是可配置的以相对于分配到所述合并顶点/着色器程序的所述相应的实例的顶点执行顶点着色器处理并且相对于分配到所述合并顶点/着色器程序的所述相应的实例的基元执行几何着色器处理,其中当在所述第一着色器程序执行模式中操作时,多个基元中的每一个被分配到一个合并顶点/几何着色器实例以用于几何着色器处理并且所述合并顶点/几何着色器程序的所述实例中的每一个输出M个输出顶点,其中M是大于或等于2的整数,以及其中当在所述第二着色器程序执行模式中操作时,所述多个基元中的每一个被分配到N个合并顶点/几何着色器实例以用于几何着色器处理并且所述合并顶点/几何着色器程序的所述实例中的每一个输出一个输出顶点,其中N是大于或等于2的整数并且M小于或等于N。10.根据权利要求9所述的方法,其中M等于多少个顶点是针对通过由所述合并顶点/几何着色器程序实施的几何着色器级处理的基元中的每一个产生的,并且其中N等于通过由所述合并/顶点几何着色器程序实施的几何着色器程序规定的最大输出顶点计数值,所述最大输出顶点计数值指示针对由所述几何着色器程序处理的所述基元中的每一个待由所述几何着色器程序产生的最大数目的输出顶点。11.根据权利要求9所述的方法,其中当在所述第一着色器程序执行模式中操作时,多个顶点中的每一个被分配到一个合并顶点/几何着色器实例以用于进行处理,并且其中当在所述第二着色器程序执行模式中操作时,所述多个顶点中的每一个被分配到K个合并顶点/几何着色器实例以用于进行处理,其中K是等于多少个基元包括所述相应的顶点的整数。12.根据权利要求9所述的方法,其中所述方法进一步包括:选择第一着色器程序执行模式和所述第二着色器程序执行模式中的一个作为所选定的着色器程序执行模式以用于基于指示存储与通过所述合并顶点/几何着色器程序实施的几何着色器程序相关联的输出顶点所需要的存储空间的总量的信息执行所述合并顶点/几何着色器程序;并且使得所述着色器单元基于所述所选定的着色器程序执行模式执行所述合并顶点/几何着色器程序。13.根据权利要求12所述的方法,其中选择所述第一着色器程序执行模式和所述第二着色器程序执行模式中的所述一个包括:确定指示所述存储空间的总量是否大于阈值的信息;响应于确定指示所述存储空间的总量大于所述阈值的信息选择所述第二着色器程序执行模式作为所述所选定的着色器程序执行模式;并且响应于确定指示所述存储空间的总量并不大于所述阈值的所述信息选择所述第一着色器程序执行模式作为所述所选定的着色器程序执行模式。14.一种装置,其包括:图形处理单元GPU,其包括着色器单元,所述着色器单元经配置以执行着色器程序,所述着色器程序执行顶点着色器处理并且针对由所述着色器程序接收的每个输入顶点产生多个输出顶点。15.根据权利要...

【专利技术属性】
技术研发人员:维尼特·戈尔金东炫钟刚
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1