着色器操作的同步制造技术

技术编号:9798426 阅读:120 留言:0更新日期:2014-03-22 12:54
本发明专利技术中描述的实例技术可针对生产者着色器(16)与消费者着色器(24)之间的同步。举例来说,图形处理单元GPU可执行生产者着色器以产生图形数据。在图形数据的产生的完成之后,所述生产者着色器可存储指示所产生图形数据的量的值(18)。在指示所述所产生的图形数据量的所述值的存储之后,所述GPU可执行一个或一个以上消费者着色器以消耗所述所产生的图形数据。

【技术实现步骤摘要】
【国外来华专利技术】着色器操作的同步方法及装置
本专利技术涉及图形着色器,且更特定来说涉及一个或一个以上图形着色器在图形处理单元(GPU)上的执行。
技术介绍
产生可观看内容的装置通常包含图形处理单元(GPU)。GPU可处理图形数据以产生显示器上的像素的像素值。为了处理图形数据,GPU可执行一个或一个以上着色器程序,经常称为着色器。着色器程序可为当GPU执行着色器程序时致使GPU执行由着色器程序界定的功能的软件程序。举例来说,着色器程序可界定GPU应处理图形数据以产生显示器上的像素的像素值的方式。
技术实现思路
大体上,本专利技术描述用于同步图形处理单元(GPU)上的一个或一个以上着色器程序的执行的技术。在一些实例中,一个着色器程序可产生由另一着色器程序消耗或利用的图形数据。产生图形数据的着色器程序可称为生产者着色器,且消耗所产生图形数据的着色器程序可称为消费者着色器。本专利技术中描述的实例技术中的一些可致使GPU同步生产者和消费者着色器的执行,使得GPU不执行消费者着色器直到所述生产者着色器已产生将由消费者着色器消耗的图形数据为止。在一个实例中,本专利技术描述一种方法,包含:用图形处理单元(GPU)执行产生图形数据的生产者着色器;以及用所述GPU将由所述生产者着色器产生的所述图形数据存储在第一缓冲器的存储位置中。所述方法进一步包含在完成所述图形数据的所述产生后,即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的量的值存储在第二缓冲器的存储位置中。在另一实例中,本专利技术描述一种设备,其包含第一缓冲器、第二缓冲器以及图形处理单元(GPU)。所述GPU可操作以执行产生图形数据的生产者着色器,且将由所述生产者着色器产生的所述图形数据存储在所述第一缓冲器的存储位置中。所述GPU还可操作以在完成所述图形数据的所述产生后,即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的量的值存储在所述第二缓冲器的存储位置中。在另一实例中,本专利技术描述一种设备,其包含第一缓冲器、第二缓冲器以及图形处理单元(GPU)。所述GPU包含用于执行产生图形数据的生产者着色器的装置,以及用于将由所述生产者着色器产生的所述图形数据存储在所述第一缓冲器的存储位置中的装置。所述GPU还包含用于在完成所述图形数据的所述产生后即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的量的值存储在所述第二缓冲器的存储位置中的装置。在另一实例中,本专利技术描述一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包含致使一个或一个以上处理器进行以下操作的指令:用图形处理单元(GPU)执行产生图形数据的生产者着色器;以及用所述GPU将由所述生产者着色器产生的所述图形数据存储在第一缓冲器的存储位置中。所述指令还包含用以进行以下操作的指令:在完成所述图形数据的所述产生后,即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的量的值存储在第二缓冲器的存储位置中。在附图和以下描述中陈述一个或一个以上实例的细节。从描述和图式以及从权利要求书将明了其它特征、目的和优点。附图说明图1是说明可操作以实施本专利技术的一个或一个以上方面的图形处理单元(GPU)的实例的框图。图2是说明可并入图1的GPU以实施本专利技术的一个或一个以上方面的计算装置的实例的框图。图3是说明根据本专利技术的一个或一个以上方面的如图1所示的GPU的实例操作的流程图。具体实施方式大体上,本专利技术涉及图形处理单元(GPU)的各种过程的同步。本专利技术的技术大体上适用于视频装置,例如媒体播放器、机顶盒、例如移动电话等无线手持机、个人数字助理(PDA)、桌上型计算机、膝上型计算机、游戏控制台、显示装置、电视机及类似者。为了处理图形数据,GPU起始(例如,执行)不同的着色器程序。在一些实例中,由一个着色器程序产生的图形数据由另一着色器程序消耗。举例来说,几何形状着色器可接收图形数据,且产生多个图元的图形数据,例如图元的顶点坐标以及图元的顶点的颜色值和其它属性。像素着色器可接收所述多个图元的图形数据,且对所述多个图元执行图形处理,例如着色、照明和掺合,以再现像素供在显示器上呈现。在先前实例中,几何形状着色器可视为“生产者”着色器的实例,且像素着色器可视为“消费者”着色器的实例。在一些实例中,GPU可需要同步生产者着色器与消费者着色器,使得在生产者着色器已产生图形数据之前消费者着色器不会尝试消耗图形数据。举例来说,在一些实例中,GPU可事先知道何时执行生产者着色器,但可能事先不知道生产者着色器将产生多少图形数据。因为生产者着色器将产生的图形数据量是可变的,所以GPU可能事先不知道何时生产者着色器将完成产生图形数据。而且,在一些实例中,可存在多个生产者着色器和多个消费者着色器。在这些实例中的一些实例中,基于图形数据,消费者着色器可能不能消耗来自生产者着色器中的一者的图形数据,直到另一生产者着色器完成产生图形数据为止。举例来说,假定GPU执行第一生产者着色器,且在随后的时间执行第二生产者着色器。由于每一生产者着色器产生的数据量的可变性,可能第二生产者着色器在第一生产者着色器完成产生图形数据之前完成产生图形数据。然而,基于由生产者着色器中的每一者产生的图形数据,在第二消费者着色器消耗来自第二生产者着色器的图形数据之前,第一消费者着色器可需要消耗来自第一生产者着色器的图形数据。在一些实例中,包含GPU的装置还可包含生产者着色器存储缓冲器和生产者着色器计数缓冲器。生产者着色器存储缓冲器和生产者着色器计数缓冲器可形成于同一存储器装置或不同存储器装置内。在一些实例中,生产者着色器存储缓冲器可包含多个存储位置。GPU可将每一存储位置指派于一个生产者着色器。每一生产者着色器可将其产生的图形数据存储到其在生产者着色器存储缓冲器内被指派的存储位置中。举例来说,由第一生产者着色器产生的图形数据可存储在第一存储位置中,且由第二生产者着色器产生的图形数据可存储在第二存储位置中,以此类推。在此实例中,GPU可能已将第一存储位置指派于第一生产者着色器,将第二存储位置指派于第二生产者着色器,以此类推(对于额外的生产者着色器)。存储位置中的每一者的大小,例如每一存储位置可存储的图形数据量,可基于生产者着色器可产生的最大图形数据量。举例来说,GPU可能事先不知道生产者着色器将产生多少图形数据,然而,GPU可能事先知道生产者着色器将产生的最大图形数据量。作为一个实例,任一生产者着色器可产生的最大图形数据量是4千字节(KB)。因此,在此实例中,对于GPU执行的每个生产者着色器,GPU可为所述生产者着色器指派生产者着色器存储缓冲器内的4KB存储位置以存储由所述生产者着色器产生的图形数据。生产者着色器计数缓冲器也可包含多个存储位置。GPU可将生产者着色器计数缓冲器内的每一存储位置指派于每一生产者着色器。因为GPU将生产者着色器计数缓冲器内的存储位置和生产者着色器存储缓冲器内的存储位置指派于生产者着色器,所以指派于同一生产者的生产者着色器计数缓冲器内的每一存储位置和生产者着色器存储缓冲器内的每一存储位置可视为彼此对应。生产者着色器计数缓冲器内的存储位置中的每一者可存储指示存本文档来自技高网...
着色器操作的同步

【技术保护点】
一种方法,其包括:用图形处理单元GPU执行产生图形数据的生产者着色器;用所述GPU将由所述生产者着色器产生的所述图形数据存储在第一缓冲器的存储位置中;以及在完成所述图形数据的所述产生后,即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的量的值存储在第二缓冲器的存储位置中。

【技术特征摘要】
【国外来华专利技术】2011.07.19 US 13/186,2361.一种方法,其包括:用图形处理单元GPU执行产生图形数据的生产者着色器;用所述GPU将由所述生产者着色器产生的所述图形数据存储在第一缓冲器的存储位置中;在由所述生产者着色器产生所述图形数据的过程中,对由所述生产者着色器产生的所述图形数据的量进行计数;在完成所述图形数据的所述产生后,即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的所述量的值存储在第二缓冲器的存储位置中;以及在将指示由所述生产者着色器产生的所述图形数据量的所述值存储在所述第二缓冲器的所述存储位置中之后,基于指示由所述生产者着色器产生的所述图形数据量的所述值而执行一个或一个以上消费者着色器以消耗存储在所述第一缓冲器的所述存储位置中的所述图形数据。2.根据权利要求1所述的方法,其中所述第一和第二缓冲器是共同缓冲器的部分。3.根据权利要求1所述的方法,其中执行一个或一个以上消费者着色器包括执行像素着色器以消耗存储在所述第一缓冲器的所述存储位置中的所述图形数据。4.根据权利要求1所述的方法,其中所述生产者着色器包括第一生产者着色器,其中所述图形数据包括第一图形数据,其中所述第二缓冲器包括第一存储位置和第二存储位置,且其中所述值存储在所述第二缓冲器的所述第一存储位置中,所述方法进一步包括:执行产生第二图形数据的第二生产者着色器;将由所述第二生产者着色器产生的所述第二图形数据存储在所述第一缓冲器的另一不同存储位置中;在由所述第二生产者着色器产生所述第二图形数据的过程中,对由所述第二生产者着色器产生的所述第二图形数据的量进行计数;以及在完成所述第二图形数据的所述产生后,即刻用所述第二生产者着色器将指示由所述第二生产者着色器产生的所述第二图形数据的所述量的值存储在所述第二缓冲器的所述第二存储位置中。5.根据权利要求4所述的方法,其中在所述第一生产者着色器完成所述第一图形数据的所述产生之前所述第二生产者着色器完成所述第二图形数据的所述产生,所述方法进一步包括:不执行所述一个或一个以上消费者着色器以消耗存储在所述第一缓冲器的所述另一不同存储位置中的所述第二图形数据,直到所述第一生产者着色器完成所述第一图形数据的产生为止且直到所述第一生产者着色器将指示由所述第一生产者着色器产生的所述图形数据量的所述值存储在所述第二缓冲器的所述第一存储位置中为止。6.根据权利要求5所述的方法,其进一步包括:在所述第一生产者着色器存储指示存储于所述第一缓冲器的所述存储位置中的所述图形数据量的所述值之后,执行所述一个或一个以上消费者着色器中的第一消费者着色器以消耗所述第一图形数据;以及在所述第一消费者着色器的所述执行之后,在所述第二生产者着色器存储指示存储于所述第一缓冲器的所述另一不同存储位置中的所述图形数据量的所述值之后,执行所述一个或一个以上消费者着色器中的第二消费者着色器以消耗所述第二图形数据。7.根据权利要求1所述的方法,其进一步包括:用编译器将致使所述生产者着色器产生计数器的指令包含到由所述编译器产生的所述生产者着色器的目标代码中,其中所述计数器不是所述生产者着色器的源代码的部分,且其中所述计数器在所述生产者着色器正在产生所述图形数据的同时对由所述生产者着色器产生的所述图形数据量进行计数。8.根据权利要求1所述的方法,其中对所述图形数据的所述量进行计数包括:用所述生产者着色器对由所述生产者着色器产生的图元量进行计数,以及其中指示所述图形数据量的所述值包括在所述图形数据的所述产生的所述完成时由所述生产者着色器产生的所述图元量。9.根据权利要求1所述的方法,其进一步包括:基于指示由所述生产者着色器产生的所述图形数据量的所述值而确定将执行所述一个或一个以上消费者着色器的多少实例,其中执行所述一个或一个以上消费者着色器包括执行所述一个或一个以上消费者着色器的所述确定数目的实例。10.根据权利要求1所述的方法,其进一步包括:存储指示图形数据尚待消耗的多个生产者着色器的数目的值,其中所述生产者着色器是所述多个生产者着色器中的一者;以及基于所述存储的指示图形数据尚待消耗的所述多个生产者着色器的所述数目的值来确定所述第二缓冲器的哪些存储位置存储指示所产生图形数据的值。11.一种设备,其包括:第一缓冲器;第二缓冲器;以及图形处理单元GPU,其经配置以:执行产生图形数据的生产者着色器;将由所述生产者着色器产生的所述图形数据存储在所述第一缓冲器的存储位置中;在由所述生产者着色器产生所述图形数据的过程中,对由所述生产者着色器产生的所述图形数据的量进行计数;在完成所述图形数据的所述产生后,即刻用在所述GPU上执行的所述生产者着色器将指示由所述生产者着色器产生的所述图形数据的所述量的值存储在所述第二缓冲器的存储位置中;以及基于指示由所述生产者着色器产生的所述图形数据量的所述值且在将指示由所述生产者着色器产生的所述图形数据量的所述值存储在所述第二缓冲器的所述存储位置中之后,执行一个或一个以上消费者着色器以消耗存储在所述第一缓冲器的所述存储位置中的所述图形数据。12.根据权利要求11所述的设备,其中所述第一缓冲器和所述第二缓冲器是共同缓冲器的部分。13.根据权利要求11所述的设备,其中所述GPU包含所述第二缓冲器。14.根据权利要求11所述的设备,其中为了执行所述一个或一个以上消费者着色器,所述GPU经配置以执行像素着色器以消耗存储在所述第一缓冲器的所述存储位置中的所述图形数据。15.根据权利要求11所述的设备,其中所述生产者着色器包括第一生产者着色器,其中所述图形数据包括第一图形数据,其中所述第二缓冲器包括第一存储位置和第二存储位置,且其中所述值存储在所述第二缓冲器的所述第一存储位置中,且其中所述GPU进一步经配置以:执行产生第二图形数据的第二生产者着色器;将由所述第二生产者着色器产生的所述第二图形数据存储在所述第一缓冲器的另一不同存储位置中;在由所述第二生产者着色器产生所述第二图形数据的过程中,对由所述第二生产者着色器产生的所述第二图形数据的量进行计数;以及在完成所述第二图形数据的所述产生后,即刻用所述第二生产者着色器将指示由所述第二生产者着色器产生的所述第二图形数据的所述量的值存储在所述第二缓冲器的所述第二存储位置中。16.根据权利要求15所述的设备,其中在所述第一生产者着色器完成所述第一图形数据的所述产生之前所述第二生产者着色器完成所述第二图形数据的所述产生,且其中所述GPU进一步经配置以:不执行所述一个或一个以上消费者着色器以消耗存储在所述第一缓冲器的所述另一不同存储位置中的所述第二图形数据,直到所述第一生产者着色器完成所述第一图形数据的产生为止且直到所述第一生产者着色器将指示由所述第一生产者着色器产生的所述图形数据量的所述值存储在所述第二缓冲器的所述第一存储位置中为止。17.根据...

【专利技术属性】
技术研发人员:安德鲁·格鲁伯
申请(专利权)人:高通股份有限公司
类型:
国别省市:

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

1