【技术实现步骤摘要】
【国外来华专利技术】通过在渲染前针对交错的屏幕区域进行预测试来进行几何图形的高效多GPU渲染的系统和方法
[0001]本公开涉及图形处理,并且更具体地涉及在为应用渲染图像时的多GPU协作。
技术介绍
[0002]近年来,在线服务不断推动,允许在云游戏服务器和通过网络连接的客户端之间以流式传输格式进行在线游戏或云游戏。由于按需提供游戏名称、执行更复杂游戏的能力、玩家之间联网以进行多玩家游戏的能力、玩家之间的资产共享、玩家和/或观众之间的即时体验共享、允许朋友观看朋友玩视频游戏、让朋友加入朋友正在进行的游戏进行等,流式传输格式越来越受欢迎。
[0003]云游戏服务器可以被配置为向一个或多个客户端和/或应用提供资源。也就是说,云游戏服务器可以配置有能够高吞吐量的资源。例如,单个图形处理单元(GPU)可以达到的性能是有限的。为了在生成场景时渲染更复杂的场景或使用更复杂的算法(例如材质、照明等),可能需要使用多个GPU来渲染单个图像。然而,这些图形处理单元的同等使用是难以实现的。此外,即使有多个GPU使用传统技术为应用处理图像,也无法支持对应增加 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种用于图形处理的方法,其包括:使用多个图形处理单元(GPU)为应用渲染图形;基于多个屏幕区域在所述多个GPU之间划分用于渲染所述图形的几何图形的责任,每个GPU具有所述多个GPU已知的所述责任的对应划分,其中所述多个屏幕区域中的屏幕区域是交错的;将由应用生成的图像帧的几何图形分配给GPU以用于几何图形预测试;在所述GPU处执行所述几何图形预测试以生成关于所述几何图形及其与所述多个屏幕区域中的每一个的关系的信息;以及在渲染所述图像帧时在所述多个GPU中的每一个处使用所述信息。2.根据权利要求1所述的方法,其还包括:当所述信息指示所述几何图形不与分配给渲染GPU用于对象渲染的任何屏幕区域重叠时,在所述渲染GPU处跳过所述几何图形的渲染,其中所述渲染GPU是所述多个GPU之一。3.根据权利要求1所述的方法,其还包括:将所述信息作为提示提供给渲染GPU,其中所述渲染GPU是所述多个GPU之一,其中如果在所述渲染GPU开始渲染所述几何图形之前接收到所述信息,则所述渲染GPU考虑所述信息,其中当在第一几何图形的渲染开始之后接收到所述信息时,在所述渲染GPU处完全渲染所述几何图形。4.根据权利要求1所述的方法,其还包括:将所述图像帧的多个几何图形分配给所述多个GPU用于几何图形预测试,其中所述多个几何图形中的几何图形在所述多个GPU中被均匀或不均匀地分配。5.根据权利要求4所述的方法,其中分配所述多个几何图形使得连续的几何图形由不同的GPU处理。6.根据权利要求5所述的方法,其中第一GPU比第二GPU对更多的几何图形执行几何图形预测试,或者所述第一GPU执行几何图形预测试而所述第二GPU根本不执行几何图形预测试。7.根据权利要求1所述的方法,其中所述多个屏幕区域被配置为减少所述多个GPU之间的渲染时间的不平衡。8.根据权利要求1所述的方法,其中所述多个屏幕区域中的每一个在大小上不统一。9.根据权利要求1所述的方法,其中所述多个屏幕区域动态地改变。10.根据权利要求1所述的方法,其中所述几何图形对应于由绘制调用使用或生成的几何图形。11.根据权利要求1所述的方法,其中由所述应用的绘制调用使用或生成的几何图形被细分为多个几何图形,包括所述GPU为其生成信息的所述几何图形。12.根据权利要求1所述的方法,其中所述几何图形是单独的图元。13.根据权利要求1所述的方法,其中关于所述几何图形的所述信息包括顶点计数或图元计数。14.根据权利要求1所述的方法,其中关于所述几何图形的所述信息包括用于渲染的一
组特定图元或用于渲染的一组特定顶点。15.根据权利要求1所述的方法,其还包括:使用用于所述多个GPU的公共渲染命令缓冲区;以及将所述公共渲染命令缓冲区中的命令的执行限制到所述多个GPU中的一个或多个。16.根据权利要求1所述的方法,其中根据所述几何图形的性质,可以生成或不生成所述信息。17.根据权利要求1所述的方法,其还包括:在光栅化级中使用扫描转换器生成所述信息。18.根据权利要求1所述的方法,其还包括:在几何图形处理级中使用一个或多个着色器生成所述信息。19.根据权利要求18所述的方法,其中所述一个或多个着色器使用一个或多个专用指令来加速所述信息的生成。20.根据权利要求18所述的方法,其中所述一个或多个着色器不执行对位置高速缓存或参数高速缓存的分配。21.根据权利要求1所述的方法,其还包括:在所述多个GPU之间划分多个几何图形用于几何图形预测试,其中连续的几何图形由不同的GPU处理。22.根据权利要求21所述的方法,其还包括:在几何图形预测试期间基于所述多个GPU中的每一个的性能动态调整所述多个几何图形的划分。23.根据权利要求1所述的方法,其中所述多个GPU中的一个或多个是配置为多个虚拟GPU的较大GPU的部分。24.一种计算机系统,其包括:处理器;存储器,所述存储器耦合到所述处理器并且其中存储有指令,所述指令如果由所述计算机系统执行,则致使所述计算机系统执行用于实现图形流水线的方法,所述方法包括:使用多个图形处理单元(GPU)为应用渲染图形;基于多个屏幕区域在所述多个GPU之间划分用于渲染所述图形的几何图形的责任,每个GPU具有所述多个GPU已知的所述责任的对应划分,其中所述多个屏幕区域中的屏幕区域是交错的;将由应用生成的图像帧的几何图形分配给GPU以用于几何图形预测试;在所述GPU处执行所述几何图形预测试以生成关于所述几何图形及其与所述多个屏幕区域中的每一个的关系的信息;以及在渲染所述图像帧时在所述多个GPU中的每一个处使用所述信息。25.根据权利要求24所述的计算机系统,所述计算机系统还包括:当所述信息指示所述几何图形不与分配给渲染GPU用于对象渲染的任何屏幕区域重叠时,在所述渲染GPU处跳过所述几何图形的渲染,其中所述渲染GPU是所述多个GPU之一。26.根据权利要求24所述的计算机系统,所述方法还包括:将所述信息作为提示提供给渲染GPU,其中所述渲染GPU是所述多个GPU之一,
其中如果在所述渲染GPU开始渲染所述几何图形之前接收到所述信息,则所述渲染GPU考虑所述信息,其中当在第一几何图形的渲染开始之后接收到所述信息时,在所述渲染GPU处完全渲染所述几何图形。27.一种用于图形处理的方法,其包括:使用多个图形处理单元(GPU)为应用渲染图形;基于多个屏幕区域在所述多个GPU之间划分用于渲染所述图形的几何图形的责任,每个GPU具有所述多个GPU已知的所述责任的对应划分;在由应用生成的前一图像帧的渲染阶段期间在所述多个GPU处渲染第一多个几何图形;为所述前一图像帧的渲染生成统计数据;基于所述统计数据将由所述应用生成的当前图像帧的第二多个几何图形分配给所述多个GPU用于几何图形测试;在当前图像帧上对所述第二多个几何图形执行几何图形测试,以生成关于所述第二多个几何图形中的每一个及其与所述多个屏幕区域中的每一个的关系的信息,所述几何图形测试是基于所述分配在所述多个GPU中的每一个处执行的;以及当在所述多个GPU处渲染所述几何图形时,使用为所述第二多个几何图形中的每一个生成的所述信息。28.根据权利要求27所述的方法,其还包括:将所述信息作为提示提供给渲染GPU,其中所述渲染GPU是所述多个GPU之一,其中如果在渲染所述第二多个几何图形中的一个几何图形之前接收到所述信息,则所述渲染GPU考虑所述信息,其中当在所述第二多个几何图形中的所述几何图形的渲染开始之后接收到所述信息时,所述第二多个几何图形中的所述几何图形在所述渲染GPU处被完全渲染。29.根据权利要求27所述的方法,其中将所述第二多个几何图形中的几何图形均匀地或不均匀地分配给所述多个GPU。30.根据权利要求27所述的方法,其还包括:确定第一GPU在第二GPU完成渲染所述第一多个几何图形之前完成渲染所述第一多个几何图形,其中所述第一GPU渲染与分配给所述第一GPU用于对象渲染的任何屏幕区域重叠的所述第一多个几何图形中的一个或多个,并且所述第二GPU渲染与分配给所述第二GPU用于对象渲染的任何屏幕区域重叠的所述第一多个几何图形中的一个或多个;将所述第二多个几何图形中的第一数量分配给所述第一GPU以进行几何图形测试;以及将所述第二多个几何图形中的第二数量分配给所述第二GPU以进行几何图形测试,其中所述第一数量高于所述第二数量。31.根据权利要求30所述的方法,其中所述第二数量为零。32.根据权利要求27所述的方法,其中使用所述信息包括:当所述信息指示所述第二多个几何图形中的一个几何图形不与分配给渲染GPU用于对象渲染的任何屏幕区域重叠时,在所述渲染GPU处跳过所述几何图形的渲染,其中所述渲染
GPU是所述多个GPU之一。33.根据权利要求27所述的方法,其还包括:在所述多个GPU之间划分所述第二多个几何图形用于几何图形预测试,其中连续的几何图形由不同的GPU处理。34.根据权利要求33所述的方法,其还包括:在几何图形预测试期间基于所述多个GPU中的每一个的性能动态调整所述第二多个几何图形的划分。35.根据权利要求33所述的方法,其中第一GPU在几何图形预测试期间比第二GPU处理更多的几何图形。36.根据权利要求27所述的方法,其中所述第二多个几何图形中的一个几何图形对应于由绘制调用使用或生成的几何图形。37.根据权利要求27所述的方法,其中所述多个GPU中的一个或多个是配置为多个虚拟GPU的较大GPU的部分。38.一种用于执行方法的非暂时性计算机可读介质,所述计算机可读介质包括:用于使用多个图形处理单元(GPU)为应用渲染图形的程序指令;用于基于多个屏幕区域在所述多个GPU之间划分用于渲染所述图形的几何图形的责任的程序指令,每个GPU具有所述多个GPU已知的所述责任的对应划分;用于在由应用生成的前一图像帧的渲染阶段期间在所述多个GPU处渲染第一多个几何图形的程序指令;用于为所述前一图像帧的渲染生成统计数据的程序指令;用于基于所述统计数据将由所述应用生成的当前图像帧的第二多个几何图形分配给所述多个GPU用于几何图形测试的程序指令;用于在当前图像帧上对所述第二多个几何图形执行几何图形测试,以生成关于所述第二多个几何图形中的每一个及其与所述多个屏幕区域中的每一个的关系的信息的程序指令,所述几何图形测试是基于所述分配在所述多个GPU中的每一个处执行的;和用于当在所述多个GPU处渲染所述几何图形时,使用为所述第二多个几何图形中的每一个生成的所述信息的程序指令。39.根据权利要求38所述的非暂时性计算机可读介质,其还包括:用于将所述信息作为提示提供给渲染GPU的程序指令,其中所述渲染GPU是所述多个GPU之一,其中如果在渲染所述第二多个几何图形中的一个几何图形之前接收到所述信息,则所述渲染GPU考虑所述信息,其中当在所述第二多个几何图形中的所述几何图形的渲染开始之后接收到所述信息时,所述第二多个几何图形中的所述几何图形在所述渲染GPU处被完全渲染。40.根据权利要求38所述的非暂时性计算机可读介质,其中在所述方法中,将所述第二多个几何图形中的几何图形均匀地或不均匀地分配给所述多个GPU。41.根据权利要求38所述的非暂时性计算机可读介质,其还包括:用于确定第一GPU在第二GPU完成渲染所述第一多个几何图形之前完成渲染所述第一多个几何图形的程序指令,其中所述第一GPU渲染与分配给所述第一GPU用于对象渲染的任
何屏幕区域重叠的所述第一多个几何图形中的一个或多个,并且所述第二GPU渲染与分配给所述第二GPU用于对象渲染的任何屏幕区域重叠的所述第一多个几何图形中的一个或多个;用于将所述第二多个几何图形中的第一数量分配给所述第一GPU以进行几何图形测试的程序指令;和用于将所述第二多个几何图形中的第二数量分配给所述第二GPU以进行几何图形测试的程序指令,其中所述第一数量高于所述第二数量。42.根据权利要求38所述的非暂时性计算机可读介质,其中用于使用所述信息的所述程序指令包括:用于当所述信息指示所述第二多个几何图形中的一个几何图形不与分配给渲染GPU用于对象渲染的任何屏幕区域重叠时,在所述渲染GPU处跳过所述几何图形的渲染的程序指令,其中所述渲染GPU是所述多个GPU之一。43.根据权利要求38所述的非暂时性计算机可读介质,其还包括:用于在所述多个GPU之间划分所述第二多个几何图形以用于几何图形预测试的程序指令,其中连续的几何图形由不同的GPU处理。44.根据权利要求43所述的非暂时性计算机可读介质,其还包括:用于在几何图形预测试期间基于所述多个GPU中的每一个的性能动态调整所述第二多个...
【专利技术属性】
技术研发人员:ME塞尔尼,F斯特劳斯,T伯格霍夫,
申请(专利权)人:索尼互动娱乐股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。