CN115576689A - 云渲染处理方法、设备和存储介质 - Google Patents
云渲染处理方法、设备和存储介质 Download PDFInfo
- Publication number
- CN115576689A CN115576689A CN202211234861.7A CN202211234861A CN115576689A CN 115576689 A CN115576689 A CN 115576689A CN 202211234861 A CN202211234861 A CN 202211234861A CN 115576689 A CN115576689 A CN 115576689A
- Authority
- CN
- China
- Prior art keywords
- cloud
- video memory
- rendering
- rendering data
- storage address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请提供一种云渲染处理方法、设备和存储介质,该方法包括:云服务器接收云应用实例触发的包括渲染数据信息和所述渲染数据信息对应的参数信息的渲染数据加载请求。根据渲染数据信息确定索引特征值,在存储记录中确定与参数信息对应的目标存储记录。若在目标存储记录中查询到索引特征值,则将与索引特征值对应的第一显存存储地址发送至云应用实例,以使云应用实例向图形处理器发送包含第一显存存储地址的渲染请求,使得图形处理器基于第一显存存储地址中存储的渲染数据信息进行画面渲染处理。之后将渲染出的画面发送至用户端设备进行显示。通过本方案可以避免云服务器中显存的浪费。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种云渲染处理方法、设备和存储介质。
背景技术
云渲染服务,是指将渲染程序运行在远程的云服务器中完成渲染工作,用户通过客户端或网元的方式获得云端的渲染结果进行显示。它的目的是将传统的需要在用户端本地渲染的应用,放到性能强大的云服务器上执行。例如:云游戏应用就是将传统需要用户端本地渲染的游戏程序放到云端服务器上,利用云服务器的比如图形处理器(graphicsprocessing unit,简称GPU)进行渲染处理,然后将得到的游戏画面渲染结果返回给用户端进行显示。在诸如云桌面、云手机、云游戏等应用场景下都可以使用云渲染服务。
在传统的提供云渲染服务的云服务器上,比如纹理、着色器等渲染数据,在GPU硬件上可能会重复出现。比如在云手机应用场景中,相同的手机桌面背景就是相同的纹理数据,对于同一个GPU上的每个云手机应用实例,GPU都会为这个纹理数据分配相应的显存空间进行数据存储。云服务厂商为了降低云渲染的成本,需要在GPU上尽可能多地支持云应用实例,这样GPU的显存利用率,就是制约云渲染服务所能支持的云应用实例数的一个主要瓶颈。
发明内容
本发明实施例提供一种云渲染处理方法、设备和存储介质,用以避免云端GPU的显存空间的浪费。
第一方面,本发明实施例提供一种云渲染处理方法,应用于云服务器,所述方法包括:
接收云应用实例触发的渲染数据加载请求,所述渲染数据加载请求中包括渲染数据类别标识、渲染数据信息和所述渲染数据信息对应的参数信息;
根据所述渲染数据信息确定索引特征值;
在所述渲染数据类别标识对应的存储记录中确定与所述参数信息对应的目标存储记录;
若在所述目标存储记录中查询到所述索引特征值,则将所述目标存储记录中与所述索引特征值对应的第一显存存储地址发送至所述云应用实例,以使所述云应用实例向图形处理器发送包含所述第一显存存储地址的渲染请求,使得所述图形处理器基于所述第一显存存储地址中存储的所述渲染数据信息进行画面渲染处理;
将渲染出的画面发送至用户端设备进行显示。
第二方面,本发明实施例提供一种云渲染处理装置,应用于云服务器,所述装置包括:
接收模块,用于接收云应用实例触发的渲染数据加载请求,所述渲染数据加载请求中包括渲染数据类别标识、渲染数据信息和所述渲染数据信息对应的参数信息;
查询模块,用于根据所述渲染数据信息确定索引特征值,在所述渲染数据类别标识对应的存储记录中确定与所述参数信息对应的目标存储记录,查询所述目标存储记录中是否包含所述索引特征值;
发送模块,用于若在所述目标存储记录中查询到所述索引特征值,则将所述目标存储记录中与所述索引特征值对应的第一显存存储地址发送至所述云应用实例,以使所述云应用实例向图形处理器发送包含所述第一显存存储地址的渲染请求,使得所述图形处理器基于所述第一显存存储地址中存储的所述渲染数据信息进行画面渲染处理;以及,将渲染出的画面发送至用户端设备进行显示。
第三方面,本发明实施例提供一种云服务器,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如第一方面所述的云渲染处理方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被云服务器的处理器执行时,使所述处理器执行如第一方面所述的云渲染处理方法。
假设在一个云服务器中设置有至少一个GPU,并且在该云服务器中运行有多个共用该GPU的云应用实例,比如多个云手机应用实例,在本发明实施例提供的云渲染处理方法中,提供了一种重复的渲染数据检测机制,基于该检测机制,可以避免重复的渲染数据信息在GPU显存中被重复存储,从而避免显存资源的浪费。
当某云应用实例需要渲染某画面时,首先将渲染所需的渲染数据信息加载到GPU显存中,之后再向GPU发送包含渲染数据信息在显存中的存储地址的渲染请求,以使得GPU从显存中读取相应渲染数据进行渲染处理。在渲染数据加载过程中,云应用实例触发包括渲染数据类别标识、渲染数据信息和渲染数据信息对应的参数信息的渲染数据加载请求,之后,根据渲染数据信息生成索引特征值,并在与渲染数据类别标识和所述参数信息对应的目标存储记录中查找是否包含该索引特征值,若包含,说明该渲染数据信息此前已经被加载到过显存中,此时,不需要将该渲染数据信息再一次加载到显存中,即不需要分配新的存储地址来重复存储该渲染数据信息,仅需要将目标存储记录中与该索引特征值对应的显存存储地址反馈给云应用实例,以便其触发后续渲染过程。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为传统的一种云手机应用对显存占用情况的示意图;
图2为本发明实施例提供的一种云手机应用对显存占用情况的示意图;
图3为本发明实施例提供的一种云服务器的架构示意图;
图4为本发明实施例提供的一种云渲染处理方法的流程图;
图5为本发明实施例提供的一种云渲染处理方法的应用示意图;
图6为本发明实施例提供的一种云渲染处理方法的流程图;
图7为本发明实施例提供的一种云渲染处理方法的应用示意图;
图8为本发明实施例提供的一种云渲染处理装置的结构示意图;
图9为本实施例提供的一种电子设备的结构示意。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
首先对本发明实施例中涉及到的一些概念进行说明。
异构计算:指使用不同类型指令集和体系架构的计算单元组成计算系统的计算方式。常见的计算单元类别包括中央处理器(central processing unit,简称CPU)、GPU、神经网络处理器(neural-network processing units,简称NPU)等。
云手机应用:云手机应用就是将云计算技术运用于网络终端的一种服务,通过云端服务器实现虚拟化的手机,用户可以将传统的手机App运行在云手机应用上。
云桌面:又称桌面虚拟化、云电脑,是替代传统电脑的一种新模式;采用云桌面后,用户无需再购买电脑主机,主机所包含的CPU、内存、硬盘等组件全部在云端服务器中虚拟出来。
云游戏应用:是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏程序都在云端服务器运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户端。
显存:全称显示记忆体,也称为帧缓存,它是用来存储显示芯片处理过或者即将读取的渲染数据。如同计算机的内存一样,显存是用来存储图形数据的硬件。
纹理(texture):即物体表面的样子,包含物体表面呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案。在渲染过程中,通常通过纹理映射将物体表面纹理图片贴到物体的几何图形上面。
着色器(shader):是一种计算机应用程序,通常运行在GPU上,用于进行图像的浓淡处理(计算图像中的光照、亮度、颜色等)。按功能类型分可以分成:顶点着色器(Vertexshader)、像素着色器(Pixel shader)、几何着色器(Geometry shader)、计算着色器(Compute shader)、细分曲面着色器(Tessellation shader),等等。
云渲染服务是异构计算云服务的一个重要场景,广义上的云渲染服务可以被使用于诸如云桌面,云手机,云游戏,元宇宙等应用场景。实际应用中,云端可以部署若干异构的云服务器,所谓异构的云服务器,简单来说可以理解为是不同云服务器中使用的加速计算单元的类型是不同的,比如有些云服务器中仅部署有CPU,而有些云服务器中还部署有GPU,还可以有些部署的是NPU。从而,不用云应用可以根据相应的计算需求被选择运行在不同的云服务器中。
首先结合图1示例型说明一种传统的云渲染处理方案。
图1中以云手机应用为例,如图1中所示,在一个云服务器(物理主机)中运行了3个云手机应用实例:A、B、C,分别对应于三个用户,并假设这3个云手机应用实例的手机桌面背景画面相同,比如该手机桌面背景画面中包含图中示意的蓝色背景图像101、在该蓝色背景图像101上层显示的应用图标区102以及操作区103,其中,应用图标区102中包括图中示意的应用1、应用2,操作区103中包括图中示意的几个操作按钮。
其中,如图1中所示,可以在云服务器中创建3个虚拟机或虚拟容器,3个虚拟机或虚拟容器中运行同一云手机应用,从而形成上述3个云手机应用实例。并且,该云服务器中运行有渲染程序,以提供云渲染服务,其中,该渲染程序可以由云服务器中的GPU来运行。实际应用中,云服务器中可以设置有不止一个GPU,为便于描述,本发明实施例中仅以共用一个GPU的多个云应用实例来说明,从而,上述3个云手机应用实例共用图中示意的一个GPU。
如图1中所示,假设云手机应用实例A在需要显示上述手机桌面背景画面时,将渲染出该手机桌面背景画面所需的纹理数据发送给了GPU,GPU在其显存中为云手机应用实例A分配了一块存储空间,将该纹理数据存入,将这块存储空间对应的存储地址(本文中称为显存存储地址)发送给云手机应用实例A。假设之后云手机应用实例B和C也在需要显示上述手机桌面背景画面时,将渲染出该手机桌面背景画面所需的同样的纹理数据发送给了GPU,GPU在其显存中为云手机应用实例B和C分别分配了另一块存储空间,将该纹理数据存入,将相应存储空间对应的存储地址发送给云手机应用实例B和C。假设上述手机桌面背景画面是1280x720分辨率的图像,每份纹理数据大约需要占用2MB的显存空间,那么上述情况下会浪费4MB显存空间的浪费。
相似的情况,在云桌面,云游戏等场景下也会发生,比如相同的云桌面背景画面,相同的云游戏中的场景纹理,皮肤纹理等,都会产生由于重复纹理等渲染数据造成的显存浪费。实际上,除了纹理之外,着色器程序在云渲染场景下也会有重复的现象,比如云游戏应用场景中,通常一个大型云游戏应用要加载上百个着色器,如果两个虚拟机中运行了相同的云游戏应用,从而形成连个云游戏应用实例,那么两者的着色器在加载到显存的过程中,也会造成较多的显存浪费。
基于此,本发明实施例提供的云渲染处理方案中,提出了一种云渲染的重复纹理和重复着色器的检测机制。利用这种检测机制,可以在提供云渲染服务的云服务器上,检测到不同云渲染实例(即需要使用云渲染服务的云应用实例)向GPU显存中加载的重复纹理数据或着色器,这样在GPU上可以复用不同云应用实例加载到显存中的相同纹理数据或着色器,避免了重复的渲染数据(如纹理数据、着色器)在GPU上进行显存空间的多次分配,避免了显存的浪费。另外,在众多用户对某种云应用提出使用需求,为众多用户创建对应的云应用实例时,可以在同一云服务器上构建出使用同一GPU的更多的该云应用实例,可以基于上述重复检测机制进一步提升该云服务器中不同GPU的利用率,从而降低云服务器的成本。
下面为便于理解,先结合图2示例型说明基于本发明实施例提供的云渲染处理方案,在云手机应用场景下GPU的显存节省情况。
在图2中,仍以图1中所示的三个云手机应用实例A、B、C为例。
如图2中所示,在云服务器中设置了“重复资源检测器”这个功能模块,通过该功能模块进行重复加载的判定。假设在步骤(1)中,云手机应用实例A在需要显示上述手机桌面背景画面时,将渲染出该手机桌面背景画面所需的纹理数据发送给了GPU,GPU在其显存中为云手机应用实例A分配了一块存储空间,将该纹理数据存入,将相应的显存存储地址反馈给云手机应用实例A。并且云服务器中对该加载结果进行了记录。
假设之后在步骤(2)和(3)中,云手机应用实例B和C也在需要显示上述手机桌面背景画面时,提交了该手机桌面背景画面对应的纹理数据的加载请求,云服务器发现该纹理数据此前已经加载到GPU的显存中了,因此不会再重复加载到GPU显存中,因此不需要分配新的显存资源,从而达到节省显存的目的,直接将此前加载该纹理数据时所对应的显存存储地址直接反馈给云手机应用实例B和C。
下面结合以下一些实施例来详细介绍本申请提供的云渲染处理方法。该云渲染处理方法可以由提供云渲染服务的云服务器中的CPU来执行。如图3中所示,宏观上来说,云服务器中包括以下功能模块:GPU、重复资源检测器、多个虚拟机/多个虚拟容器。
其中,重复资源检测器是一种软件功能模块,由CPU来运行,是实现本发明实施例提供的云渲染处理方案的核心模块。多个虚拟机/多个虚拟容器是基于该GPU虚拟化出的,即多个虚拟机/多个虚拟容器共用该GPU,其中运行有多个云应用实例,比如多个云手机应用实例、多个云游戏应用实例,或者多个云桌面实例。
图4为本发明实施例提供的一种云渲染处理方法的流程图,如图4所示,该方法包括如下步骤:
401、接收云应用实例触发的渲染数据加载请求,渲染数据加载请求中包括渲染数据信息和渲染数据信息对应的参数信息。
402、根据渲染数据信息确定索引特征值,在存储记录中确定与所述参数信息对应的目标存储记录。
403、若在目标存储记录中查询到上述索引特征值,则将目标存储记录中与该索引特征值对应的第一显存存储地址发送至云应用实例,以使云应用实例向GPU发送包含第一显存存储地址的渲染请求,使得GPU基于第一显存存储地址中存储的渲染数据信息进行画面渲染处理。
404、将渲染出的画面发送至用户端设备进行显示。
实际应用中,用户可以通过本地的用户端设备(比如手机、笔记本电脑、PC机,等)中安装的与云应用对应的客户端程序来访问远端的运行相应云应用实例的云服务器,或者也可以通过网页的方式来访问。
当多个用户具有相同或不同云应用的使用需求时,可以通过各自的用户端设备向云服务提供商触发相应的使用请求,云服务提供商基于不同用户针对不同云应用的使用请求,可选地,可以基于如下原则进行处理:基于多个用户对同一云应用的使用请求,对应地在目标云服务器中创建多个云应用实例,这多个云应用实例共用该目标云服务器中的同一GPU。其中,该云应用是指需要使用云渲染服务的云应用,因为使用云渲染服务的云应用会被优先调度到配置有GPU的云服务器中。
在同一GPU基础上,运行同一种云应用的不同实例,由于这些云应用实例往往会产生同样的画面渲染需求,即会存在重复的渲染数据加载请求,基于本发明实施例提供的重复检测机制,可以更加优化地使用该云服务器中的GPU显存资源。
另外,一个GPU上能够支持的云应用实例数量有限,一个云服务器上部署的GPU数量也有限,因此实际上,未必将同一云应用对应的所有实例都构建在基于同一GPU的不同虚拟机中,也未必将同一云应用对应的所有实例都构建在同一云服务器中,但是为了尽可能高效利用GPU的显存资源,整体上遵从将同一云应用的不同实例尽可能部署在基于同一GPU构建的不同虚拟机中的原则。
因此,上述步骤401中的云应用实例可以是同一GPU上支持的多个云应用实例中的任一个,且多个云应用实例可以对应于同一云应用。
用户端设备在启动该云应用实例使得该云应用实例需要渲染显示首页画面,或者,用户端设备将用户的交互行为发送至云应用实例使得云应用实例渲染显示某应用画面时,该云应用实例触发与该应用画面对应的渲染数据加载请求。其中,该渲染数据加载请求中包括渲染数据信息和所述渲染数据信息对应的参数信息。
可选地,该渲染数据加载请求中还可以包括渲染数据类别标识。实际应用中,渲染数据类别标识比如包括如下任一种:着色器、纹理。对应地,渲染数据信息包括:着色器的程序代码、纹理数据。渲染数据信息的参数信息包括:着色器的类型、纹理数据的尺寸和格式。其中,着色器的类型比如可以包括上文中举例的顶点着色器、像素着色器、细分曲面着色器,等等。其中,纹理数据的尺寸,即为一幅画面对应的纹理数据的整体高度和宽度,纹理数据的格式比如包括RGB、YUV、JPEG(Joint Photographic Experts Group)、JIF(图像互换格式,Graphics Interchange Format的缩写)等格式类型。
之后,根据渲染数据信息(比如纹理数据、着色器的程序代码)生成表征该渲染数据信息的特征值,称为索引特征值。比如,可以对渲染数据信息进行哈希计算将得到的哈希值作为索引特征值。确定与渲染数据类别标识对应的多个存储记录,在这多个存储记录中进一步确定与上述参数信息对应的目标存储记录。
实际应用中,上述存储记录可以以表格的形式存储,即存储记录表,用于记录已经加载到GPU的显存中的渲染数据相关信息。可以针对每种类别标识下的每种参数信息独立地设置一个存储记录表,这样可以提高查询效率。
比如,针对着色器这种类别标识,其对应的参数信息可以是着色器类型,从而可以针对每种着色器类型设置对应的存储记录。
比如,针对纹理这种类别标识,其对应的参数信息可以是纹理数据的尺寸和格式,从而可以针对每种纹理数据的尺寸和格式设置对应的存储记录。比如,尺寸1+格式a对应有一个存储记录,尺寸1+格式b对应有一个存储记录,尺寸2+格式a对应有一个存储记录。
在确定上述目标存储记录之后,在该目标存储记录中查询是否包含基于渲染数据信息计算出的索引特征值,若存在,说明该渲染数据信息此前已经加载到过GPU显存中,不需要重复加载,此时,可以将目标存储记录中与该索引特征值对应的第一显存存储地址发送至上述云应用实例。若不存在,说明该渲染数据信息此时并没有存储在GPU的显存中,此时可以触发GPU为该渲染数据信息分配第二显存存储地址以将该渲染数据信息存入第二显存存储地址,之后,在目标存储记录中记录上述索引特征值与该第二显存存储地址的对应关系,进而将第二显存存储地址发送至所述云应用实例。
云应用实例接收到上述第一显存存储地址或者第二显存存储地址之后,便可以触发进一步的渲染过程。该渲染过程与传统渲染过程相似,在此仅简单描述:云应用实例向GPU发送包含第一显存存储地址或第二显存存储地址的渲染请求,使得GPU基于第一显存存储地址或第二显存存储地址中存储的所述渲染数据信息进行画面渲染处理,得到渲染出的画面。之后,云服务器可以将渲染出的画面发送至用户端设备。实际应用中,云服务器可以是视频流的方式向用户端设备发送云应用的画面,此时,云服务器可以按照设定的视频流推流协议,对该渲染出的画面进行压缩、编码处理,以将处理后的画面发送至用户端设备进行解码显示。
可以理解的是,实际上,云应用实例向GPU发送的渲染请求中不仅包括渲染数据信息在显存中对应的存储地址,还可以包括其他渲染所需信息,比如画面中的图层信息,像素坐标信息等等。
由上文对存储记录的描述可知,在存储记录中,存储有渲染数据信息的索引特征值与该渲染数据信息在显存中的存储地址之间的对应关系,除此之外,可选地,还可以为该存储地址关联上引用计数值,用于记录该渲染数据信息被触发加载请求的次数,亦即需要使用该渲染数据信息进行画面渲染的次数。基于此,在上文中确定出第二显存存储地址并将该第二显存存储地址添加到目标存储记录中时,还可以初始化设置第二显存存储地址对应的引用计数值,如初始化为1。以及在上文中在目标存储记录中查询到第一显存存储地址时,还可以对与第一显存存储地址对应的引用计数值加一。
为便于理解上述实施例,下面以渲染数据类别包括着色器、纹理两类为例,结合图5示例型说明一种渲染数据加载过程。
在实际应用中,云应用实例已知当前需要渲染出的画面所需的渲染数据信息、所对应的类别以及相关参数信息。当发现仅涉及到纹理这种类别时,可以触发针对相应的纹理数据的纹理加载请求,如图5中所示,纹理加载请求中会携带有纹理数据的尺寸、格式这些参数信息。当发现仅涉及到着色器这种类别,或者涉及到着色器和纹理这两种类别时,可以分别触发针对相应的着色器的着色器加载请求以及针对相应的纹理数据的纹理加载请求,如图5中所示,着色器加载请求中会携带有着色器的类型这些参数信息。
之后,在纹理对应的全部存储记录表中,由于不同存储记录表对应的纹理参数信息不同,针对当前的纹理加载请求,基于其中携带的纹理数据的参数信息确定与之对应的目标存储记录表A。同理,在着色器对应的全部存储记录表中,由于不同存储记录表对应的着色器类型不同,针对当前的着色器加载请求,基于其中携带的着色器的类型确定与之对应的目标存储记录表B。
之后,基于纹理加载请求中包含的纹理数据计算其对应的索引特征值,在目标存储记录表A中查询是否存在该索引特征值以确定该纹理数据是否是重复加载的资源。同理,基于着色器加载请求中包含的着色器的程序代码计算其对应的索引特征值,在目标存储记录表B中查询是否存在该索引特征值以确定该着色器是否是重复加载的资源。
若是重复加载的资源,则将该重复加载的资源(即上述纹理数据/着色器)对应的引用计数值加一,将其在显存中对应的存储地址反馈给云应用实例。
若不是重复加载的资源,则将上述纹理数据/着色器发送至GPU使其分配显存存储地址以进行存储,将分配的显存存储地址以及相应的索引特征值添加到相应的目标存储记录表A或B中,设置对应的引用计数值为一。
上文介绍了诸如纹理数据、着色器这些画面渲染时所需要使用到的渲染数据(渲染资源)向GPU显存中加载的过程。相对地,实际应用中,也会存在需要释放GPU显存中已经加载的渲染数据的需求。
图6为本发明实施例提供的一种云渲染处理方法的流程图,如图6所示,该方法包括如下步骤:
601、接收云应用实例触发的渲染数据加载请求,渲染数据加载请求中包括渲染数据类别标识、渲染数据信息和渲染数据信息对应的参数信息。
602、根据渲染数据信息确定索引特征值,在渲染数据类别标识对应的存储记录中确定与所述参数信息对应的目标存储记录。
603、若在目标存储记录中查询到上述索引特征值,则将目标存储记录中与该索引特征值对应的第一显存存储地址发送至云应用实例以及对与第一显存存储地址对应的引用计数值加一,以使云应用实例向GPU发送包含第一显存存储地址的渲染请求,使得GPU基于第一显存存储地址中存储的渲染数据信息进行画面渲染处理。
604、将渲染出的画面发送至用户端设备进行显示。
605、接收云应用实例触发的渲染数据释放请求,渲染数据释放请求中包括所述渲染数据类别标识和第一显存存储地址。
606、若在所述渲染数据类别标识对应的存储记录中查询到第一显存存储地址,则对引用计数值减一,若减一后的引用计数值为零,则向GPU发送包含第一显存存储地址的释放指令,以使GPU删除第一显存存储地址中存储的渲染数据信息。
607、若在所述渲染数据类别标识对应的存储记录中未查询到第一显存存储地址,则向GPU发送包含第一显存存储地址的释放指令,以使GPU删除第一显存存储地址中存储的渲染数据信息。
实际应用中,云应用实例可以在一些情况下触发上述渲染数据释放请求。比如,在云应用实例退出,云应用实例进行画面场景的切换,或者GPU的显存剩余存储空间不足。
其中,针对画面场景的切换,举例来说,假设用户使用云游戏应用实例的过程中,用户成功地打通第一关,而进入第二关,此时,云游戏应用实例可以释放掉此前加载过的第一关相关游戏画面对应的渲染数据。
其中,针对GPU的显存剩余存储空间不足,云服务器可以在确定某GPU的显存剩余存储空间不足时,可以向使用该GPU的各云应用实例触发释放通知,以通知各云应用实例根据各自的渲染需求确定需要释放的渲染数据。比如上述云游戏应用实例基于该释放通知确定释放第一关相关游戏画面对应的渲染数据。
由前述实施例可知,云应用实例通过此前的加载过程,已经获知了自己每次请求加载的渲染数据信息在GPU的显存中对应的存储地址,因此,当该云应用实例确定触发针对某渲染数据信息的渲染数据释放请求时,可以在该渲染数据释放请求中携带相应的显存存储地址。
具体地,以上述第一显存存储地址为例,由于渲染数据释放请求中包括的是渲染数据类别标识和第一显存存储地址,因此可以首先获取与该渲染数据类别标识对应的全部存储记录,之后,查询这些存储记录中是否包含第一显存存储地址,若有,则对第一显存存储地址对应的引用计数值减一,若减一后的引用计数值为零,则向GPU发送包含第一显存存储地址的释放指令,以使GPU删除第一显存存储地址中存储的渲染数据信息。若减一后的引用计数值不为零,说明还有其他此前加载过该渲染数据信息的云应用实例并未请求释放该渲染数据信息,此时不做其他处理。
若在渲染数据类别标识对应的全部存储记录中未查询到第一显存存储地址,则直接向GPU发送包含第一显存存储地址的释放指令,以使GPU删除第一显存存储地址中存储的渲染数据信息。需要说明的是,虽然上述渲染数据释放请求中包含第一显存存储地址意味着相应的渲染数据信息此前已经加载到GPU的显存中了,而在加载到GPU的显存中后会在上述目标存储记录中添加该渲染数据信息的索引特征值与该第一显存存储地址的对应关系,正常来说,接收到上述渲染数据释放请求之后,应该在上述渲染数据类别标识对应的全部存储记录中查询得到第一显存存储地址,但是,由于一些异常情况,可能上述对应关系并未成功写入目标存储记录中从而导致存在查询不到的情形发生。
下面仍以着色器、纹理两类渲染数据纹理,结合图7示例型说明上述渲染数据释放过程。
如图7中所示,在一次渲染数据释放请求中,云应用实例可以请求释放纹理数据或着色器,释放请求中会携带纹理数据或着色器在GPU显存中对应的存储地址(显存存储地址)。之后,针对释放纹理数据的请求,在纹理对应的全部存储记录中查询该显存存储地址,若查询到,则对应的引用计数值减一,若已经减为零,则向使GPU释放显存存储地址即删除该存储地址中存储的纹理数据。针对释放着色器的请求,在着色器对应的全部存储记录中查询该显存存储地址,若查询到,则对应的引用计数值减一,若已经减为零,则向使GPU释放显存存储地址即删除该存储地址中存储的着色器的程序代码。
若并未在上述存储记录中查询到上述显存存储地址,则向使GPU释放显存存储地址即删除该存储地址中存储的纹理数据或着色器的程序代码。
以下将详细描述本发明的一个或多个实施例的云渲染处理装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图8为本发明实施例提供的一种云渲染处理装置的结构示意图,该云渲染处理装置位于云服务器,如图8所示,该装置包括:接收模块11、查询模块12和发送模块13。
接收模块11,用于接收云应用实例触发的渲染数据加载请求,所述渲染数据加载请求中包括渲染数据信息和所述渲染数据信息对应的参数信息。
查询模块12,用于根据所述渲染数据信息确定索引特征值,在存储记录中确定与所述参数信息对应的目标存储记录,查询所述目标存储记录中是否包含所述索引特征值。
发送模块13,用于若在所述目标存储记录中查询到所述索引特征值,则将所述目标存储记录中与所述索引特征值对应的第一显存存储地址发送至所述云应用实例,以使所述云应用实例向图形处理器发送包含所述第一显存存储地址的渲染请求,使得所述图形处理器基于所述第一显存存储地址中存储的所述渲染数据信息进行画面渲染处理;以及,将渲染出的画面发送至用户端设备进行显示。
可选地,所述渲染数据加载请求中包括渲染数据类别标识,查询模块12具体用于:在所述渲染数据类别标识对应的存储记录中确定与所述参数信息对应的目标存储记录。
可选地,所述查询模块12还用于:对与所述第一显存存储地址对应的引用计数值加一。
可选地,所述装置还包括:存储模块,用于若在所述目标存储记录中未查询到所述索引特征值,则将所述渲染数据信息发送至所述图形处理器,以使所述图形处理器分配第二显存存储地址以将所述渲染数据信息存入所述第二显存存储地址;在所述目标存储记录中写入所述索引特征值和所述第二显存存储地址的对应关系。从而,所述发送模块13还用于:将所述第二显存存储地址发送至所述云应用实例,以使所述云应用实例向所述图形处理器发送包含所述第二显存存储地址的渲染请求,使得所述图形处理器基于所述第二显存存储地址中存储的所述渲染数据信息进行画面渲染处理。
其中,可选地,所述存储模块还用于:初始化设置所述第二显存存储地址对应的引用计数值。
可选地,所述接收模块11还用于:接收所述云应用实例触发的渲染数据释放请求,所述渲染数据释放请求中包括所述渲染数据类别标识和所述第一显存存储地址。所述查询模块12还用于:在所述渲染数据类别标识对应的存储记录中查询是否存在所述第一显存存储地址,若在所述渲染数据类别标识对应的存储记录中查询到所述第一显存存储地址,则对所述引用计数值减一。所述发送模块13还用于:若减一后的所述引用计数值为零,则向所述图形处理器发送包含所述第一显存存储地址的释放指令,以使所述图形处理器删除所述第一显存存储地址中存储的所述渲染数据信息。
可选地,所述发送模块13还用于:若在所述渲染数据类别标识对应的存储记录中未查询到所述第一显存存储地址,则向所述图形处理器发送包含所述第一显存存储地址的释放指令,以使所述图形处理器删除所述第一显存存储地址中存储的所述渲染数据信息。
可选地,所述渲染数据类别标识包括如下任一种:着色器、纹理;对应地,所述渲染数据信息包括:着色器的程序代码、纹理数据;所述参数信息包括:着色器的类型、纹理数据的尺寸和格式。
可选地,所述装置还包括:构建模块,用于响应于多个用户对同一云应用的使用请求,创建多个云应用实例,所述多个云应用实例共用所述图形处理器。
图8所示装置可以执行前述实施例中的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图8所示云渲染处理装置的结构可实现为一云服务器。如图9所示,该电子设备可以包括:处理器21、存储器22、通信接口23。其中,存储器22上存储有可执行代码,当所述可执行代码被处理器21执行时,使处理器21至少可以实现如前述实施例中提供的云渲染处理方法。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被云服务器的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的云渲染处理方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种云渲染处理方法,其特征在于,应用于云服务器,所述方法包括:
接收云应用实例触发的渲染数据加载请求,所述渲染数据加载请求中包括渲染数据信息和所述渲染数据信息对应的参数信息;
根据所述渲染数据信息确定索引特征值;
在存储记录中确定与所述参数信息对应的目标存储记录;
若在所述目标存储记录中查询到所述索引特征值,则将所述目标存储记录中与所述索引特征值对应的第一显存存储地址发送至所述云应用实例,以使所述云应用实例向图形处理器发送包含所述第一显存存储地址的渲染请求,使得所述图形处理器基于所述第一显存存储地址中存储的所述渲染数据信息进行画面渲染处理;
将渲染出的画面发送至用户端设备进行显示。
2.根据权利要求1所述的方法,其特征在于,所述渲染数据加载请求中包括渲染数据类别标识;
所述在存储记录中确定与所述参数信息对应的目标存储记录,包括:
在所述渲染数据类别标识对应的存储记录中确定与所述参数信息对应的目标存储记录。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对与所述第一显存存储地址对应的引用计数值加一。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述目标存储记录中未查询到所述索引特征值,则将所述渲染数据信息发送至所述图形处理器,以使所述图形处理器分配第二显存存储地址以将所述渲染数据信息存入所述第二显存存储地址;
在所述目标存储记录中写入所述索引特征值和所述第二显存存储地址的对应关系;
将所述第二显存存储地址发送至所述云应用实例,以使所述云应用实例向所述图形处理器发送包含所述第二显存存储地址的渲染请求,使得所述图形处理器基于所述第二显存存储地址中存储的所述渲染数据信息进行画面渲染处理。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
初始化设置所述第二显存存储地址对应的引用计数值。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述云应用实例触发的渲染数据释放请求,所述渲染数据释放请求中包括所述渲染数据类别标识和所述第一显存存储地址;
若在所述渲染数据类别标识对应的存储记录中查询到所述第一显存存储地址,则对所述引用计数值减一。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若减一后的所述引用计数值为零,则向所述图形处理器发送包含所述第一显存存储地址的释放指令,以使所述图形处理器删除所述第一显存存储地址中存储的所述渲染数据信息。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若在所述渲染数据类别标识对应的存储记录中未查询到所述第一显存存储地址,则向所述图形处理器发送包含所述第一显存存储地址的释放指令,以使所述图形处理器删除所述第一显存存储地址中存储的所述渲染数据信息。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述渲染数据类别标识包括如下任一种:着色器、纹理;
所述渲染数据信息包括:着色器的程序代码、纹理数据;所述参数信息包括:着色器的类型、纹理数据的尺寸和格式。
10.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
响应于多个用户对同一云应用的使用请求,创建多个云应用实例,所述多个云应用实例共用所述图形处理器。
11.一种云服务器,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的云渲染处理方法。
12.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被云服务器的处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的云渲染处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211234861.7A CN115576689A (zh) | 2022-10-10 | 2022-10-10 | 云渲染处理方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211234861.7A CN115576689A (zh) | 2022-10-10 | 2022-10-10 | 云渲染处理方法、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576689A true CN115576689A (zh) | 2023-01-06 |
Family
ID=84585232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211234861.7A Pending CN115576689A (zh) | 2022-10-10 | 2022-10-10 | 云渲染处理方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576689A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118262029A (zh) * | 2024-05-30 | 2024-06-28 | 摩尔线程智能科技(北京)有限责任公司 | 渲染细分方法、电子设备、存储介质及计算机程序产品 |
-
2022
- 2022-10-10 CN CN202211234861.7A patent/CN115576689A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118262029A (zh) * | 2024-05-30 | 2024-06-28 | 摩尔线程智能科技(北京)有限责任公司 | 渲染细分方法、电子设备、存储介质及计算机程序产品 |
CN118262029B (zh) * | 2024-05-30 | 2024-08-13 | 摩尔线程智能科技(北京)有限责任公司 | 渲染细分方法、电子设备、存储介质及计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6384877B2 (ja) | ストリーミング・サーバのセッション・アイドル最適化 | |
CN113457160B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
EP3311565B1 (en) | Low latency application streaming using temporal frame transformation | |
CN110599396B (zh) | 信息处理方法及装置 | |
US8872835B2 (en) | Prevention of DoS attack by a rogue graphics application | |
CN111737019B (zh) | 一种显存资源的调度方法、装置及计算机存储介质 | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN113542757A (zh) | 云应用的图像传输方法、装置、服务器及存储介质 | |
CN113467958B (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN112825042A (zh) | 资源管理方法和装置、电子设备及存储介质 | |
US20240296151A1 (en) | Cloud server application management method, apparatus, device, computer-readable storage medium, and computer program product | |
WO2022242358A1 (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
WO2020238846A1 (zh) | 图像获取方法、装置、服务器及存储介质 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN115576689A (zh) | 云渲染处理方法、设备和存储介质 | |
CN113141511A (zh) | 一种图形渲染方法及设备 | |
CN114116231A (zh) | 一种数据加载方法、装置、计算机设备及存储介质 | |
US20170109113A1 (en) | Remote Image Projection Method, Sever And Client Device | |
JP7361399B2 (ja) | 画面キャプチャ方法、端末および記憶媒体 | |
US8203567B2 (en) | Graphics processing method and apparatus implementing window system | |
CN115018693A (zh) | 基于软件定义图形处理器的docker图像加速方法及系统 | |
CN113051032A (zh) | 应用画面处理方法、装置和系统 | |
CN111984278A (zh) | 动画图像的获取方法及装置 | |
CN108235144B (zh) | 播放内容获取方法、装置及计算设备 | |
CN115982060B (zh) | 一种内存回收方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |