CN111729293B - 一种数据处理方法、装置及存储介质 - Google Patents

一种数据处理方法、装置及存储介质 Download PDF

Info

Publication number
CN111729293B
CN111729293B CN202010883519.4A CN202010883519A CN111729293B CN 111729293 B CN111729293 B CN 111729293B CN 202010883519 A CN202010883519 A CN 202010883519A CN 111729293 B CN111729293 B CN 111729293B
Authority
CN
China
Prior art keywords
game
rendering
cloud
frame buffer
client
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.)
Active
Application number
CN202010883519.4A
Other languages
English (en)
Other versions
CN111729293A (zh
Inventor
任韬
华有为
许斌盛
郗英坤
李勇
杨坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010883519.4A priority Critical patent/CN111729293B/zh
Publication of CN111729293A publication Critical patent/CN111729293A/zh
Application granted granted Critical
Publication of CN111729293B publication Critical patent/CN111729293B/zh
Priority to PCT/CN2021/102941 priority patent/WO2022042004A1/zh
Priority to EP21859846.4A priority patent/EP4122568A4/en
Priority to US17/962,822 priority patent/US20230032554A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/203Image generating hardware
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • A63F2300/636Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开一种数据处理方法、装置及存储介质,其中,方法包括:获取游戏客户端发送的云游戏数据获取请求;在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;在获取到为游戏进程所分配的帧缓冲区时,通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,以对游戏进程对应的游戏数据进行容器内的渲染处理,得到渲染游戏数据;根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面。采用本发明,可以增强游戏兼容性,并降低渲染时延。

Description

一种数据处理方法、装置及存储介质
技术领域
本发明涉及计算机计算领域,具体涉及云技术领域,尤其涉及一种数据处理方法、装置及存储介质。
背景技术
在云游戏场景下,所有游戏都在服务器端运行,并可以在该服务器端将渲染完毕后的游戏画面返回给相应游戏玩家所对应的终端。然而,现有的云游戏的渲染需要将某个运行系统(比如,安卓系统)内部的图形渲染接口外发到外部渲染器件上进行渲染,进而降低了云游戏的渲染时延,以至于在大型云游戏的运行场景下,会降低游戏的帧率。
此外,通过将系统内部的图形渲染接口进行外发,会在该系统的外部进行图形渲染,这意味着在系统外部对待渲染的游戏数据进行渲染格式之前,需要预先对系统内部和系统外部之间所采用的不同渲染方式进行转换,所以,当在系统外部对待渲染的游戏数据(即格式转换后的游戏数据)进行渲染格式时,会存在误转换的现象,例如,当在系统外部进行游戏渲染时,可能只有40%的游戏可以正常渲染,以至于降低了游戏的兼容性。
发明内容
本发明实施例提供一种数据处理方法、装置及存储介质,可以增强游戏兼容性,并降低渲染时延。
本发明实施例一方面提供了一种数据处理方法,方法包括:
获取游戏客户端发送的云游戏数据获取请求;
在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;
在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;
基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面。
本发明实施例一方面提供了一种数据处理装置,装置包括:
请求获取模块,用于获取游戏客户端发送的云游戏数据获取请求;
游戏进程启动模块,用于在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;
渲染指令确定模块,用于在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;
渲染处理模块,用于基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
合成画面生成模块,用于根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面。
其中,装置还包括:
远程鉴权模块,用于在获取到游戏客户端发送的远程连接请求时,基于远程连接请求对游戏客户端对应的游戏用户进行远程鉴权,得到远程鉴权结果;远程连接请求为游戏用户通过游戏账号信息访问游戏客户端时所得到的;远程连接请求中携带游戏客户端所在的客户端环境系统;
连接建立模块,用于若远程鉴权结果指示游戏用户具有远程访问游戏客户端的权限,则与游戏客户端建立数据连接关系;
客户端启动模块,用于在基于数据连接关系为游戏客户端配置好云虚拟容器时,通过云虚拟容器中的云游戏启动指令,启动并运行游戏客户端。
其中,游戏客户端对应的游戏显示页面中包括与游戏用户相关联的虚拟对象,游戏显示页面中的业务控件用于在游戏客户端对应的云游戏环境系统中操控虚拟对象的游戏属性行为;
游戏进程启动模块包括:
容器确定单元,用于基于游戏客户端所在的客户端环境系统,确定与客户端环境系统相匹配的云游戏环境系统对应的云虚拟容器;
启动指令确定单元,用于从云游戏数据获取请求中提取业务控件所指示的虚拟对象的属性行为事件,确定与属性行为事件相关联的进程启动指令;
进程启动单元,用于将进程启动指令输入云虚拟容器,在云虚拟容器中控制虚拟对象执行游戏属性行为,且启动与游戏属性行为相关联的K个关联进程;K为正整数;
游戏进程确定单元,用于将K个关联进程作为与业务控件相关联的游戏进程。
其中,云虚拟容器中包含已重构的系统图形栈;系统图形栈用于指示在云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;系统图形栈包括:游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和物理渲染器件;
装置还包括:
申请指令发送模块,用于通过游戏进程向帧缓冲组件发送帧缓冲区申请指令;帧缓冲区申请指令用于指示帧缓冲组件向缓冲分配器发送缓冲分配指令;
渲染驱动调用模块,用于在缓冲分配器基于缓冲分配指令为游戏进程分配帧缓冲区时,通过与缓冲分配器具有关联关系的图形渲染节点,调用图形渲染驱动,以在与图形渲染驱动具有层级关系的物理渲染器件中分配帧缓冲区对应的显存;
地址返回模块,用于将显示对应的显存地址返回给游戏进程;显存地址用于指向游戏进程对应的帧缓冲区。
其中,系统图形栈包括:与游戏进程具有关联关系的图形渲染库;
渲染指令确定模块包括:
关联关系获取单元,用于在获取到为游戏进程所分配的帧缓冲区时,获取游戏进程与图形渲染库之间的关联关系;
桥接通道确定单元,用于基于关联关系在云虚拟容器中确定游戏进程与图形渲染库之间的桥接通道;
渲染指令获取单元,用于通过桥接通道调用图形渲染库,从图形渲染库中获取与客户端环境系统具有远程映射关系的图形渲染指令。
其中,图形渲染库中包含具有指令封装功能的封装组件;
渲染处理模块包括:
标准化处理单元,用于将图形渲染指令通过封装组件进行标准化处理,将标准化处理后的图形渲染指令通过图形渲染节点传输给图形渲染驱动;
物理器件访问单元,用于基于图形渲染驱动与图形渲染器件之间的层级关系,访问与帧缓冲区相关联的物理渲染器件;
渲染处理单元,用于通过物理渲染器件的图形渲染功能对游戏进程对应的游戏数据进行容器内的渲染处理,将渲染处理后的游戏数据作为游戏进程对应的渲染游戏数据。
其中,缓冲分配器具有管理帧缓冲区的整个生命周期;
装置还包括:
缓冲区销毁模块,用于在检测到游戏进程的进程状态为结束状态时,通过缓冲分配器销毁游戏进程所对应的帧缓冲区。
其中,云游戏数据获取请求中携带游戏客户端对应的游戏用户在游戏显示界面中所触发的业务控件;游戏进程包括与业务控件相关联的K个关联进程;物理渲染器件中包含与K个关联进程分别对应的K个显存;渲染游戏数据中包含对K个关联进程的游戏数据进行渲染处理后的K个子渲染数据;一个显存用于存储一个关联进程对应的一个子渲染数据;
合成画面生成模块包括:
数据界面输出单元,用于将K个显存中所存储的子渲染数据输出至对应显存的显存地址所映射的帧缓冲区,在每个帧缓冲区中输出K个子渲染数据对应的数据界面;
合成处理单元,用于通过云虚拟容器中的图形合成器,对K个子渲染数据对应的数据界面进行合成处理,基于合成处理后的K个子渲染数据的数据界面,生成用于在游戏客户端进行显示的游戏合成画面。
其中,图形合成器用于提供针对游戏客户端的窗口管理服务;
合成画面生成模块还包括:
模拟输出单元,用于基于窗口管理服务确定游戏客户端对应的游戏终端的屏幕参数信息,基于屏幕参数信息在云虚拟容器所对应的内核环境中模拟输出游戏合成画面。
其中,装置还包括:
数据确定模块,用于将游戏合成画面中的渲染游戏数据作为待编码的视频数据,将游戏合成画面对应的音频数据作为待编码的音频数据;
视频流确定模块,用于基于云虚拟容器中的音视频编码规则,对待编码的视频数据进行编码处理,得到编码视频流;
音频流确定模块,用于基于云虚拟容器中的音视频编码规则,对待编码的音频数据进行编码处理,得到编码音频流;
编码流下发模块,用于将编码视频流和编码音频流作为业务控件所对应的触发事件的编码音视频流,将编码音视频流下发给游戏客户端,以使游戏客户端对编码音视频流进行解码处理。
本发明实施例一方面提供了一种数据处理方法,方法包括:
响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;云游戏数据获取请求用于指示云服务器启动游戏进程,且在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库中的图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
接收云服务器根据渲染游戏数据所生成的游戏合成画面,在游戏客户端中显示游戏合成画面。
本发明实施例一方面提供了一种数据处理装置,装置包括:
操作响应模块,用于响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;云游戏数据获取请求用于指示云服务器启动游戏进程,且在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库中的图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
合成画面接收模块,用于接收云服务器根据渲染游戏数据所生成的游戏合成画面,在游戏客户端中显示游戏合成画面。
本发明实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储程序代码,处理器用于调用程序代码,以执行本发明实施例一方面中的方法。
本发明实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被处理器执行时,执行如本发明实施例一方面中的方法。
在本发明实施例中,计算机设备在获取到游戏客户端发送的云游戏数据获取请求时,可以在游戏客户端所在的客户端环境系统(例如,游戏客户端所在的安卓系统)对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;可以理解的是,这里的云游戏数据获取请求是由该游戏客户端响应游戏用户的触发操作所生成的。这意味着在云游戏场景下,游戏用户(也可以称之为玩家)可以在该游戏客户端所运行的游戏终端中针对当前游戏显示界面中的业务控件(例如,用于控制该游戏显示界面中的虚拟对象进行移动的操作控件)执行触发操作,以使得该游戏终端中所运行的游戏客户端可以向该计算机设备发起云游戏数据获取请求,此时,该计算机设备可以在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令,以基于该图形渲染指令访问到与帧缓冲区相关联的物理渲染器件,进而可以通过该物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,从而可以得到当前所启动的游戏进程对应的渲染游戏数据。由此可见,在本申请实施例中,该计算机设备通过重构整个云虚拟容器中的系统图形栈(比如,在游戏进程与图形渲染库之间建立了桥接通道的情况下),使得整个游戏进程对应的游戏数据可以在该云虚拟容器中进行内部渲染,即此时该计算机设备可以在该云虚拟容器中直接访问到物理渲染器(例如,物理GPU),进而可以在游戏数据的渲染场景下降低游戏的渲染时延。此外,当该计算机设备在云虚拟容器中进行内部渲染时,由于无需在不同渲染方式之间的转换,从而可以增强游戏的兼容性,所以,当该计算机设备根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面时,可以在该云虚拟容器中以较高的帧率运行该云游戏,以增强系统的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种在云游戏场景下进行数据交互的场景示意图;
图3是本发明实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种云服务器的场景示意图;
图5是本申请实施例提供的一种发送云游戏数据获取请求的场景示意图;
图6a是本申请实施例提供的一种在云服务器上运行多个安卓运行环境的场景示意图;
图6b是本申请实施例提供的一种在容器内调用图形渲染库的场景示意图;
图7是本申请实施例提供的一种在云虚拟容器中为游戏进程分配的帧缓冲区的场景示意图;
图8是本发明实施例提供的一种数据处理方法的流程示意图;
图9是本申请实施例提供的一种获取多个触摸事件流的场景示意图;
图10是本申请实施例提供的一种在云端模拟输出渲染显示界面的场景示意图;
图11是本发明实施例提供的一种数据处理装置的结构示意图;
图12是本发明实施例提供的一种计算机设备的结构示意图;
图13是本申请实施例提供的一种数据处理装置的结构示意图;
图14是本发明实施例提供的一种计算机设备的结构示意图;
图15是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例涉及云技术(cloud technology),云计算(cloud computing)和云游戏(cloud gaming)。其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
云游戏又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端(也可以称之为游戏用户对应的游戏终端),而是在云服务器中运行,并由云服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。可以理解的是,比如,在本申请实施例中,该云服务器所采用的渲染技术属于一种容器内的渲染技术,这里的容器是指在云服务器中所虚拟得到的云虚拟容器,即本申请实施例可以将在云虚拟容器中所渲染得到的视频音频流通过网络传输给玩家游戏终端。可以理解的是,这里的玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家(即游戏用户)输入指令并发送给云服务器的能力即可。
可以理解的是,在云游戏场景下,玩家可以通过玩家游戏终端中所运行的游戏客户端与云服务器之间进行数据交互,这样,当云服务器在云端的云虚拟容器中完成对该游戏客户端中的游戏数据的渲染操作之后,可以进一步对渲染所得到的游戏画面的音视频数据进行编码操作,以将编码后的数据流(比如,音频流和视频流)下发给玩家游戏终端进行解码操作。
进一步的,请参见图1,图1是本发明实施例提供的一种网络架构的结构示意图。如图1所示,网络架构可以应用于游戏场景下的数据处理系统。该数据处理系统具体可以包括图1所示的云服务器2000和用户终端集群。其中,用户终端集群具体可以包括一个或者多个用户终端,这里将不对用户终端集群中的用户终端的数量进行限制。如图1所示,多个用户终端具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n;如图1所示,用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n可以分别与云服务器2000进行网络连接,以便于每个用户终端可以通过该网络连接与云服务器2000之间进行数据交互。
其中,如图1所示的云服务器2000可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
应当理解,在游戏场景下,如图1所示的用户终端集群中的每个用户终端均可以安装有游戏客户端,当该游戏客户端运行于各用户终端中时,可以分别与上述图1所示的云服务器2000之间进行数据交互。其中,可以理解的是,这里的游戏客户端可以包含竞速类游戏客户端、跑酷类游戏客户端、射击类游戏客户端以及棋牌类游戏客户端等。其中,为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为游戏终端,这里的游戏终端可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等具有多媒体数据加载功能的智能终端。例如,本申请实施例可以将图1所示的用户终端3000a作为游戏终端,这里的游戏终端具体可以包括但不限于手游终端。
可以理解的是,在数据处理系统中,可以将该游戏客户端分别部署在游戏终端(例如,上述图1所对应实施例中的用户终端3000a)和后台服务器(例如,上述图1所对应实施例中的云服务器2000)。这样,本申请实施例提供的数据处理方法可以涉及上述云技术领域。
其中,可以理解的是,在本申请实施例中,该游戏终端可以用于作为该游戏客户端的前端,且该云服务器2000可以用于作为该游戏客户端的后台(即前述后台服务器),这样,当云服务器2000获取到该游戏终端中的游戏用户发送的云游戏数据获取请求之后,可以快速定位到该游戏客户端所在的客户端环境系统所对应的云虚拟容器,进而可以在该云虚拟容器(即上述容器)中,根据该云游戏数据获取请求启动游戏进程。可以理解的是,这里的游戏进程可以包含用于指示在云虚拟容器中启动游戏客户端所需要的关联进程,这样,当游戏用户在游戏终端中触发游戏客户端的游戏图标时,可以在该云虚拟容器中对与该游戏图标相关联的关联进程,进而可以在该云虚拟容器中为该启动进程分配帧缓冲区,以利用容器内的渲染技术实现内部渲染,以渲染得到用于显示在游戏终端中的游戏显示界面(例如,游戏客户端的游戏首页等)。该游戏显示界面中可以包含具有相应业务功能的业务控件,比如,这里的业务控件主要是指能够虚拟对象的游戏属性行为的控件等。
可选的,这里的游戏进程还可以包含与这些业务控件相关联的一个或者多个关联进程。比如,当游戏用户在该游戏客户端的客户端环境系统下进行数据交互时,可以基于该游戏用户与该游戏客户端之间的触发事件,向该云服务器2000发送云游戏数据获取请求,这样,当该云服务器2000接收到该云游戏数据获取请求时,可以在该游戏客户端的客户端环境系统所对应的云虚拟容器中,启动与业务控件相关联的一个或者多个关联进程,进而可以将在该云虚拟容器中所启动的一个或者多个关联进程统称为与该业务控件相关联的游戏进程。可以理解的是,此时,该云服务器2000可以在获取到为游戏进程所分配的帧缓冲区时,在该云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,直接访问到该图形渲染库,这里的图形渲染库可以为Mesa图形库,该Mesa图形库可以理解为一种用户态图形驱动,它可以用于提供游戏(比如,游戏进程)与云游戏环境系统(比如,在云服务器中所虚拟出的安卓系统)之间的渲染服务。基于此,当该云服务器在该云虚拟容器中访问到该图形渲染库(例如,Mesa图形库)时,可以直接在该云虚拟容器中进行图形渲染,以得到游戏进程对应的渲染游戏数据。
为便于理解,进一步的,请参见图2,图2是本申请实施例提供的一种在云游戏场景下进行数据交互的场景示意图。如图2的云服务器20a可以为上述图1所对应实施例中的云服务器2000,如图2所示的游戏终端可以为上述图1所对应实施例中的任意一个用户终端,为便于理解,本申请实施例以上述图1所示的用户终端3000a作为该游戏终端为例,以阐述图2所示的云服务器20a与该游戏终端10a之间进行数据交互的具体过程。
可以理解的是,如图2所示的游戏终端10a中可以运行有上述游戏客户端(例如,云游戏X的客户端),该云游戏X对应的游戏显示页面中可以显示图2所示的虚拟对象。可以理解的是,该游戏显示页面中还可以包含用于向图2所示的云服务器20a请求控制该虚拟对象的游戏属性行为的业务控件(比如,图2所示的业务控件10b)。如图2所示,当该游戏用户A针对该业务控件10b执行触发操作时,该游戏终端10a可以响应针对该业务控件10b的触发操作,向图2所示的云服务器20a发送图2所示的云游戏数据获取请求1,可以理解的是,该云游戏数据获取请求可以用于指示该云服务器20a在图2所示的云虚拟容器30a中进行渲染处理,以得到图2所示的渲染游戏数据。
其中,可以理解的是,该云游戏数据获取请求1可以用于指示该云服务器20a启动与该业务控件10b相关联的一个或者多个关联进程。本申请实施例可以将该云服务器20a所启动的与该业务控件10a相关联的一个或者多个关联进程统称为与该业务控件10b相关联的游戏进程。这样,该云服务器20a可以在图2所示的云虚拟容器30a中为每个关联进程均分配一个帧缓存区,可以理解的是,这里的每个帧缓存区均分别与该云服务器20a中对应物理渲染器件中的显存之间存在地址映射关系。比如,在某个云虚拟容器中,一个物理渲染器件中所分配的某个显存的地址可以用于指向在该云虚拟容器中所请求到的对应的帧缓冲区。
基于此,如图2所示,该云服务器20a可以在该云虚拟容器30a中为与该业务控件10b相关联的K个关联进程申请K个帧缓冲区,这里的每个帧缓存区均可以对应一个显存的显存地址。这里的K可以为正整数。所以,当该云服务器20a在该云虚拟容器30a中利用图2所示的图形渲染库直接访问到该云虚拟容器30a中的图形渲染节点时,可以在该云虚拟容器30a进行渲染处理,以得到图2所示的渲染游戏数据。如图2所示,这里的渲染游戏数据具体可以包含在该云虚拟容器30a中对每个关联进程的游戏数据进行渲染处理后所得到的子渲染数据,所以,当该云服务器20a在该云虚拟容器30a中对K个关联进程的游戏数据进行渲染处理之后,可以得到K个子渲染数据,这里的K个子渲染数据具体可以包括图2所示的子渲染数据40a、…、子渲染数据40b。可以理解的是,这里的每个字渲染数据均可以存储在该云服务器的相应显存的显存地址中。进一步的,如图2所示,该云服务器20a可以基于图2所示的渲染游戏数据(即K个子渲染数据),生成图2所示的游戏合成画面,以便于后续可以将该游戏合成画面进行编码处理之后,返回给图2所示的游戏终端10a。
其中,如图2所示,该云服务器20a中可以运行多个云虚拟容器,每个云虚拟容器均为一个容器实例。其中,可以理解的是,每个容器实例中均可以运行与相应用户终端(例如,图2所示的游戏终端10a)中的客户端环境系统(例如,安卓系统)相匹配的远程移动游戏运行环境,比如,本申请实施例可以将在该云服务器20a中为每个用户终端所虚拟出的远程移动游戏运行环境统称为云游戏环境系统,例如,这里的云游戏环境系统可以为在该云服务器20a中为每个用户终端所虚拟出的远程的安卓系统,这样,任意一个云虚拟容器均可以用于为对应用户终端提供基础的安卓运行环境。
其中,可以理解的是,如图2所示的多个云虚拟容器具体可以为图2所示的云虚拟容器30a、云虚拟容器30b、…、云虚拟容器30n。其中,云虚拟容器30a可以为该云服务器20a预先为图2所示的游戏终端10a(例如,上述图1所对应实施例中的用户终端3000a)所配置的容器实例。同理,可以理解的是,云虚拟容器30b可以为该云服务器20a预先为其他游戏终端(例如,上述图1所对应实施例中的用户终端3000a)所配置的容器实例,以此类型,云虚拟容器30n可以为该云服务器预先为其他游戏终端(例如,上述图1所对应实施例中的用户终端3000n)所配置的容器实例。应当理解,本申请实施例中可以为通过上述游戏客户端(比如,云游戏X的客户端)接入该云服务器20a的每个用户终端配置一个云虚拟容器,这样,在这些用户终端与该云服务器20a之间进行数据交互时,可以在相应云虚拟容器中进行渲染处理。其中,云服务器20a在其他云虚拟容器(例如,图2所示的云虚拟容器30b、…、云虚拟容器30n)中进行渲染处理,得到游戏渲染数据的具体实现方式,可以一并参见在图2所示的云虚拟容器中进行渲染数据,得到游戏渲染数据的具体实现方式的描述,这里将不再一一进行赘述。
可以理解的是,在本申请实施例中该云服务器20a可以在确定出与该游戏终端10a的客户端环境系统相匹配的云虚拟容器(例如,图2所示的云虚拟容器30a)时,直接在该云虚拟容器30a中通过图形渲染数据库30b访问到上述图像渲染节点,以直接在该云虚拟容器30a中实现对相应游戏进程的内部渲染,即在对该游戏客户端中的相应游戏进程的游戏数据进行渲染的过程中,可以在该云虚拟容器30a中通过重构的系统图形栈,改变现有的图形渲染方式,以在该云虚拟容器30a中直接通过内部渲染技术实现渲染处理,从而可以有效地降低或者缩减渲染时延。另外,由于本申请无需对不同的渲染方式进行转换,进而可以在该云虚拟容器30a中增强游戏的兼容性。
其中,云服务器20a获取云虚拟容器、通过物理渲染器件进行渲染处理、以及生成游戏合成画面的具体过程可以参见如下图3至图10所对应的实施例。
进一步地,请参见图3,图3是本发明实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可以由计算机设备执行,该计算机设备可以为运行有游戏终端,该游戏终端可以为上述图2所对应实施例中的游戏终端10a;可选的,该计算机设备还可以为该游戏客户端对应的后台服务器(在云游戏场景下,这里的后台服务器为云服务器),该云服务器可以为上述图2所对应实施例中的云服务器20a。换言之,本申请实施例所涉及的方法可以由游戏用户所对应的游戏终端执行,也可以由云服务器执行,还可以由游戏终端和云服务器共同执行。为便于理解,本实施例以该方法由云服务器(比如,上述图2所对应实施例中的云服务器20a)执行为例进行说明,以阐述在云服务器中获取游戏进程对应的渲染游戏数据的具体过程。其中,该方法至少可以包括以下步骤S101-步骤S105:方法至少包括:
步骤S101,获取游戏客户端发送的云游戏数据获取请求;
具体的,当云服务器和运行有该游戏客户端的游戏终端之间建立数据连接关系时,该云服务器可以用于接收该游戏终端中所运行的游戏客户端所发送的云游戏数据获取请求。
为便于理解,进一步的,请参见图4,图4是本申请实施例提供的一种云服务器的场景示意图。如图4所示,该云服务器中可以运行有N个云虚拟容器,这里的N可以为正整数,比如,如图4所示,N个云虚拟容器具体可以为图4所示的容器1、容器2、容器3、…、容器N。如图4所示的终端A1、终端A2、终端A3、…、终端A4均可以与图4所示的云服务器之间建立数据连接关系。其中,终端A1可以为上述图1所对应实施例中的某个用户终端。例如,上述用户终端3000a。其中,终端A2可以为与该终端A1相关联的web终端。例如,某个游戏用户(例如,游戏用户A)可以通过同一账号信息访问图4所示的终端A1和终端A2,这样,该终端A1和终端A2后续均可以同步接收到该云服务器针对该游戏用户A所下发的同一音视频编码流。可以理解的是,这里将不对与该终端A1具有关联关系的其他终端的数量进行限定。
其中,如图4所示,当游戏用户在该终端A1中通过游戏账户信息(例如,游戏账户信息B1)启动游戏客户端(例如,云游戏A的客户端)时,该终端A1可以与该云服务器之间建立数据连接关系,以便于后续可以通过该建立的数据连接关系与云服务器进行数据交互。比如,如图4所示,当该游戏用户A在单位时长内针对该云游戏A的客户端中的某个业务控件执行触发操作时,该终端A1可以将在单位时长内所获取到的一个或者多个连续的触发操作统称为触摸事件流,比如,该触摸事件流可以为图4所示的触摸事件流1。如图4所示,此时,该终端A1可以将针对该业务控件的触摸事件流1添加到云游戏数据获取请求中,以将添加有该触摸事件流1的云游戏数据获取请求发送给云服务器,以使该云服务器可以通过图4所示的处理器60a在图4所示的容器1中执行相应的业务逻辑,进而可以在执行业务逻辑之后,在该容器1中通过图4所示的图形渲染器60b获取针对该容器1的容器内渲染技术,以利用该容器内渲染技术在该容器1中进行渲染处理,从而可以进一步对渲染处理后所得到的渲染游戏数据进行编码处理,以得到与该触摸事件流1相关联的音视频编码流,这里的音视频编码流可以为图4所示的音视频编码流1’。如图4所示,由于该游戏用户A还通过同一游戏账户信息(即前述游戏账户信息B1)访问图4所示的终端A2,所以,当该云服务器在该容器1中得到图4所示的音视频编码流1’时,可以将该音视频编码流1’同步下发给与该游戏用户A相关联的多个终端,例如,如4所示的终端A1和终端A2。
其中,可选的,如图4所示,终端A3可以为PC终端,比如,该PC终端可以为上述图1所对应实施例中的用户终端3000n,如图4所示,该云服务器可以为该终端A3(例如,游戏用户B所使用的终端)配置图4所示的容器3,以在该容器3中得到与该游戏用户B的触摸事件流(例如,触发事件流2,未在图上示出)相关联的音视频编码流2’。同理,如图4所示,终端A4可以为其他终端(例如,平板终端),比如,该平板终端可以为上述图1所对应实施例中的用户终端3000b,如图4所示,该云服务器可以为该终端A4(例如,游戏用户C所使用的终端)配置图4所示的容器N,以在该容器N中得到与该游戏用户C的触摸事件流(例如,触发事件流3,未在图上示出)相关联的音视频编码流3’。
其中,可以理解的是,该游戏用户A可以为上述图2所对应实施例中的游戏用户,此时,这里的云游戏数据获取请求可以为上述图2所对应实施例中的游戏终端10a所发送的云游戏数据获取请求1。为便于理解,本申请实施例仍以该游戏客户端为上述游戏X对应的客户端(例如,客户端1)为例,此时,该运行数据获取请求可以是由该游戏客户端(即游戏X对应的客户端1)响应游戏用户(例如,上述图2所对应实施例中的游戏用户A)针对游戏显示页面中的业务控件执行触发操作时所生成的。
为便于理解,进一步的,请参见图5,图5是本申请实施例提供的一种发送云游戏数据获取请求的场景示意图。如图5所示,当游戏用户A在图5所示的游戏终端中启动上述客户端1时,可以得到图5所示的显示界面100a,该显示界面100a可以为该游戏客户端中的设置界面。其中,可以理解的是,本申请实施例可以将显示在该游戏客户端(即游戏X对应的客户端1)中的显示界面统称为游戏显示页面。比如,如图5所示,该显示界面100a中可以包括图5所示的业务控件C1,该业务控件C1可以为设置控件,比如,该设置控件可以用于指示图5所示的服务器返回图5所示的虚拟显示界面100b,即该虚拟显示界面100b可以用于指示该游戏用户5对图5所示的虚拟对象所属的游戏属性(例如,部落名称)进行更改。
比如,具体的,如图5所示,游戏用户A可以在T1时刻针对该游戏显示界面(即图5所示的显示界面100a)中的业务控件C1执行触发操作,此时,该游戏终端可以响应针对该T1时刻的触发操作,将针对该业务控件C1执行的触发操作(例如,点击操作)统称为触摸事件流,并可以进一步生成携带该触摸事件流的云游戏数据获取请求。可以理解的是,如图5所示,该游戏客户端可以向与该游戏终端建立关联关系的云服务器(即图5所示的云服务器)发送前述云游戏数据获取请求,以使该云服务器可以针对该输入时间为T1时刻的触摸事件流进行响应。比如,如图5所示,该云服务器可以进一步执行下述步骤S102,即该云服务器可以基于该T1时刻的触摸事件流远程预测该游戏客户端在T1时刻的下一时刻(即T2时刻)的业务逻辑(这里预测到的业务逻辑主要用于在相应的云虚拟容器中修改该虚拟对象当前所属的游戏属性(即修改虚拟对象的当前所属的部落名称)的游戏属性行为)。
可选的,当游戏显示页面(例如,图5所示的显示界面100a)中包括与游戏用户相关联的虚拟对象,且该虚拟对象所在的游戏显示界面中包含用于在云服务器中控制该虚拟对象的游戏行为(例如,用于控制该虚拟对象在该游戏客户端的游戏地图中向左或者向右移动的游戏属性行为)的业务控件时,游戏用户通过触发这类业务控件之后,该云服务器可以进一步响应针对这类业务控件的业务逻辑,以在游戏客户端对应的云游戏环境系统中操控虚拟对象的游戏属性行为。
步骤S102,在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;
具体的,云服务器可以基于当前游戏客户端所在的客户端环境系统(例如,安卓系统),确定与客户端环境系统相匹配的云游戏环境系统(例如,虚拟化出的远程安卓系统)对应的云虚拟容器;进一步的,云服务器可以从云游戏数据获取请求中提取业务控件所指示的虚拟对象的属性行为事件,并可以确定与属性行为事件相关联的进程启动指令;进一步的,云服务器可以将进程启动指令输入云虚拟容器,在云虚拟容器中控制虚拟对象执行游戏属性行为,且启动与游戏属性行为相关联的K个关联进程;K为正整数;进一步的,云服务器可以将K个关联进程中的每个关联进程统称为与业务控件相关联的游戏进程。
其中,这里的属性行为事件可以包含上述用于在云端更改虚拟对象的游戏属性的触摸事件流,以及上述用于在云端控制虚拟对象中的游戏行为的另一触摸事件流。可以理解的是,在该游戏客户端为竞技类的游戏客户端时,这里的游戏属性可以包含但不限于通过组团的方式参与竞技的团队的名称。比如,以该游戏客户端为大型云游戏部落冲突为例,游戏用户(例如,上述图4所示的游戏用户A)通过在上述显示界面100a(即该设置控件C1所在的设置界面)上触发上述业务控件C1(即设置控件)之后,可以进一步使得该云服务器能够在云端提取到该业务控件C1所指示的用于更改前述虚拟对象的部落名称的属性行为事件(例如,上述触摸事件流1),进而可以确定与该属性行为事件相关联的进程启动指令。
可选的,该游戏显示界面中还可以包含用于在云端控制该虚拟对象的游戏行为的业务控件,例如,上述图2所示的业务控件10b,此时,该业务控件10b可以为用于指示云服务器在云端控制该游戏显示界面中虚拟对象向右移动的控件。所以,当上述游戏用户A针对该触发上述业务控件10b(即向右移动控件)之后,可以进一步使得该云服务器能够在云端提取到该业务控件10b所指示的用于控制前述虚拟对象的游戏行为的属性行为事件(例如,新的触摸事件流1),进而可以确定与该属性行为事件(例如,新的触摸事件流1)相关联的另一进程启动指令。
进一步的,可以理解的是,云服务器在获取到进程启动指令之后,可以进一步将进程启动指令输入该游戏客户端的客户端环境系统所对应的云虚拟容器,例如,上述图5所示的容器1,进而可以在云虚拟容器(例如,容器1)中控制虚拟对象执行游戏属性行为所对应的业务逻辑,进而可以在执行完业务逻辑时启动与游戏属性行为相关联的一个或者多个关联进程,可以理解的是,本申请实施例可以将在该云虚拟容器(例如,容器1)中所启动的一个或者多个关联进程统称为与上述业务控件相关联的游戏进程,进而可以进一步执行下述步骤S103。
其中,可以理解的是,通过在同一云服务器中运行不同的云虚拟容器,可以在云端的大型云游戏场景下直接以高帧率(例如,30帧每秒)运行,这样,当在单位时间内有大量用户终端(也可以称之为大量游戏终端)并发接入该云服务器时,可以为接入该云服务器的每个用户终端配置不同的云虚拟容器,以便于后续可以在预先配置的不同的云虚拟容器中进行容器内的渲染处理,能够解决现有技术中在云虚拟容器外采用单一的渲染进程进行渲染所造成的稳定性较差的问题,这意味着通过在不同云虚拟容器中进行内部的容器渲染处理,可以有效地提升高帧率渲染下的整个操作系统(例如,上述安卓系统)的稳定性。
为便于理解,进一步的,请参见图6a,图6a是本申请实施例提供的一种在云服务器上运行多个安卓运行环境的场景示意图。如图6a所示的云服务器的操作系统可以为开源的OS操作系统,例如,Linux系统。如图6a所示,在云游戏场景下,该云服务器可以以容器的方式运行虚拟化出的多个云游戏环境系统,即一个容器中可以运行一个云游戏环境系统,这里的云游戏环境系统可以为针对上述图4所示的相应终端中的客户端环境系统所虚拟化出的远程游戏运行环境。此外,可以理解的是,在图6a所示云服务器中,每个集装箱即为一个云虚拟容器,这里的集装箱1可以为上述图4所对应实施例中的容器1,同理,这里的集装箱2可以为上述图4所对应实施例中的容器2,以此类型,这里的集装箱N可以为上述图4所对应实施例中的容器N。基于此,可以理解的是,在图6a所示的多个容器(即多个集装箱,例如,彼此相互独立的上述容器1、容器2、容器3、…、容器N)之间可以共享同一物理服务器上的资源,比如,会共享同一份系统内核,例如,Linux内核。
其中,可以理解的是,如图6a的系统内核(Kernel)是图6a所示的操作系统最基本的部分,通过该系统内核可以用来管理软件发出的数据I/O要求的计算机程序,并将这些要求转译为数据处理的指令并交由该云服务器的中央处理器(CPU,例如,上述图4所示的处理器60a)及该云服务器中其他电子组件进行处理。
其中,可以理解的是,这里的系统内核通常指的是一个用于提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。在图6a所示的操作系统中,该系统内核主要负责管理云服务器中的系统的进程、内存、设备驱动程序、文件和网络系统等,并决定着系统的性能和稳定性。通过该系统内核可以为图6a所示的云服务器中的应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
其中,进程管理是指系统内核可以用于负责创建和销毁进程, 并处理它们与外部世界的联系(输入和输出),可以理解的是,不同进程间通讯(通过信号,管道,或者进程间通讯原语)也由该系统内核处理的。
其中,内存管理是指本申请实施例可以将该云服务器中的内存统称为一种可用资源,该系统内核能够为在该云服务器中的所有进程中的每一个进程,在有限的可用资源上建立了一个虚拟地址空间。比如,在该云游戏场景的渲染业务下,可以为在相应容器中的游戏进程所配置物理渲染器件中,申请一个显存,一个显存可以对应一个显存地址,这里的显存地址可以用于指向帧缓冲组件中一个帧缓冲区,这样,该云服务器可以在获取到相应游戏进程的帧缓存区时,快速执行下述步骤S103。
其中,文件管理是指Linux系统在很大程度上都基于文件系统的概念,此时,该系统内核可以在非结构化的硬件之上建立了一个结构化的文件系统,即图6a所示的相应容器中的系统库,系统库中的文件可以非常多地在整个系统中应用。另外,Linux 支持多个文件系统类型,就是说,物理介质上不同的数据组织方式之间,可以在相应云虚拟容器中被格式化成标准Linux的文件系统,比如,普遍使用的FAT文件系统等。
其中,可以理解的是,如图1的多个集装箱均属于同一份安卓镜像(例如,上述应用客户端的安装包)在相应游戏客户端中运行时的容器,应当理解,在如图6a所示的系统中,底层安卓的特有驱动(例如,匿名共享内容驱动)和Binder进程通信分别通过命名空间(即namespace)开进行隔离。比如,如图6a所示的匿名共享内存1、匿名共享内存2、…、匿名共享内存N分别通过命名空间(即namespace)开进行隔离。同理,如图6a所示的通信进程1、通信进程2、…、通信进程N也分别通过命名空间(即namespace)开进行隔离。
其中,为便于理解,进一步的,请参见图6b,图6b是本申请实施例提供的一种在容器内调用图形渲染库的场景示意图。如图6b所示的容器可以为上述图6a所示的云服务器中的任意一个集装箱,为便于理解,本申请实施例以该容器为上述云服务器中所运行的集装箱1为例,以阐述该集装箱1(即上述容器1)中调用图形渲染库的具体过程。其中,图6b所示的容器中运行的游戏客户端可以为图6b所示的安卓应用程序,该安卓应用程序的运行环境可以为图6b所示的运行环境1和/或运行环境2。
其中,如图6b所示的进程管理服务具体可以包含图6b所示的服务1、服务2、服务3、服务4、服务5等。其中,服务1可以为窗口管理服务,即一个游戏进程可以提供一个窗口。其中,服务2可以为图形合成服务,即可以在同一云虚拟容器中,对不同显存中所存储的渲染游戏数据服务2进行合成处理,以推送到屏幕内核所对应的帧缓冲中进行模拟输出。服务3可以为游戏客户端(即图6b所示的安卓应用程序)的安装包(这里可以为安卓安装包,也可以称之为安卓镜像)对应的安装服务。可以理解的是,当安卓镜像开始安装在游戏终端中时,可以在该游戏终端中变成安卓实例,即可以在游戏终端中运行该安卓镜像对应的安卓应用程序。其中,服务4可以为在相应云虚拟容器中的渲染服务。服务5可以为销毁进程服务。其中,容器中的运行环境1可以为安卓应用程序所在的云游戏环境系统所使用的编程语言(例如,Java语言)对应的运行环境,同理,容器中的运行环境2可以为安卓应用程序所在的云游戏环境系统所使用的另一编程语言(C语言)的运行环境。其中,图6b所示的系统库可以用于提供不同的系统文件,例如,在该容器对应的渲染业务下,该系统库可以包含但不限于图6b所示的图形渲染库,且如图6b所示,该图形渲染库中可以包含具有指令封装功能的封装组件,基于此,该云服务器在与某个游戏终端进行数据交互时,可以进一步执行下述步骤S103,以通过图6b所示的图像渲染库快速访问到图6b所示的封装组件,进而可以在该容器中快速访问到图形渲染驱动,以在该容器内进行渲染处理。
步骤S103,在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;
具体的,云服务器可以在执行步骤S103之前,通过游戏进程向帧缓冲组件发送帧缓冲区申请指令;帧缓冲区申请指令用于指示帧缓冲组件向缓冲分配器发送缓冲分配指令;进一步的,云服务器可以在缓冲分配器基于缓冲分配指令为游戏进程分配帧缓冲区时,通过与缓冲分配器具有关联关系的图形渲染节点,调用图形渲染驱动,以在与图形渲染驱动具有层级关系的物理渲染器件中分配帧缓冲区对应的显存;进一步的,云服务器可以将显示对应的显存地址返回给游戏进程;显存地址用于指向游戏进程对应的帧缓冲区。可以理解的是,当该云服务器获取到为游戏进程所分配的帧缓冲区时,可以进一步获取游戏进程与图形渲染库之间的关联关系;进一步的,云服务器可以基于关联关系在云虚拟容器中确定游戏进程与图形渲染库之间的桥接通道;进一步的,云服务器可以通过桥接通道调用图形渲染库,从图形渲染库中获取与客户端环境系统具有远程映射关系的图形渲染指令,以便于后续可以进一步执行下述步骤S103。
为便于理解,进一步的,请参见图7,图7是本申请实施例提供的一种在云虚拟容器中为游戏进程分配的帧缓冲区的场景示意图。为便于理解,本申请实施例以在该云虚拟容器中启动的游戏进程的数量为一个为例,如图7所示,该游戏进程可以为图7所示的游戏进程70a,以阐述在云虚拟容器中为该游戏进程70a分配一个帧缓存区的具体过程。
其中,可以理解的是,如图7所示的云虚拟容器可以为上述图6a所对应实施例中的某个集装箱,例如,上述图6a所对应实施例中的集装箱1。如图7所示,该云虚拟容器中可以包含已重构的系统图形栈,这里的系统图形栈可以用于指示该云服务器在图7所示的云虚拟容器中直接访问具有图形渲染功能的物理渲染器件(例如,图7所示的物理渲染器件70f),进而可以在图7所示的云虚拟容器中实现容器内的图形渲染;其中,可以理解的是,该云虚拟容器中的系统图形栈具体可以包括:图7所示的游戏进程70a、帧缓冲组件70b、缓冲分配器70c、图形渲染节点70d、图形渲染驱动70e和物理渲染器件70f、图形渲染库70g和图形合成器70h。
其中,可以理解的是,本申请实施例所提供的容器内的图形渲染方案(即上述内部图形渲染技术),具体涉及在图7所示的云虚拟容器中将云游戏环境系统(即远程安卓系统)内部的游戏进程70a的图形渲染接口(API,Application Programming Interface)桥接到图7所示的图形渲染库(该图形渲染库可以为上述Mesa图形库),这意味着本申请实施例通过利用该Mesa图形库以及该Mesa图形库中的封装组件(比如,具有指令封装功能的libdrm组件),可以进一步将上述图形渲染指令所指示的图形渲染操作下发给图7所示的图形渲染驱动70e(即一种内核态的GPU图形驱动),进而可以快速访问到与图形渲染驱动70e具有层级关系的物理渲染器件70f,以最终在具体的物理硬件上完成图形渲染。
其中,如图7所示,该图形渲染库70g可以与图7所示的游戏进程之间存在关联关系,这样,当云服务器在该云虚拟容器中获取到为图7所示的游戏进程所分配的帧缓冲区时,可以在云虚拟容器中通过该游戏进程70a与图形渲染库70g之间的关联关系,进而可以通过关联关系在云虚拟容器中确定该游戏进程70a与图形渲染库70g之间的桥接通道(例如,在该云虚拟容器中所调用的安卓系统内部的用于指示进行图形渲染的图形渲染接口),从而可以通过该桥接通道调用图形渲染库,从图形渲染库中获取与客户端环境系统具有远程映射关系的图形渲染指令,以便于后续可以继续执行下述步骤S104。
其中,可以理解的是,本申请实施例在执行上述内部图形渲染技术之前,还可以在图7所示的云虚拟容器中,为图7所示的游戏进程70a预先分配一个帧缓冲区。其中,该云服务器为该游戏进程70a分配帧缓冲区的具体实现方式可以描述为:
1)当游戏用户启动云游戏(例如,上述云游戏X)时,该游戏用户所使用的游戏终端中的游戏客户端与可以与该云服务器建立连接。
比如,可以理解的是,该云服务器可以与该游戏客户端之间的数据连接关系,这样,当游戏用户在游戏终端中针对该游戏客户端中的业务控件执行触发操作时,该游戏终端中的游戏客户端可以获取到针对该业务控件的触摸事件流,进而可以基于该数据连接关系将携带该触摸事件流的云游戏数据获取请求发送给云服务器。应当理解,当游戏用户启动云游戏(例如,上述云游戏X)时,该云服务器会预先为该游戏客户端分配一个云虚拟容器(比如,图7所示的云虚拟容器)。
2)此时,该云服务器可以向图7所示的云虚拟容器下发用于启动某个游戏进程(例如,图7所示的游戏进程70a)的指令。
比如,云服务器可以基于游戏客户端所在的客户端环境系统(例如,安卓系统),确定与该客户端环境系统相匹配的云游戏环境系统对应的云虚拟容器,以从云游戏数据获取请求中提取业务控件所指示的虚拟对象的属性行为事件,进而可以确定与属性行为事件相关联的进程启动指令,从而可以将用于启动某个游戏进程(例如,图7所示的游戏进程70a)的指令(即进程启动指令)写入该云虚拟容器。
3)此时,云虚拟容器(即用于运行云游戏环境系统的容器)可以基于该进行启动指令启动游戏进程(例如,图7所示的游戏进程70a)。
可以理解的是,本申请实施例在启动该游戏进程70a之前,还可以基于获取到的触摸事件流的输入时间(即一个触摸操作对应一个触摸时间戳),在该云虚拟容器中控制虚拟对象执行游戏属性行为,比如,本申请实施例可以更改该虚拟对象的游戏属性执行游戏属性行为,例如,可以将该虚拟对象当前所属的部落名称1更改为部落名称2,以便于后续可以在云游戏场景下,呈现出用于指示更改游戏属性的视觉显示界面。可选的,本申请实施例可以在云端的游戏地图中控制该虚拟对象向某个方向移动的游戏属性行为,例如,可以在游戏地图中控制该虚拟对象相对于触摸时间戳时的游戏位置向右移动相应距离,以便于后续可以在云游戏场景下渲染出向右移动后的视觉显示界面。
4)游戏进程(例如,游戏进程70a)向帧缓冲组件申请一个帧缓冲区;
例如,该帧缓冲组件可以为图7所示的帧缓冲组件70b,该帧缓冲组件70b所提供的服务可以为上述图6a所示的进程管理服务中的服务1,比如,这里的服务1可以为一种用于提供窗口管理服务的SurfaceFlinger服务。如图7所示,该云服务器可以通过游戏进程70a向图7所示的帧缓冲组件70b发送帧缓冲区申请指令;这里的帧缓冲区申请指令可以用于指示帧缓冲组件70b进一步向缓冲分配器70c发送缓冲分配指令。
5)帧缓冲组件可以进一步向缓冲分配器申请一块帧缓冲区;
其中,这里的缓冲分配器可以为图7所示的缓冲分配器70c。
6)缓冲分配器可以通过图形渲染节点调用到图形渲染驱动,进而可以通过该图形渲染驱动在物理渲染启动中分配一块显存,从而可以将该显存对应的显存地址返回地址给上层,这里的上层是指在该云虚拟容器中的游戏进程;
其中,可以理解的是,在云虚拟容器中,该缓冲分配器(即图7所示的缓冲分配器70c)在基于4)中的缓冲分配指令为游戏进程70a分配帧缓冲区时,可以通过与缓冲分配器70c具有关联关系的图形渲染节点70d,调用图形渲染驱动70e,以在与图形渲染驱动70e具有层级关系的物理渲染器件中分配相应帧缓冲区所对应的显存,这里的显存可以为图7所示的物理渲染器件70f中的显存。
7)游戏进程(例如,游戏进程70a)在基于显存地址确定出帧缓冲区之后,可以开始调用图形渲染库(例如,Mesa图形库)进行渲染调用;
8)此时,图形渲染库(例如,Mesa图形库)可以将图形渲染指令进行标准化处理之后,通过图形渲染节点(例如,图7所示的图像渲染节点70d)将该标准化处理后的图形渲染指令下发给内核GPU驱动(即图7所示的图形渲染驱动70e),进而可以基于图形渲染驱动与图形渲染器件之间的层级关系,直接访问到图7所示的物理渲染器件70f(这里指的是硬件上的物理GPU)。
9)在物理GPU(例如,物理渲染器件70f)上进行渲染;
10) 图形合成器(例如,图7所示的图形合成器70h)可以进一步将所有的显存(即每个游戏进程对应的显存中的渲染游戏数据)进行合成处理。
此外,可以理解的是,本申请实施例还可以利用该图形合成器所提供的窗口管理服务,将合成处理后的渲染游戏数据一并推送到FrameBuffer(即屏幕内核对应的帧缓冲)中。
步骤S104,基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
具体的,可以理解的是,云服务器在执行完上述步骤S103之后,可以得到与客户端环境系统具有远程映射关系的图形渲染指令;进一步的,该云服务器可以通过图形渲染库(例如,上述图7的图形渲染库70g)中的封装组件对步骤S103所得到的图形渲染指令进行标准化处理,以将标准化处理后的图形渲染指令通过图形渲染节点(例如,上述图7所对应实施例中的图形渲染节点70d)传输给图形渲染驱动(例如,上述图7所对应实施例中的图形渲染驱动70e);进一步的,云服务器可以基于与图形渲染驱动(例如,上述图7所对应实施例中的图形渲染驱动70e)与图形渲染器件(例如,上述图7所对应实施例中的物理渲染器件70f)之间的层级关系,访问与帧缓冲区相关联的物理渲染器件(例如,上述图7所对应实施例中的物理渲染器件70f);进一步的,云服务器可以通过物理渲染器件的图形渲染功能对游戏进程对应的游戏数据进行容器内的渲染处理,以将渲染处理后的游戏数据作为游戏进程对应的渲染游戏数据。
由此可见,在本申请实施例中,该云服务器可以重构整个系统图形栈,可以直接在云虚拟容器中利用图形渲染库访问到与帧缓冲区相关联的物理渲染器件,进而可以通过物理渲染器件对游戏进程(例如,上述图7所示的游戏进程70a)对应的游戏数据进行容器内的渲染处理,以得到游戏进程对应的渲染游戏数据。
应当理解,当在上述云虚拟容器中所启动的游戏进程的数量为多个时,在该云虚拟容器中为每个游戏进程分配帧缓冲区的具体实现方式,可以一并参见为上述图7 所示的游戏进程70a分配帧缓冲区的具体过程的描述,这里将不再继续进行赘述。
步骤S105,根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面。
具体的,云服务器可以在该云虚拟容器中启动的游戏进程的数量为多个时,将每个游戏进程称之为上述关联进程,这意味着这里的游戏进程具体可以包括与业务控件相关联的K个关联进程,这里的K为正整数;可以理解的是,此时,本申请实施例所涉及的物理渲染器件中具体包含与K个关联进程分别对应的K个显存;所以,当云服务器执行完上述步骤S104之后,渲染游戏数据中具体可以包含对K个关联进程的游戏数据进行渲染处理后的K个子渲染数据;一个显存用于存储一个关联进程对应的一个子渲染数据。此时,云服务器可以将K个显存中所存储的子渲染数据输出至对应显存的显存地址所映射的帧缓冲区,以在每个帧缓冲区中输出K个子渲染数据对应的数据界面,这里的一个数据界面即为一个关联进程对应的窗口;进一步的,云服务器可以通过云虚拟容器中的图形合成器,对K个子渲染数据对应的数据界面(即多个窗口)进行合成处理,从而可以基于合成处理后的K个子渲染数据的数据界面,生成用于在游戏客户端进行显示的游戏合成画面。
为便于理解,本申请实施例以该游戏合成界面为上述图5所对应实施例中的渲染合成界面100c为例,即该渲染合成界面100c是由多个进程分别对应的窗口进行叠加处理后所得到的。比如,上述渲染合成界面100c中可以包含文本输入区(即上述图5所示的用于更改部落名称的可操作区域)对应的窗口,还可以包含文本确定区(即上述图5所示的“完成”控件所在的可操作区域)对应的窗口,以及提示文本信息区(即上述图5所示的“用户名太短!”的提示文本信息所在的区域)所对应的窗口等。这里将不对上述渲染合成界面100c所涉及的窗口进行一一列举。
在本发明实施例中,该计算机设备通过重构整个云虚拟容器中的系统图形栈(比如,在游戏进程与图形渲染库之间建立了桥接通道),使得整个游戏进程对应的游戏数据可以在该云虚拟容器中进行内部渲染,即此时该计算机设备可以在该云虚拟容器中直接访问到物理渲染器(例如,物理GPU),进而可以在游戏数据的渲染场景下降低游戏的渲染时延。此外,当该计算机设备在云虚拟容器中进行内部渲染时,由于无需在不同渲染方式之间的转换,从而可以增强游戏的兼容性,所以,当该计算机设备根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面时,可以在该云虚拟容器中以较高的帧率运行该云游戏,以增强系统的稳定性。
进一步地,请参见图8,图8是本发明实施例提供的一种数据处理方法的流程示意图。如图8所示,该方法可以由计算机设备执行,该计算机设备可以为运行有上述游戏客户端的游戏终端,该游戏终端可以为上述图2所对应实施例中的游戏终端10a;可选的,该计算机设备还可以为该游戏客户端对应的后台服务器,该后台服务器可以为上述图2所对应实施例中的云服务器20a。换言之,本申请实施例所涉及的方法可以由游戏用户所对应的游戏终端执行,也可以由云服务器执行,还可以由游戏终端和云服务器共同执行。为便于理解,本实施例以该方法由游戏终端和云服务器共同执行为例进行说明,方法可以包括:
步骤S201,云服务器在获取到游戏客户端发送的远程连接请求时,基于远程连接请求对游戏客户端对应的游戏用户进行远程鉴权,得到远程鉴权结果;
其中,远程连接请求为游戏用户通过游戏账号信息访问游戏客户端时所得到的;远程连接请求中携带游戏客户端所在的客户端环境系统;这意味着该远程连接请求可以为游戏用户启动游戏客户端时所生成的。可以理解的是,云服务器在获取到某个游戏终端(例如,上述图4所对应实施例中的终端A1)发送的远程连接请求时,可以提取该远程连接请求中所携带的游戏用户的游戏账号信息(例如,手机号码、社交账号等个人属性信息),以对通过该游戏账号信息对该游戏用户进行鉴权处理,以在鉴权成功的情况下,继续执行下述步骤S202,反之,则会在鉴权失败的情况下,拒绝该游戏用户本次发起的远程连接请求。基于此,本申请实施例通过对该游戏用户的身份进行鉴权,可以实现对该游戏用户访问该游戏客户端的访问控制,进而可以确保访问的安全性。此外,可以理解的是,在鉴权成功的情况下,本申请实施例还可以记录该游戏用户通过同一游戏账号信息接入该云服务器的不同终端设备的数量,以在接入的终端设备的数量不超过数量阈值的情况下,将在容器内渲染所得到的渲染游戏数据所对应的游戏合成画面,同步下发与该游戏用户相关联的多个终端。例如,上述图4所对应实施例中终端A1和终端A2可以接收到云服务器所同步下发的游戏合成画面。基于此,云服务器通过为与同一用户相关联的多个终端配置同一云虚拟容器,可以在并发接入大量的不同用户的终端的情况下,自主实现云虚拟容器的配置,进而可以避免计算资源的浪费。
步骤S202,若云服务器确定远程鉴权结果指示游戏用户具有远程访问游戏客户端的权限,则与游戏客户端建立数据连接关系;
步骤S203,云服务器在基于数据连接关系为游戏客户端配置好云虚拟容器时,通过云虚拟容器中的云游戏启动指令,启动并运行游戏客户端;
具体的,云服务器可以基于数据连接关系为游戏客户端配置云虚拟容器,在云虚拟容器中虚拟出与客户端环境系统相匹配的云游戏环境系统;进一步的,云服务器可以根据与云虚拟容器相关联的云游戏启动指令,在云游戏环境系统中启动并运行游戏客户端,将游戏客户端对应的游戏显示页面输出至游戏用户对应的游戏终端。
其中,步骤S201-步骤S203的具体实现方式,可以参见上述图4所对应实施例中对云服务器中的容器1的描述,这里将不再继续进行赘述。应当理解,本申请实施例通过在云虚拟容器中虚拟出与客户端环境系统相匹配的云游戏环境系统,可以在云端为当前游戏用户提供一种用于运行云游戏的超级运行环境,进而可以充分利用该云服务器的云计算功能,以便于后续可以在云虚拟容器中提高对该云游戏的相应业务逻辑(例如,用于在云端控制虚拟对象的游戏行为的业务逻辑等)进行处理时的处理效率。
步骤S204,游戏终端响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;
步骤S205,云服务器在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;
步骤S206,云服务器在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;
其中,云虚拟容器中可以包含已重构的系统图形栈;系统图形栈可以用于指示在云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;系统图形栈包括:游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和物理渲染器件;所以,可以理解的是,该云服务器在执行步骤S207之前,还可以在云虚拟容器中为游戏进程分配相应的帧缓冲区。比如,云服务器可以通过游戏进程向帧缓冲组件发送帧缓冲区申请指令;帧缓冲区申请指令可以用于指示帧缓冲组件向缓冲分配器发送缓冲分配指令;进一步的,云服务器可以在缓冲分配器基于缓冲分配指令为游戏进程分配帧缓冲区时,通过与缓冲分配器具有关联关系的图形渲染节点,调用图形渲染驱动,以在与图形渲染驱动具有层级关系的物理渲染器件中分配帧缓冲区对应的显存;进一步的,云服务器可以将显示对应的显存地址返回给游戏进程;其中,显存地址可以用于指向游戏进程对应的帧缓冲区。
步骤S207,云服务器基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
步骤S208,云服务器根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面;
可以理解的是,当云服务器在云端得到该游戏合成画面时,可以在云端对该游戏合成画面进行编码处理(例如,可以通过音视频编码技术,例如,h264/h265技术在云端对该游戏合成画面进行编码处理),以将编码处理后的码流下发给游戏终端。这样,即使在该游戏用户当前所使用的游戏终端中不具备高端处理器和显卡的情况下,也可以通过该游戏终端中所具备的音视频解码能力,快速在游戏终端中输出相应的视频数据(例如,游戏合成画面)和音频数据,以提升本地终端的界面展示效果。
其中,步骤S204-步骤S208的具体实现方式,可以一并参见上述图3所对应实施例中对步骤S101-步骤S105的描述,这里将不再继续进行赘述。
步骤S209,游戏终端接收云服务器根据渲染游戏数据所生成的游戏合成画面,在游戏客户端中显示游戏合成画面。
可以理解的是,当游戏终端接收到云服务器所下发的编码处理后的码流之后,可以进一步本地终端中利用音视频解码技术对该编码处理后的码流进行解码处理,以解码得到该游戏合成画面,进而可以在该游戏客户端中将该游戏合成画面输出展示给游戏用户。
可以理解的是,在本申请实施例中,该云服务器可以用于接收一个或者多个游戏用户发送的触摸事件流。为便于理解,进一步的,请参见图9,图9是本申请实施例提供的一种获取多个触摸事件流的场景示意图。如图9所示的多个游戏终端具体可以包含图9所示的游戏终端1、游戏终端2和游戏终端3。这三个游戏终端对应的触摸事件流可以分别为上述图9所对应实施例中的触摸事件流1、触摸事件流2和触摸事件流3。
其中,图9给出了在云游戏的虚拟场景下的竞技类游戏(例如,MOBA游戏)的二维地图,该二位地图可以为图9所示的游戏地图。在这种MOBA游戏中虚拟对象可以大致被划分为两个竞技阵营,例如,第一阵营和第二阵营。如图9所示,这里的每个阵营中可以分别有H(例如,3)个虚拟对象,一共2*H(例如,6)个虚拟对象共同进行一场MOBA游戏对局。其中,第一阵营中的虚拟对象可以包含图9所示的位于该游戏地图中的虚拟对象1、虚拟对象2和虚拟对象3。同理,在该游戏地图中,第二阵营中的3个虚拟对象(未在图9示出)可以具体可以包含虚拟对象4、虚拟对象5和虚拟对象6。
其中,如图9所示,该虚拟场景下的游戏地图可以呈正方形,且该游戏地图可以被分为以下几个部分,在正方形的一个对角线的两端分别有这两个阵营的基地(水晶),即第一阵营方的基地1001和第二阵营方的基地1002;在该游戏地图中存在连接第一阵营方的基地1001和第二阵营方的基地1002的三条进攻路线,分别是:上路1003、中路1004、下路1005;公共区域:河道1006,以及野区1007。
可以理解的是,在云游戏场景下,这两个阵营种的虚拟对象分别出生在各自的基地位置,同一阵营的三个虚拟对象分别沿三个进攻方向,向敌方发起进攻,以在摧毁对方阵营的基地时获得本局游戏的胜利。其中,第一阵营中的3个虚拟对象出生在图9所示的基地1001,第二阵营中的3个虚拟对象出生在图9所示的基地1002,并且两个阵营的虚拟对象均以我方基地位于观察视角的左下角的视角观察虚拟场景。即第一阵营中的虚拟对象可以以第一视角1008观察该游戏地图中的虚拟场景,第二阵营中的虚拟对象可以以第二视角1009观察该游戏地图中的虚拟场景,并且每个虚拟对象均可以针对各自的视角从某个进攻方向(上路、中路和下路)发起进攻。比如,如图9所示的游戏用户B可以在游戏时长为T时长时,以第一视角1008看到该游戏终端2所呈现的游戏显示界面200a。
可以理解的是,如图9所示,在游戏时长为T时长时,游戏用户B所控制的虚拟对象性1与其他游戏用户(例如,游戏用户C)所控制的虚拟对象(例如,图9所示的虚拟对象2)在同一进攻区域(例如,均位于该游戏地图的下路1005和河道1006的交汇处),此时,控制该虚拟对象1的游戏用户B可以在图9所示的游戏显示界面200a中,看到图9所示的虚拟对象2(即游戏用户C所控制的虚拟对象)。可以理解的是,由于另一游戏用户(例如,游戏用户D)所控制的虚拟对象所处的进攻区域不同于虚拟对象1所处的进攻区域,所以,该游戏用户B暂时无法在该游戏显示界面200a中看到该游戏用户D所控制的虚拟对象3。但是,游戏用户B可以在自己的游戏显示界面中展示自己所控制的虚拟对象3。
应当理解,如图9所示,当游戏用户B在该游戏显示界面200a针对业务控件(例如,图9所示的操作1对应的控件)执行触发操作时,可以向与该游戏终端2具有数据连接关系的云服务器发送图9所示的触摸事件流,进而可以在该云服务器的容器2中触发回城事件对应的游戏进程,以在该容器2中针对该回城事件针对该游戏事件对应的游戏数据实现容器内的渲染处理,进而可以在渲染处理后,生成与该虚拟对象1的回城事件相关联的包含回城动画特效的游戏合成画面,进而可以在图9所示的容器2对生成的游戏合成画面进行编码处理,以得到图9所示的音视频编码流2’。这样,当游戏终端2对该音视频编码流进行解码处理之后,可以在该游戏终端2中显示前述包含回城动画特效的游戏合成画面。
可以理解的是,本申请实施例在执行完上述步骤S209之后,还可以在该云服务器中模拟输出多个游戏用户的游戏合成界面。为便于理解,进一步的,请参见图10,图10是本申请实施例提供的一种在云端模拟输出渲染显示界面的场景示意图。如图10所示的渲染显示界面具体可以包含上述图9所示的游戏用户B、游戏用户C和游戏用户D分别对应的游戏合成画面。比如,游戏用户B对应的游戏合成画面可以为图10所示的模拟输出界面300a,该模拟输出界面300a可以为包含图10所示的虚拟对象1的回城动画特效的游戏合成画面,应当理解,在云端的容器2中进行渲染时,该模拟输出界面300a是由上述图9所示的游戏终端2的屏幕参数信息(例如,游戏终端2的分辨率,例如,1280×720)所确定的。又比如,游戏用户C对应的游戏合成画面可以为图10所示的模拟输出界面300b,该模拟输出界面300b可以为包含图10所示的虚拟对象2发送技能特效的游戏合成画面,应当理解,在云端的容器1中进行渲染时,该模拟输出界面300b可以是由上述图9所示的游戏终端1的屏幕参数信息(例如,游戏终端1的分辨率,例如,1280×720)所确定的。以此类推,又比如,游戏用户D对应的游戏合成画面可以为图10所示的模拟输出界面300c,该模拟输出界面300c可以为包含图10所示的虚拟对象3发送技能特效的游戏合成画面,应当理解,在云端的容器3中进行渲染时,该模拟输出界面300c可以是由上述图9所示的游戏终端3的屏幕参数信息(例如,游戏终端1的分辨率,例如,1280×720)所确定的。
可以理解的是,在本申请实施例中,Android容器(例如,上述图9所示的容器1、容器2和容器3)作为底层的环境,可以为相应的游戏终端提供远程的游戏运行环境(即可以为相应的游戏终端提供云游戏环境系统,该云游戏环境系统可以为远程的安卓系统)。这样,对于并发运行有多个容器的云服务器而言,通过在相应容器中重构整个图形栈,例如,通过将安卓系统内部的图形渲染接口桥接到Mesa图形库(即上述图形渲染库)之后,可以通过该Mesa图形库定位到具有指令封装功能的封装组件(例如,上述libdrm组件),以通过该封装组件进一步将标准化后的图形渲染指令所指示的图形渲染操作下发给图形渲染驱动(例如,上述内核态的GPU图形驱动),以最终到具体硬件(例如,上述物理渲染器件)上完成图形渲染。
可以理解的是,在本申请实施例中,可以通过上述缓冲分配器(例如,一种自定义的具有为相应游戏进程申请帧缓冲区的GBM_GRALLOC模块),为运行在容器的安卓系统中游戏进程分配相应的图形缓冲区。可以理解的是,在本申请实施例中该缓冲分配器还可以提供完整的Android gralloc接口,以管理整个图形缓冲区(即帧缓冲区)的生命周期,比如,可以在进程执行结束时,在容器中销毁相应游戏进程所对应的帧缓冲区。另外,本申请实施例通过重写图形合成器(即上述hwcomposer器件),可以提供窗口管理服务(即SurfaceFlinger服务),以通过该安卓系统的SurfaceFlinger服务对多个进程分别对应的窗口进行合成,以得到叠加有K个关联进程的窗口的游戏合成画面。此外,应当理解,本申请实施例在云服务器中启动某个容器的时候,可以通过预先为指定某个图形渲染节点(即上述GPU节点)到具体的容器中,具体可以参见上述图9所示的为每个游戏终端所配置的容器。这样,在多GPU环境中,可以通过容器id映射到具体的GPU节点,以使得该云服务器中所运行的N个容器均匀分布在所有GPU节点上,以完成渲染的负载均衡,进而可以增强系统的稳定性。
其中,应当理解,本申请实施例在将渲染合成画面中的视频数据下发给游戏终端的同时,还会一并下发与该渲染合成画面中的视频数据相关联的音频数据,即可以将编码后的音频流和视频流统称为编码后的音视频流(即上述视频音频流),给到相应的游戏终端,以使相应的游戏终端可以基于接收到的音视频流进行解码处理,以便于最终可以在相应的游戏终端中解码得到与云端的渲染合成画面具有相同内容的游戏显示页面。由于本申请实施例是在容器内进行渲染处理,无需在不同渲染方式之间进行格式转换,进而可以有效地提升系统的兼容性以及降低渲染时延。
进一步地,请参见图11,图11是本发明实施例提供的一种数据处理装置的结构示意图。数据处理装置1可以应用于上述云服务器,该云服务器可以为上述图1所对应实施例中的云服务器2000。进一步地,该数据处理装置1可以包括:请求获取模块11,游戏进程启动模块12,渲染指令确定模块13,渲染处理模块14和合成画面生成模块15;可选的,该数据处理装置1还可以包括:远程鉴权模块16,连接建立模块17,客户端启动模块18,申请指令发送模块19,渲染驱动调用模块20和地址返回模块21,缓冲区销毁模块22,数据确定模块23,视频流确定模块24,音频流确定模块25,编码流下发模块26;
请求获取模块11,用于获取游戏客户端发送的云游戏数据获取请求;
游戏进程启动模块12,用于在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;
其中,游戏客户端对应的游戏显示页面中包括与游戏用户相关联的虚拟对象,游戏显示页面中的业务控件用于在游戏客户端对应的云游戏环境系统中操控虚拟对象的游戏属性行为;
游戏进程启动模块12包括:容器确定单元121,启动指令确定单元122,进程启动单元123和游戏进程确定单元124;
容器确定单元121,用于基于游戏客户端所在的客户端环境系统,确定与客户端环境系统相匹配的云游戏环境系统对应的云虚拟容器;
启动指令确定单元122,用于从云游戏数据获取请求中提取业务控件所指示的虚拟对象的属性行为事件,确定与属性行为事件相关联的进程启动指令;
进程启动单元123,用于将进程启动指令输入云虚拟容器,在云虚拟容器中控制虚拟对象执行游戏属性行为,且启动与游戏属性行为相关联的K个关联进程;K为正整数;
游戏进程确定单元124,用于将K个关联进程作为与业务控件相关联的游戏进程。
其中,容器确定单元121,启动指令确定单元122,进程启动单元123和游戏进程确定单元124的具体实现方式,可以一并参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
渲染指令确定模块13,用于在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;
其中,系统图形栈包括:与游戏进程具有关联关系的图形渲染库;
渲染指令确定模块13包括:关联关系获取单元131,桥接通道确定单元132和渲染指令获取单元133;
关联关系获取单元131,用于在获取到为游戏进程所分配的帧缓冲区时,获取游戏进程与图形渲染库之间的关联关系;
桥接通道确定单元132,用于基于关联关系在云虚拟容器中确定游戏进程与图形渲染库之间的桥接通道;
渲染指令获取单元133,用于通过桥接通道调用图形渲染库,从图形渲染库中获取与客户端环境系统具有远程映射关系的图形渲染指令。
其中,关联关系获取单元131,桥接通道确定单元132和渲染指令获取单元133的具体实现方式,可以一并参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
渲染处理模块14,用于基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
其中,图形渲染库中包含具有指令封装功能的封装组件;
渲染处理模块14包括:标准化处理单元141,物理器件访问单元142和渲染处理单元143;
标准化处理单元141,用于将图形渲染指令通过封装组件进行标准化处理,将标准化处理后的图形渲染指令通过图形渲染节点传输给图形渲染驱动;
物理器件访问单元142,用于基于图形渲染驱动与图形渲染器件之间的层级关系,访问与帧缓冲区相关联的物理渲染器件;
渲染处理单元143,用于通过物理渲染器件的图形渲染功能对游戏进程对应的游戏数据进行容器内的渲染处理,将渲染处理后的游戏数据作为游戏进程对应的渲染游戏数据。
其中,标准化处理单元141,物理器件访问单元142和渲染处理单元143的具体实现方式,可以参见上述图3所对应实施例中对步骤S104的描述,这里将不再继续进行赘述。
合成画面生成模块15,用于根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面。
其中,云游戏数据获取请求中携带游戏客户端对应的游戏用户在游戏显示界面中所触发的业务控件;游戏进程包括与业务控件相关联的K个关联进程;物理渲染器件中包含与K个关联进程分别对应的K个显存;渲染游戏数据中包含对K个关联进程的游戏数据进行渲染处理后的K个子渲染数据;一个显存用于存储一个关联进程对应的一个子渲染数据;
合成画面生成模块15包括:数据界面输出单元151,合成处理单元152和模拟输出单元153;
数据界面输出单元151,用于将K个显存中所存储的子渲染数据输出至对应显存的显存地址所映射的帧缓冲区,在每个帧缓冲区中输出K个子渲染数据对应的数据界面;
合成处理单元152,用于通过云虚拟容器中的图形合成器,对K个子渲染数据对应的数据界面进行合成处理,基于合成处理后的K个子渲染数据的数据界面,生成用于在游戏客户端进行显示的游戏合成画面。
可选的,其中,图形合成器用于提供针对游戏客户端的窗口管理服务;
模拟输出单元153,用于基于窗口管理服务确定游戏客户端对应的游戏终端的屏幕参数信息,基于屏幕参数信息在云虚拟容器所对应的内核环境中模拟输出游戏合成画面。
其中,数据界面输出单元151,合成处理单元152和模拟输出单元153的具体实现方式,可以参见上述图3所对应实施例对步骤S105的描述,这里将不再继续进行赘述。
可选的,远程鉴权模块16,用于在获取到游戏客户端发送的远程连接请求时,基于远程连接请求对游戏客户端对应的游戏用户进行远程鉴权,得到远程鉴权结果;远程连接请求为游戏用户通过游戏账号信息访问游戏客户端时所得到的;远程连接请求中携带游戏客户端所在的客户端环境系统;
连接建立模块17,用于若远程鉴权结果指示游戏用户具有远程访问游戏客户端的权限,则与游戏客户端建立数据连接关系;
客户端启动模块18,用于在基于数据连接关系为游戏客户端配置好云虚拟容器时,通过云虚拟容器中的云游戏启动指令,启动并运行游戏客户端。
可选的,其中,云虚拟容器中包含已重构的系统图形栈;系统图形栈用于指示在云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;系统图形栈包括:游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和物理渲染器件;
申请指令发送模块19,用于通过游戏进程向帧缓冲组件发送帧缓冲区申请指令;帧缓冲区申请指令用于指示帧缓冲组件向缓冲分配器发送缓冲分配指令;
渲染驱动调用模块20,用于在缓冲分配器基于缓冲分配指令为游戏进程分配帧缓冲区时,通过与缓冲分配器具有关联关系的图形渲染节点,调用图形渲染驱动,以在与图形渲染驱动具有层级关系的物理渲染器件中分配帧缓冲区对应的显存;
地址返回模块21,用于将显示对应的显存地址返回给游戏进程;显存地址用于指向游戏进程对应的帧缓冲区。
可选的,其中,缓冲分配器具有管理帧缓冲区的整个生命周期;
缓冲区销毁模块22,用于在检测到游戏进程的进程状态为结束状态时,通过缓冲分配器销毁游戏进程所对应的帧缓冲区。
可选的,数据确定模块23,用于将游戏合成画面中的渲染游戏数据作为待编码的视频数据,将游戏合成画面对应的音频数据作为待编码的音频数据;
视频流确定模块24,用于基于云虚拟容器中的音视频编码规则,对待编码的视频数据进行编码处理,得到编码视频流;
音频流确定模块25,用于基于云虚拟容器中的音视频编码规则,对待编码的音频数据进行编码处理,得到编码音频流;
编码流下发模块26,用于将编码视频流和编码音频流作为业务控件所对应的触发事件的编码音视频流,将编码音视频流下发给游戏客户端,以使游戏客户端对编码音视频流进行解码处理。
其中,请求获取模块11,游戏进程启动模块12,渲染指令确定模块13,渲染处理模块14和合成画面生成模块15的具体实现方式,可以一并参见上述图3所对应实施例中对步骤S101-步骤S105的描述,这里将不再继续进行赘述;可选的,远程鉴权模块16,连接建立模块17,客户端启动模块18的具体实现方式,可以参见上述图3所对应实施例中对启动游戏客户端的具体过程的描述,这里将不再继续进行赘述。其中,申请指令发送模块19,渲染驱动调用模块20,地址返回模块21,缓冲区销毁模块22,数据确定模块23,视频流确定模块24,音频流确定模块25,编码流下发模块26的具体实现方式,可以参见上述图8所对应实施例中对云服务器的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图12,图12是本发明实施例提供的一种计算机设备的结构示意图。如图12所示,该计算机设备3000可以为云服务器,该云服务器可以为上述图1所对应实施例中的云服务器2000。该计算机设备3000可以包括:处理器3001,网络接口3004和存储器3005,此外,计算机设备3000还可以包括:用户接口3003,和至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,可选用户接口3003还可以包括标准的有线接口、无线接口。网络接口3004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器3005可选的还可以是至少一个位于远离前述处理器3001的存储装置。如图12所示,作为一种计算机存储介质的存储器3005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
其中,计算机设备3000中的网络接口3004还可以与上述图2所对应实施例中的游戏终端10a进行网络连接。在图12所示的计算机设备3000中,网络接口3004可提供网络通讯功能;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序,以实现:
获取游戏客户端发送的云游戏数据获取请求;
在游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据云游戏数据获取请求启动游戏进程;
在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库得到与客户端环境系统具有远程映射关系的图形渲染指令;
基于图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
根据渲染游戏数据生成用于在游戏客户端进行显示的游戏合成画面。
应当理解,本发明实施例中所描述的计算机设备3000可执行前文图3或图8所对应实施例中对数据处理方法的描述,也可执行前文图11所对应实施例中对数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3或图8所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图8所对应实施例中对数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图13,图13是本申请实施例提供的一种数据处理装置的结构示意图。其中,该数据处理装置2可以包括:操作响应模块100和合成画面接收模块200;
操作响应模块100,用于响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;云游戏数据获取请求用于指示云服务器启动游戏进程,且在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库中的图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
合成画面接收模块200,用于接收云服务器根据渲染游戏数据所生成的游戏合成画面,在游戏客户端中显示游戏合成画面。
其中,操作响应模块100和合成画面接收模块200的具体实现方式,可以参见上述图8所对应实施例中对游戏终端的描述,这里将不再继续进行赘述。
进一步地,请参见图14,是本申请实施例提供的一种计算机设备的结构示意图。如图14所示,该计算机设备4000可以为游戏终端,该游戏终端可以为上述图1所对应实施例中的用户终端3000a。此时。该计算机设备4000可以包括:处理器4001,网络接口4004和存储器4005,此外,该计算机设备4000还可以包括:用户接口4003,和至少一个通信总线4002。其中,通信总线4002用于实现这些组件之间的连接通信。其中,用户接口4003可以包括显示屏(Display)、键盘(Keyboard)。网络接口4004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器4005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器4005可选的还可以是至少一个位于远离前述处理器4001的存储装置。如图14所示,作为一种计算机存储介质的存储器4005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
其中,该计算机设备4000中的网络接口4004还可以提供网络通讯功能。在图14所示的计算机设备4000中,网络接口4004可提供网络通讯功能;而用户接口4003主要用于为用户提供输入的接口;而处理器4001可以用于调用存储器4005中存储的设备控制应用程序,以实现:
响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;云游戏数据获取请求用于指示云服务器启动游戏进程,且在获取到为游戏进程所分配的帧缓冲区时,在云虚拟容器中通过游戏进程与图形渲染库之间的桥接通道,调用图形渲染库中的图形渲染指令访问与帧缓冲区相关联的物理渲染器件,通过物理渲染器件对游戏进程对应的游戏数据进行容器内的渲染处理,得到游戏进程对应的渲染游戏数据;
接收云服务器根据渲染游戏数据所生成的游戏合成画面,在游戏客户端中显示游戏合成画面。
可以理解的是,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3或图8所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图15,图15是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置1a和数据处理装置2a。其中,数据处理装置1a可以为上述图11所对应实施例中的数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图2所对应实施例中的云服务器20a,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图13所对应实施例中的数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图2对应实施例中的游戏终端10a,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的视频数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (14)

1.一种数据处理方法,其特征在于,包括:
获取游戏客户端发送的云游戏数据获取请求;
在所述游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据所述云游戏数据获取请求启动游戏进程;所述云虚拟容器中包含已重构的系统图形栈;所述系统图形栈用于指示在所述云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;所述系统图形栈包括:所述游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和所述物理渲染器件;
通过所述游戏进程向所述帧缓冲组件发送帧缓冲区申请指令;所述帧缓冲区申请指令用于指示所述帧缓冲组件向所述缓冲分配器发送缓冲分配指令;
在所述缓冲分配器基于所述缓冲分配指令为所述游戏进程分配帧缓冲区时,通过与所述缓冲分配器具有关联关系的图形渲染节点,调用所述图形渲染驱动,以在与图形渲染驱动具有层级关系的所述物理渲染器件中分配所述帧缓冲区对应的显存;
将所述显存对应的显存地址返回给所述游戏进程;所述显存地址用于指向所述游戏进程对应的所述帧缓冲区;
在获取到为所述游戏进程所分配的所述帧缓冲区时,在所述云虚拟容器中通过所述游戏进程与图形渲染库之间的桥接通道,调用所述图形渲染库得到与所述客户端环境系统具有远程映射关系的图形渲染指令;
基于所述图形渲染指令访问与所述帧缓冲区相关联的物理渲染器件,通过所述物理渲染器件对所述游戏进程对应的游戏数据进行容器内的渲染处理,得到所述游戏进程对应的渲染游戏数据;
根据所述渲染游戏数据生成用于在所述游戏客户端进行显示的游戏合成画面。
2.根据权利要求1所述的方法,其特征在于,在所述获取游戏客户端发送的云游戏数据获取请求之前,所述方法还包括:
在获取到游戏客户端发送的远程连接请求时,基于所述远程连接请求对所述游戏客户端对应的游戏用户进行远程鉴权,得到远程鉴权结果;所述远程连接请求为所述游戏用户通过游戏账号信息访问所述游戏客户端时所得到的;所述远程连接请求中携带所述游戏客户端所在的客户端环境系统;
若所述远程鉴权结果指示所述游戏用户具有远程访问所述游戏客户端的权限,则与所述游戏客户端建立数据连接关系;
在基于所述数据连接关系为所述游戏客户端配置好云虚拟容器时,通过所述云虚拟容器中的云游戏启动指令,启动并运行所述游戏客户端。
3.根据权利要求2所述的方法,其特征在于,所述游戏客户端对应的游戏显示页面中包括与所述游戏用户相关联的虚拟对象,所述游戏显示页面中的业务控件用于在所述游戏客户端对应的云游戏环境系统中操控所述虚拟对象的游戏属性行为;
所述在所述游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据所述云游戏数据获取请求启动游戏进程,包括:
基于所述游戏客户端所在的客户端环境系统,确定与所述客户端环境系统相匹配的云游戏环境系统对应的云虚拟容器;
从所述云游戏数据获取请求中提取所述业务控件所指示的所述虚拟对象的属性行为事件,确定与所述属性行为事件相关联的进程启动指令;
将所述进程启动指令输入所述云虚拟容器,在所述云虚拟容器中控制所述虚拟对象执行所述游戏属性行为,且启动与所述游戏属性行为相关联的K个关联进程;所述K为正整数;
将所述K个关联进程作为与所述业务控件相关联的游戏进程。
4.根据权利要求1所述的方法,其特征在于,所述系统图形栈包括:与所述游戏进程具有关联关系的图形渲染库;
所述在获取到为所述游戏进程所分配的帧缓冲区时,在所述云虚拟容器中通过所述游戏进程与图形渲染库之间的桥接通道,调用所述图形渲染库得到与所述客户端环境系统具有远程映射关系的图形渲染指令,包括:
在获取到为所述游戏进程所分配的帧缓冲区时,获取所述游戏进程与所述图形渲染库之间的所述关联关系;
基于所述关联关系在所述云虚拟容器中确定所述游戏进程与图形渲染库之间的桥接通道;
通过所述桥接通道调用所述图形渲染库,从所述图形渲染库中获取与所述客户端环境系统具有远程映射关系的图形渲染指令。
5.根据权利要求4所述的方法,其特征在于,所述图形渲染库中包含具有指令封装功能的封装组件;
所述基于所述图形渲染指令访问与所述帧缓冲区相关联的物理渲染器件,通过所述物理渲染器件对所述游戏进程对应的游戏数据进行容器内的渲染处理,得到所述游戏进程对应的渲染游戏数据,包括:
将所述图形渲染指令通过所述封装组件进行标准化处理,将标准化处理后的图形渲染指令通过所述图形渲染节点传输给所述图形渲染驱动;
基于所述图形渲染驱动与所述物理渲染器件之间的层级关系,访问与所述帧缓冲区相关联的物理渲染器件;
通过所述物理渲染器件的图形渲染功能对所述游戏进程对应的游戏数据进行容器内的渲染处理,将渲染处理后的游戏数据作为所述游戏进程对应的渲染游戏数据。
6.根据权利要求1所述的方法,其特征在于,所述缓冲分配器具有管理所述帧缓冲区的整个生命周期;
所述方法还包括:
在检测到所述游戏进程的进程状态为结束状态时,通过所述缓冲分配器销毁所述游戏进程所对应的所述帧缓冲区。
7.根据权利要求1所述的方法,其特征在于,所述云游戏数据获取请求中携带所述游戏客户端对应的游戏用户在游戏显示界面中所触发的业务控件;所述游戏进程包括与所述业务控件相关联的K个关联进程;所述物理渲染器件中包含与所述K个关联进程分别对应的K个显存;所述渲染游戏数据中包含对所述K个关联进程的游戏数据进行渲染处理后的K个子渲染数据;一个显存用于存储一个关联进程对应的一个子渲染数据;
所述根据所述渲染游戏数据生成用于在所述游戏客户端进行显示的游戏合成画面,包括:
将所述K个显存中所存储的子渲染数据输出至对应显存的显存地址所映射的帧缓冲区,在每个帧缓冲区中输出所述K个子渲染数据对应的数据界面;
通过所述云虚拟容器中的图形合成器,对所述K个子渲染数据对应的数据界面进行合成处理,基于合成处理后的K个子渲染数据的数据界面,生成用于在所述游戏客户端进行显示的游戏合成画面。
8.根据权利要求7所述的方法,其特征在于,所述图形合成器用于提供针对所述游戏客户端的窗口管理服务;
所述方法还包括:
基于所述窗口管理服务确定所述游戏客户端对应的游戏终端的屏幕参数信息,基于所述屏幕参数信息在所述云虚拟容器所对应的内核环境中模拟输出所述游戏合成画面。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述游戏合成画面中的所述渲染游戏数据作为待编码的视频数据,将所述游戏合成画面对应的音频数据作为待编码的音频数据;
基于所述云虚拟容器中的音视频编码规则,对所述待编码的视频数据进行编码处理,得到编码视频流;
基于所述云虚拟容器中的音视频编码规则,对所述待编码的音频数据进行编码处理,得到编码音频流;
将所述编码视频流和所述编码音频流作为所述业务控件所对应的触发事件的编码音视频流,将所述编码音视频流下发给所述游戏客户端,以使所述游戏客户端对所述编码音视频流进行解码处理。
10.一种数据处理方法,其特征在于,包括:
响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;所述云游戏数据获取请求用于指示所述云服务器启动游戏进程,且在获取到为所述游戏进程所分配的帧缓冲区时,在云虚拟容器中通过所述游戏进程与图形渲染库之间的桥接通道,调用所述图形渲染库中的图形渲染指令访问与所述帧缓冲区相关联的物理渲染器件,通过所述物理渲染器件对所述游戏进程对应的游戏数据进行容器内的渲染处理,得到所述游戏进程对应的渲染游戏数据;所述云虚拟容器中包含已重构的系统图形栈;所述系统图形栈用于指示所述云服务器在所述云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;所述系统图形栈包括:所述游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和所述物理渲染器件;所述云服务器用于通过所述游戏进程向所述帧缓冲组件发送帧缓冲区申请指令;所述帧缓冲区申请指令用于指示所述帧缓冲组件向所述缓冲分配器发送缓冲分配指令;所述云服务器用于在所述缓冲分配器基于所述缓冲分配指令为所述游戏进程分配帧缓冲区时,通过与所述缓冲分配器具有关联关系的图形渲染节点,调用所述图形渲染驱动,以在与图形渲染驱动具有层级关系的所述物理渲染器件中分配所述帧缓冲区对应的显存;所述云服务器用于将所述显存对应的显存地址返回给所述游戏进程;所述显存地址用于指向所述游戏进程对应的所述帧缓冲区;
接收所述云服务器根据所述渲染游戏数据所生成的游戏合成画面,在所述游戏客户端中显示所述游戏合成画面。
11.一种数据处理装置,其特征在于,包括:
请求获取模块,用于获取游戏客户端发送的云游戏数据获取请求;
游戏进程启动模块,用于在所述游戏客户端所在的客户端环境系统对应的云虚拟容器中,根据所述云游戏数据获取请求启动游戏进程;所述云虚拟容器中包含已重构的系统图形栈;所述系统图形栈用于指示在所述云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;所述系统图形栈包括:所述游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和所述物理渲染器件;
申请指令发送模块,用于通过所述游戏进程向所述帧缓冲组件发送帧缓冲区申请指令;所述帧缓冲区申请指令用于指示所述帧缓冲组件向所述缓冲分配器发送缓冲分配指令;
渲染驱动调用模块,用于在所述缓冲分配器基于所述缓冲分配指令为所述游戏进程分配帧缓冲区时,通过与所述缓冲分配器具有关联关系的图形渲染节点,调用所述图形渲染驱动,以在与图形渲染驱动具有层级关系的所述物理渲染器件中分配所述帧缓冲区对应的显存;
地址返回模块,用于将所述显存对应的显存地址返回给所述游戏进程;所述显存地址用于指向所述游戏进程对应的所述帧缓冲区;
渲染指令确定模块,用于在获取到为所述游戏进程所分配的所述帧缓冲区时,在所述云虚拟容器中通过所述游戏进程与图形渲染库之间的桥接通道,调用所述图形渲染库得到与所述客户端环境系统具有远程映射关系的图形渲染指令;
渲染处理模块,用于基于所述图形渲染库中的图形渲染指令访问与所述帧缓冲区相关联的物理渲染器件,通过所述物理渲染器件对所述游戏进程对应的游戏数据进行容器内的渲染处理,得到所述游戏进程对应的渲染游戏数据;
合成画面生成模块,用于根据所述渲染游戏数据生成用于在所述游戏客户端进行显示的游戏合成画面。
12.一种数据处理装置,其特征在于,包括:
操作响应模块,用于响应针对游戏客户端的触发操作,向云服务器发送云游戏数据获取请求;所述云游戏数据获取请求用于指示所述云服务器启动游戏进程,且在获取到为所述游戏进程所分配的帧缓冲区时,在云虚拟容器中通过所述游戏进程与图形渲染库之间的桥接通道,调用所述图形渲染库中的图形渲染指令访问与所述帧缓冲区相关联的物理渲染器件,通过所述物理渲染器件对所述游戏进程对应的游戏数据进行容器内的渲染处理,得到所述游戏进程对应的渲染游戏数据;所述云虚拟容器中包含已重构的系统图形栈;所述系统图形栈用于指示所述云服务器在所述云虚拟容器中直接访问具有图形渲染功能的物理渲染器件;所述系统图形栈包括:所述游戏进程、帧缓冲组件、缓冲分配器、图形渲染节点、图形渲染驱动和所述物理渲染器件;所述云服务器用于通过所述游戏进程向所述帧缓冲组件发送帧缓冲区申请指令;所述帧缓冲区申请指令用于指示所述帧缓冲组件向所述缓冲分配器发送缓冲分配指令;所述云服务器用于在所述缓冲分配器基于所述缓冲分配指令为所述游戏进程分配帧缓冲区时,通过与所述缓冲分配器具有关联关系的图形渲染节点,调用所述图形渲染驱动,以在与图形渲染驱动具有层级关系的所述物理渲染器件中分配所述帧缓冲区对应的显存;所述云服务器用于将所述显存对应的显存地址返回给所述游戏进程;所述显存地址用于指向所述游戏进程对应的所述帧缓冲区;
合成画面接收模块,用于接收所述云服务器根据所述渲染游戏数据所生成的游戏合成画面,在所述游戏客户端中显示所述游戏合成画面。
13.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以执行权利要求1-10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-10任一项所述的方法。
CN202010883519.4A 2020-08-28 2020-08-28 一种数据处理方法、装置及存储介质 Active CN111729293B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010883519.4A CN111729293B (zh) 2020-08-28 2020-08-28 一种数据处理方法、装置及存储介质
PCT/CN2021/102941 WO2022042004A1 (zh) 2020-08-28 2021-06-29 一种数据处理方法、装置及存储介质
EP21859846.4A EP4122568A4 (en) 2020-08-28 2021-06-29 DATA PROCESSING METHOD AND DEVICE AND STORAGE MEDIUM
US17/962,822 US20230032554A1 (en) 2020-08-28 2022-10-10 Data processing method and apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010883519.4A CN111729293B (zh) 2020-08-28 2020-08-28 一种数据处理方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111729293A CN111729293A (zh) 2020-10-02
CN111729293B true CN111729293B (zh) 2020-12-22

Family

ID=72658094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010883519.4A Active CN111729293B (zh) 2020-08-28 2020-08-28 一种数据处理方法、装置及存储介质

Country Status (4)

Country Link
US (1) US20230032554A1 (zh)
EP (1) EP4122568A4 (zh)
CN (1) CN111729293B (zh)
WO (1) WO2022042004A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111729293B (zh) * 2020-08-28 2020-12-22 腾讯科技(深圳)有限公司 一种数据处理方法、装置及存储介质
CN112044079B (zh) * 2020-10-14 2023-02-07 腾讯科技(深圳)有限公司 一种游戏运行方法、装置、存储介质和电子设备
CN112950754A (zh) * 2020-10-17 2021-06-11 蔡娟 基于云计算的游戏兼容处理方法、系统及云端计算中心
CN112354178A (zh) * 2020-10-30 2021-02-12 上海小麦互动企业发展有限公司 一种基于云端自动进入街霸游戏对战的系统
CN114494546A (zh) * 2020-11-13 2022-05-13 华为技术有限公司 一种数据处理方法、装置和电子设备
CN112418790B (zh) * 2020-11-18 2024-03-26 江苏赞奇科技股份有限公司 一种基于区块链的服务链高有效性动态扩展追溯方法
CN112860364A (zh) * 2021-02-07 2021-05-28 麒麟软件有限公司 一种基于Linux内核的Android图形显示方法
CN112807678A (zh) * 2021-02-23 2021-05-18 北京字节跳动网络技术有限公司 一种云游戏的实现方法、装置、系统、设备及介质
CN113423018B (zh) * 2021-08-24 2021-11-02 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
CN113032095A (zh) * 2021-03-15 2021-06-25 深圳市瑞驰信息技术有限公司 一种在arm架构上实现安卓容器运算的系统及方法
CN115134416B (zh) * 2021-03-22 2023-04-25 中国联合网络通信集团有限公司 虚拟现实业务处理系统和方法
CN112988400B (zh) * 2021-04-30 2021-08-06 腾讯科技(深圳)有限公司 显存优化方法、装置、电子设备以及可读存储介质
CN115671711B (zh) * 2021-07-21 2023-11-21 腾讯科技(深圳)有限公司 基于云游戏的设备控制方法、装置、电子设备和可读介质
CN113282271A (zh) * 2021-07-22 2021-08-20 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的音频处理方法及装置
CN113559497B (zh) * 2021-09-24 2021-12-21 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备以及可读存储介质
CN114116124A (zh) * 2021-11-10 2022-03-01 支付宝(杭州)信息技术有限公司 一种云容器及基于云容器的人机交互方法和装置
CN114035967A (zh) * 2022-01-10 2022-02-11 北京蔚领时代科技有限公司 一种基于服务器的资源共享渲染方法和装置
CN114022344B (zh) * 2022-01-10 2022-04-05 北京蔚领时代科技有限公司 基于Linux服务器的Android容器渲染资源共享方法和装置
CN114513512B (zh) * 2022-02-08 2023-01-24 腾讯科技(深圳)有限公司 界面渲染的方法及装置
CN114708370B (zh) * 2022-03-29 2022-10-14 北京麟卓信息科技有限公司 一种Linux平台图形渲染方式的检测方法
CN115292020B (zh) * 2022-09-26 2022-12-20 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备以及介质
CN116664375B (zh) * 2022-10-17 2024-04-12 荣耀终端有限公司 图像预测方法、装置、设备及存储介质
CN116567273B (zh) * 2023-07-10 2023-10-10 海马云(天津)信息技术有限公司 发送容器系统的显示画面的方法、服务器设备和存储介质
CN117085336B (zh) * 2023-07-21 2024-05-17 广州盈风网络科技有限公司 游戏运营数据导出方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423782B2 (en) * 2016-12-19 2019-09-24 Mcafee, Llc Intelligent backup and versioning

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693078B2 (en) * 2003-11-13 2010-04-06 Rumi Sheryar Gonda Method for supporting SDH/SONET OAMP on Ethernet
KR101029425B1 (ko) * 2008-11-20 2011-04-14 엔에이치엔(주) 멀티 유저 네트워크 게임의 제작 시스템 및 방법
US9675884B2 (en) * 2009-03-23 2017-06-13 Sony Interactive Entertainment America Llc Virtualization system and method for hosting applications
CN102055727B (zh) * 2009-10-30 2013-06-26 华为技术有限公司 多业务传送网中的数据封装方法、封装设备和支路单元
CN103888485B (zh) * 2012-12-19 2018-03-09 华为技术有限公司 云计算资源的分配方法、装置及系统
EP3000232A4 (en) * 2013-05-23 2017-01-25 Kabushiki Kaisha Square Enix Holdings (also trading as Square Enix Holdings Co., Ltd) Dynamic allocation of rendering resources in a cloud gaming system
US20160253664A1 (en) * 2015-02-27 2016-09-01 Samsung Electronics Co., Ltd Attestation by proxy
US10610779B2 (en) * 2017-06-19 2020-04-07 Sony Interactive Entertainment LLC Methods and systems for scheduling game play of a video game
US20190065619A1 (en) * 2017-08-24 2019-02-28 Coursera, Inc. Scalable server-side rendering
CN111084983B (zh) * 2019-11-25 2021-12-14 腾讯科技(深圳)有限公司 一种云游戏服务方法、装置、设备及存储介质
CN111214828A (zh) * 2020-01-03 2020-06-02 北京小米移动软件有限公司 游戏运行方法、装置、设备、介质及云端游戏平台
CN111450528B (zh) * 2020-03-31 2023-11-24 网易(杭州)网络有限公司 一种云游戏的渲染服务系统、方法及装置
CN111729293B (zh) * 2020-08-28 2020-12-22 腾讯科技(深圳)有限公司 一种数据处理方法、装置及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423782B2 (en) * 2016-12-19 2019-09-24 Mcafee, Llc Intelligent backup and versioning

Also Published As

Publication number Publication date
EP4122568A1 (en) 2023-01-25
WO2022042004A1 (zh) 2022-03-03
CN111729293A (zh) 2020-10-02
US20230032554A1 (en) 2023-02-02
EP4122568A4 (en) 2023-11-15

Similar Documents

Publication Publication Date Title
CN111729293B (zh) 一种数据处理方法、装置及存储介质
US20230218991A1 (en) Augmenting video games with add-ons
US11617947B2 (en) Video game overlay
US9455931B2 (en) Load balancing between processors
US9486706B2 (en) Voice overlay
CN113209632B (zh) 一种云游戏的处理方法、装置、设备及存储介质
CN113244614B (zh) 图像画面展示方法、装置、设备及存储介质
CN115065684B (zh) 数据处理方法、装置、设备以及介质
JP2024509060A (ja) クラウドゲームの処理方法、装置、機器及びコンピュータプログラム
CN115292020B (zh) 一种数据处理方法、装置、设备以及介质
Shi et al. SHARC: A scalable 3D graphics virtual appliance delivery framework in cloud
CN115040866A (zh) 云游戏图像处理方法、装置、设备及计算机可读存储介质
Bentele et al. Towards a GPU-Accelerated open source VDI for OpenStack
Rettberg Towards a GPU-Accelerated Open Source VDI for OpenStack
CN117370696A (zh) 小程序页面的加载方法、装置、电子设备及存储介质
Jackson et al. A Foundation for Android Wearables: New Wearable Features in Android 5

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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030899

Country of ref document: HK