【技术实现步骤摘要】
【国外来华专利技术】着色器操作的同步方法及装置
本专利技术涉及图形着色器,且更特定来说涉及一个或一个以上图形着色器在图形处理单元(GPU)上的执行。
技术介绍
产生可观看内容的装置通常包含图形处理单元(GPU)。GPU可处理图形数据以产生显示器上的像素的像素值。为了处理图形数据,GPU可执行一个或一个以上着色器程序,经常称为着色器。着色器程序可为当GPU执行着色器程序时致使GPU执行由着色器程序界定的功能的软件程序。举例来说,着色器程序可界定GPU应处理图形数据以产生显示器上的像素的像素值的方式。
技术实现思路
大体上,本专利技术描述用于同步图形处理单元(GPU)上的一个或一个以上着色器程序的执行的技术。在一些实例中,一个着色器程序可产生由另一着色器程序消耗或利用的图形数据。产生图形数据的着色器程序可称为生产者着色器,且消耗所产生图形数据的着色器程序可称为消费者着色器。本专利技术中描述的实例技术中的一些可致使GPU同步生产者和消费者着色器的执行,使得GPU不执行消费者着色器直到所述生产者着色器已产生将由消费者着色器消耗的图形数据为止。在一个实例中,本专利技术描述一种方法,包含:用图形处理单元(GPU)执行产生图形数据的生产者着色器;以及用所述GPU将由所述生产者着色器产生的所述图形数据存储在第一缓冲器的存储位置中。所述方法进一步包含在完成所述图形数据的所述产生后,即刻用在所述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.根据...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。