本申请涉及图形处理,尤其涉及一种剪裁单元、方法、图形处理器、设备、介质及程序产品。
背景技术:
1、随着计算机图形技术的快速发展,图形渲染的复杂性和精细度不断提升,对图形处理单元(gpu)的性能要求也越来越高。在图形渲染过程中,图元的剪裁是一个必不可少的步骤,用于确定哪些图元的部分应被显示在屏幕上,哪些部分应被剪裁掉。然而,传统的剪裁方法往往采用串行处理方式,即一次只处理一个图元,这种方式在处理大量图元时效率低下,无法满足现代图形应用的需求。
技术实现思路
1、有鉴于此,本申请实施例至少提供一种剪裁单元、方法、图形处理器、设备、介质及程序产品。
2、本申请实施例的技术方案是这样实现的:
3、一方面,本申请实施例提供一种剪裁单元,所述剪裁单元包括至少一个剪裁计算管线,所述剪裁计算管线包括至少两个管线单元;其中:
4、所述剪裁计算管线,在利用所述剪裁单元对至少两个图元进行并行剪裁计算的任意时钟周期,所述至少两个图元对应于所述剪裁计算管线的不同管线单元;不同的管线单元对应于剪裁计算的不同的处理阶段。
5、在一些实施例中,所述至少两个管线单元包括旁路单元和串行设置的至少两个计算单元;其中:所述旁路单元,用于按照图元接收顺序,存储所述第一图元和第二图元分别对应的属性数据、并存储所述第一图元;所述第一图元为所述至少两个图元中不存在未计算的剪裁面的图元;所述第二图元为所述至少两个图元中存在未计算的剪裁面的图元;所述至少两个计算单元,用于对所述第二图元进行剪裁计算;在任意时钟周期,任一第二图元的属性数据在存储的所有图元的属性数据中的相对顺序,与所述任一第二图元所处的计算单元在所述至少两个计算单元中的相对位置对应。
6、在一些实施例中,所述剪裁计算管线,还用于响应于从上一时钟周期切换到当前时钟周期,接收当前时钟周期对应的当前图元;在所述当前图元不存在未计算的剪裁面的情况下,通过所述旁路单元存储所述当前图元和所述当前图元的属性数据;在所述当前图元存在未计算的剪裁面的情况下,通过所述至少两个计算单元中的第一个计算单元接收所述当前图元,并通过所述旁路单元存储所述当前图元的属性数据。
7、在一些实施例中,所述剪裁计算管线,还用于接收所述当前图元对应的剪裁面信息;所述剪裁面信息至少包括所述当前图元剩余的未计算的剪裁面的数量;并基于所述当前图元剩余的未计算的剪裁面的数量,确定所述当前图元是否存在未计算的剪裁面。
8、在一些实施例中,所述剪裁计算管线,还用于响应于从上一时钟周期切换到当前时钟周期,将上一时钟周期位于第一计算单元的处理中的图元传递到第二计算单元;所述第二计算单元为所述第一计算单元的下一个计算单元。
9、在一些实施例中,所述剪裁计算管线,还用于在所述第一计算单元为所述至少两个计算单元中的最后一个计算单元的情况下,输出所述处理中的图元和所述处理中的图元的属性数据。
10、在一些实施例中,所述至少两个计算单元包括以下至少之一:包括至少一个第一子单元的重心坐标计算单元、和包括至少一个第二子单元的插值结果计算单元;其中:所述重心坐标计算单元用于基于图元顶点的重心坐标和图元顶点至剪裁面的距离计算交点的重心坐标;所述插值结果计算单元用于基于交点的重心坐标和图元顶点至剪裁面的距离进行插值计算,得到交点至剪裁面的距离。
11、在一些实施例中,所述剪裁计算管线并行处理的最大图元数量为所述第一子单元与所述第二子单元的数量和。
12、在一些实施例中,所述剪裁单元包括依次连接的至少两个剪裁计算管线;所述至少两个图元分布于所述剪裁单元的同一个剪裁计算管线中,或者,所述至少两个图元分布于所述剪裁单元的不同剪裁计算管线中。
13、在一些实施例中,所述剪裁计算管线用于处理图元的一个未计算剪裁面的计算过程;所述剪裁计算管线的数量由所述剪裁单元支持的最大剪裁面数量确定。
14、在一些实施例中,剪裁单元中的第1个剪裁计算管线包括所述重心坐标计算单元;所述剪裁单元中的第2个至第n个剪裁计算管线包括依次连接的所述插值结果计算单元和所述重心坐标计算单元;n为大于或等于2的整数。
15、在一些实施例中,所述剪裁单元还包括连接于所述第n个剪裁计算管线的属性插值计算管线;所述属性插值计算管线用于基于交点的重心坐标进行插值运算,得到交点的属性值。
16、另一方面,本申请实施例提供一种剪裁方法应用于包括至少一个剪裁计算管线的剪裁单元,所述剪裁计算管线包括至少两个管线单元;所述方法包括:在利用所述剪裁单元对至少两个图元进行并行剪裁计算的任意时钟周期,所述至少两个图元对应于所述剪裁计算管线的不同管线单元;不同的管线单元对应于剪裁计算的不同的处理阶段。
17、再一方面,本申请实施例提供一种图形处理器,所述图形处理器包括上述实施例所述的剪裁单元。
18、又一方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
19、又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
20、又一方面,本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时,实现上述方法中的部分或全部步骤。
21、本申请实施例中,通过引入至少一个包含串行设置管线单元的剪裁计算管线,相较于传统的剪裁方法的串行处理,一次只能处理一个图元的方案,本申请实施例中的剪裁计算管线能够并行处理至少两个图元,充分利用了gpu的并行计算能力,这样,可以在相同的时钟周期内完成更多图元的剪裁计算,从而大幅提升了处理速度。
22、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请的技术方案。
1.一种剪裁单元,其特征在于,所述剪裁单元包括至少一个剪裁计算管线,所述剪裁计算管线包括至少两个管线单元;其中:
2.根据权利要求1所述的剪裁单元,其特征在于,所述至少两个管线单元包括旁路单元和串行设置的至少两个计算单元;其中:
3.根据权利要求2所述的剪裁单元,其特征在于,所述剪裁计算管线,还用于响应于从上一时钟周期切换到当前时钟周期,接收当前时钟周期对应的当前图元;在所述当前图元不存在未计算的剪裁面的情况下,通过所述旁路单元存储所述当前图元和所述当前图元的属性数据;在所述当前图元存在未计算的剪裁面的情况下,通过所述至少两个计算单元中的第一个计算单元接收所述当前图元,并通过所述旁路单元存储所述当前图元的属性数据。
4.根据权利要求3所述的剪裁单元,其特征在于,所述剪裁计算管线,还用于接收所述当前图元对应的剪裁面信息;所述剪裁面信息至少包括所述当前图元剩余的未计算的剪裁面的数量;并基于所述当前图元剩余的未计算的剪裁面的数量,确定所述当前图元是否存在未计算的剪裁面。
5.根据权利要求2所述剪裁单元,其特征在于,所述剪裁计算管线,还用于响应于从上一时钟周期切换到当前时钟周期,将上一时钟周期位于第一计算单元的处理中的图元传递到第二计算单元;所述第二计算单元为所述第一计算单元的下一个计算单元。
6.根据权利要求5所述的剪裁单元,其特征在于,所述剪裁计算管线,还用于在所述第一计算单元为所述至少两个计算单元中的最后一个计算单元的情况下,输出所述处理中的图元和所述处理中的图元的属性数据。
7.根据权利要求2至6任一项所述的剪裁单元,其特征在于,所述至少两个计算单元包括以下至少之一:包括至少一个第一子单元的重心坐标计算单元、和包括至少一个第二子单元的插值结果计算单元;其中:
8.根据权利要求7所述的剪裁单元,其特征在于,所述剪裁计算管线并行处理的最大图元数量为所述第一子单元与所述第二子单元的数量和。
9.根据权利要求7所述的剪裁单元,其特征在于,所述剪裁单元包括依次连接的至少两个剪裁计算管线;
10.根据权利要求9所述的剪裁单元,其特征在于,所述剪裁计算管线用于处理图元的一个未计算剪裁面的计算过程;所述剪裁计算管线的数量由所述剪裁单元支持的最大剪裁面数量确定。
11.根据权利要求9所述的剪裁单元,其特征在于,剪裁单元中的第1个剪裁计算管线包括所述重心坐标计算单元;所述剪裁单元中的第2个至第n个剪裁计算管线包括依次连接的所述插值结果计算单元和所述重心坐标计算单元;n为大于或等于2的整数。
12.根据权利要求11所述的剪裁单元,其特征在于,所述剪裁单元还包括连接于所述第n个剪裁计算管线的属性插值计算管线;所述属性插值计算管线用于基于交点的重心坐标进行插值运算,得到交点的属性值。
13.一种剪裁方法,其特征在于,应用于包括至少一个剪裁计算管线的剪裁单元,所述剪裁计算管线包括至少两个管线单元;所述方法包括:
14.根据权利要求13所述的方法,其特征在于,所述至少两个管线单元包括旁路单元和串行设置的至少两个计算单元;所述通过所述剪裁计算管线并行处理至少两个图元,包括:
15.根据权利要求14所述的方法,其特征在于,所述通过所述剪裁计算管线并行处理至少两个图元,包括:
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
17.根据权利要求13所述的方法,其特征在于,所述通过所述剪裁计算管线并行处理至少两个图元,包括:
18.根据权利要求17所述的方法,其特征在于,所述通过所述剪裁计算管线并行处理至少两个图元,还包括:
19.根据权利要求14至18任一项所述的方法,其特征在于,所述至少两个计算单元包括以下至少之一:包括至少一个第一子单元的重心坐标计算单元、和包括至少一个第二子单元的插值结果计算单元;
20.根据权利要求19所述的方法,其特征在于,所述剪裁计算管线并行处理的最大图元数量为所述第一子单元与所述第二子单元的数量和。
21.根据权利要求19所述的方法,其特征在于,所述剪裁单元包括依次连接的至少两个剪裁计算管线,所述至少两个图元分布于所述剪裁单元的同一个剪裁计算管线中,或者,所述至少两个图元分布于所述剪裁单元的不同剪裁计算管线中。
22.根据权利要求21所述的方法,其特征在于,所述剪裁计算管线用于处理图元的一个未计算剪裁面的计算过程;所述剪裁计算管线的数量由所述剪裁单元支持的最大剪裁面数量确定。
23.根据权利要求21所述的方法,其特征在于,剪裁单元中的第1个剪裁计算管线包括所述重心坐标计算单元;所述剪裁单元中的第2个至第n个剪裁计算管线包括依次连接的所述插值结果计算单元和所述重心坐标计算单元;n为大于或等于2的整数。
24.根据权利要求23所述的方法,其特征在于,所述剪裁单元还包括连接于所述第n个剪裁计算管线的属性插值计算管线;所述属性插值计算管线用于基于交点的重心坐标进行插值运算,得到交点的属性值。
25.一种图形处理器,其特征在于,所述图形处理器包括权利要求1至12中任一项所述的剪裁单元。
26.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求13至24任一项所述方法中的步骤。
27.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求13至24任一项所述方法中的步骤。
28.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求13至24中任一项所述方法中的步骤。