画面显示方法、装置、存储介质及电子设备与流程

文档序号:29829611发布日期:2022-04-27 11:53阅读:95来源:国知局
画面显示方法、装置、存储介质及电子设备与流程

1.本技术实施例涉及计算机技术领域,尤其涉及画面显示方法、装置、存储介质及电子设备。


背景技术:

2.随着计算机技术的普及,支持多进程的并发画面显示的画面显示技术得到了快速发展。但是相关技术中多画面的显示对于主显示器有明显的依赖,具体来说,这种显示技术虽然通过并发的方式进行画面渲染,但是最终画面都会被显示在主显示器上。这会导致主显示器的负载过高,从而降低并发数量,并且还可能导致画面显示异常,甚至画面显示失败。


技术实现要素:

3.为了解决上述至少一个技术问题,本技术实施例提供画面显示方法、装置、存储介质及电子设备。
4.一方面,本技术实施例提供了一种画面显示方法,所述方法包括:
5.在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,所述显示器信息获取请求由目标显示器对应的目标实例发出,所述目标显示器为主显示器或非主显示器;
6.将所述主显示器虚拟信息反馈至所述目标实例,以使得所述目标实例将所述目标显示器确定为所述主显示器,并将渲染出的画面显示在所述目标显示器。
7.另一方面,本技术实施例提供一种画面显示装置,所述装置包括:
8.模拟模块,用于在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,所述显示器信息获取请求由目标显示器对应的目标实例发出,所述目标显示器为主显示器或非主显示器;
9.反馈模块,用于将所述主显示器虚拟信息反馈至所述目标实例,以使得所述目标实例将所述目标显示器确定为所述主显示器,并将渲染出的画面显示在所述目标显示器。
10.另一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现上述的一种画面显示方法。
11.另一方面,本技术实施例提供了一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述的一种画面显示方法。
12.另一方面,本技术实施例提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述的一种画面显示方法。
13.本技术提供的画面显示方法,该方法通过模拟出主显示器虚拟信息迷惑目标实
例,使得所述目标实例将与之对应的目标显示器确定为主显示器,并将渲染出的画面显示在所述目标显示器,从而实现了不同显示器之间、不同实例之间的隔离。具体来说,这一方案可以使得目标实例只能看到与其对应的目标显示器,而无法感知到其它显示器的存在,从而避免在目标实例感知到其他显示器存在的情况下可能产生的各种异常、不工作的问题,从而可以突破并发性能瓶颈。
附图说明
14.为了更清楚地说明本技术实施例或相关技术中的技术方案和优点,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
15.图1是本说明书实施例提供的相关技术中多画面显示的流程示意图;
16.图2是本说明书实施例提供的相关技术中画面并发显示的负载分布示意图;
17.图3是本技术实施例提供的画面显示方法的一种可行的实施框架示意图;
18.图4是本技术实施例提供的一种画面显示方法的流程示意图;
19.图5是本技术实施例提供的本技术实施例中画面显示示意图;
20.图6是本技术实施例提供的画面显示效果对比示意图;
21.图7是本技术实施例提供的负载测试数据示意图;
22.图8是本技术实施例提供的本技术实施例中画面显示的逻辑示意图;
23.图9是本技术实施例提供的一种画面显示装置的框图;
24.图10是本技术实施例提供的模拟模块访问的显示器隔离装置示意图;
25.图11是本技术实施例提供的一种用于实现本技术实施例所提供的方法的设备的硬件结构示意图;
26.图12是本技术实施例提供的另一种用于实现本技术实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术实施例保护的范围。
28.需要说明的是,本技术实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术实施例的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.为了使本技术实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图
及实施例,对本技术实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术实施例,并不用于限定本技术实施例。
30.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。为了便于理解本技术实施例上述的技术方案及其产生的技术效果,本技术实施例首先对于相关专业名词进行解释:
31.智能交通系统(intelligent traffic system,its)又称智能运输系统(intelligent transportation system),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。
32.智能车路协同系统(intelligent vehicle infrastructure cooperative systems,ivics),简称车路协同系统,是智能交通系统(its)的一个发展方向。车路协同系统是采用先进的无线通信和新一代互联网等技术,全方位实施车车、车路动态实时信息交互,并在全时空动态交通信息采集与融合的基础上开展车辆主动安全控制和道路协同管理,充分实现人车路的有效协同,保证交通安全,提高通行效率,从而形成的安全、高效和环保的道路交通系统。
33.云游戏:是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给客户端。客户端的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以实现支持游戏运行。
34.应用程序编程接口:application programming interface,api。是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
35.显卡虚拟化:指通过相应的技术,将一张显卡提供给多个虚拟机(vm)使用的方案。该技术分为通过硬件和软件实现两种方式,其中,硬件实现的显卡虚拟化通常需要显卡厂商的技术支持。
36.虚拟机:virtual machine,vm。指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。vm需要运行在虚拟化平台上。也可称为guest机。
37.容器:container。容器技术有效地将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器。
38.图形处理器:graphics processing unit,gpu。又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。本技术实施例中gpu可以作为显卡。
39.pcie:peripheral component interconnect express,pci-express。是一种高速串行计算机扩展总线标准,pcie属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量等功能。
40.fps:画面每秒传输帧数,frame per second。fps是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。fps是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。
41.rgba:是代表red(红色)green(绿色)blue(蓝色)和alpha的色彩空间。
42.相关技术中可以提供多种进行画面显示的方案。当然,本技术实施例并不限定画面显示的应用场景,比如,可以在云游戏、云社区、云电商、智能驾驶等场景中进行画面显示。以云游戏为例,云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给客户端。客户端的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压缩能力就可以支持游戏运行。
43.在云游戏场景下,在服务器端,可以一个操作系统运行一个游戏实例,每个游戏实例可以对应于一个客户端,通过在服务器端运行该游戏实例,将显示出的画面压缩传输至客户端,从而使得客户端通过解压缩可以显示该画面。本技术实施例并不限定游戏实例,其可以基于虚拟机技术运行。
44.在一些实施例中,云游戏场景下,还可以为服务器端的一个操作系统配置多个显卡,运行多游戏实例方案。云游戏对运行环境的要求,在多显卡系统下,需要每个显卡连接一个显示器,即显卡需要与显示器构建一一映射。由于服务器的种种原因,大多是采用虚拟或模拟的方式提供虚拟显示器连接显卡。请参考图1,其示出相关技术中多画面显示的流程示意图。游戏或游戏引擎的行为,通常是先枚举主显示器的信息,该显示器的信息可以为显示器的宏观数量信息。在得到该宏观数量信息的情况下,获取服务器环境下的各个显示器,这些显示器可以是真实的或虚拟的显示器。具体来说,要获取到上述各个显示器的位置信息,将游戏窗口的位置设置在主显示器上,然后开始计算、渲染游戏画面,将该游戏画面输出到上述窗口。具体来说,每个游戏实例可以对应一个显示器(主显示器或非主显示器均可),由该显示器对应的显卡进行相关的计算和游戏画面的渲染,并且将渲染结果显示在主显示器的游戏窗口中。
45.在阐述上述云游戏的画面显示技术的前提下可知,云游戏服务器在多显卡多游戏实例并发场景下,由于游戏的种种行为,可能会产生如下缺陷:
46.首先,存在性能以及成本问题:多个游戏实例都把窗口设置到主显示器位置上,最终游戏画面输出到同一个显示器,导致与主显示器相连的gpu的pcie瓶颈,引发性能问题,或游戏并发上不去,成本增加。请参考图2,其示出相关技术中画面并发显示的负载分布示意图。gpu0、gpu1、gpu2、gpun分别为显卡,其中gpu0为主显示器对应的显卡。每个显卡可以为与之对应的游戏实例提供计算以及画面渲染的服务,但是最终渲染的画面只能在gpu0对应的主显示器中的窗口进行显示,这就导致gpu0处的负载偏高。举例来说,如果一个游戏实例的分辨率要求为1920*1080,帧率要求为60fps,rgba图形数据大小1920*1080*4*60/(1024*1024)=475mb,而pciegen3 x16理论传输速度16gb/s,这样的配置理论并发数量也就30左右,并发数量严重受限。
47.并且,可能存在兼容性问题,部分游戏会出现游戏无法启动,窗口位置异常等兼容性问题,不同的游戏实例在行为表现上会有差异。
48.为了实现显卡与显卡之间,实例与实例之间的彻底隔离,不仅实现画面渲染层面上的并发,还能够实现画面显示上的分离,避免将诸多画面显示在同一个主显示器中,从而打破并发瓶颈,并且避免出现兼容性问题,本技术实施例提供了一种画面显示方法。
49.本技术实施例可能涉及云技术。云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
50.本技术实施例可以应用于基于云技术提供的各种云应用。比如,医疗云。医疗云(medical cloud),是指在云计算、移动技术、多媒体、4g通信、大数据、以及物联网等新技术基础上,结合医疗技术,使用“云计算”来创建医疗健康服务云平台,实现了医疗资源的共享和医疗范围的扩大。因为云计算技术的运用于结合,医疗云提高医疗机构的效率,方便居民就医。像现在医院的预约挂号、医保等等都是云计算与医疗领域结合的产物,医疗云还具有数据安全、信息共享、动态扩展、布局全局的优势。
51.再比如,云物联。物联网(the internet of things,简称iot)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,采集相关装置声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。
52.再比如,云呼叫。云呼叫中心((cloud call center))是基于云计算技术而搭建的呼叫中心系统,企业无需购买任何软、硬件系统,只需具备人员、场地等基本条件,就可以快速拥有属于自己的呼叫中心,软硬件平台、通信资源、日常维护与服务由服务器商提供。具有建设周期短、投入少、风险低、部署灵活、系统容量伸缩性强、运营维护成本低等众多特点;无论是电话营销中心、客户服务中心,企业只需按需租用服务,便可建立一套功能全面、稳定、可靠、座席可分布全国各地,全国呼叫接入的呼叫中心系统。
53.再比如,私有云,公有云或混合云。私有云(private cloud)是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,一般还有云设备(iaas,infrastructure as a service,基础设施即服务)软件。公有云(public cloud)通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过internet使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。混合云(hybrid cloud)融合了公有云(public cloud)和私有云(private cloud),是近年来云计算的主要模式和发展方向。
54.再比如,云游戏。云游戏(cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对
有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
55.再比如,云会议。云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。
56.本技术实施例所提供的方法还可以涉及区块链,即本技术实施例提供的方法可以基于区块链实现,或者本技术实施例提供的方法中涉及到的数据可以基于区块链存储,或本技术实施例中提供的方法的执行主体可以位于区块链中。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
57.平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
58.请参阅图3,图3是本说明书实施例提供的画面显示方法的一种可行的实施框架示意图,如图3所示,该实施框架可以至少包括终端设备01、画面显示服务器02。其中,终端设备01可以为位于互联网中的设备,可以为用户提供各种可选的基于互联网的服务,该服务由本技术实施例中的客户端提供。终端设备01包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。本发明实施例的客户端可以提供各种场景下的应用,包括但不限于云技术、云游戏、云渲染、人工智能、智慧交通、辅助驾驶、视频媒体、智能社区、即时通信等。
59.画面显示服务器02通过与终端设备01交互为用户提供服务。具体来说,终端设备01可以向画面显示服务器02请求画面。这种情况下与上述终端设备01对应的、并且运行于画面显示服务器的目标实例可以发出显示器信息获取请求。在接收到显示器信息获取请求的情况下,画面显示服务器02模拟出主显示器虚拟信息,上述显示器信息获取请求由目标显示器对应的目标实例发出,上述目标显示器为主显示器或非主显示器。将上述主显示器虚拟信息反馈至上述目标实例,以使得上述目标实例将上述目标显示器确定为上述主显示器,并将渲染出的画面显示在上述目标显示器。目标实例将被显示出的画面进行压缩传输至终端设备,以使得终端设备通过解压缩的方式可以显示出上述画面。这样客户端无需具备画面计算或者画面渲染的能力,只需要具备基本的解压缩能力即可。
60.以下介绍本技术实施例的一种画面显示方法,本公开所涉及的信息可以为经用户授权或者经过各方充分授权的信息。
61.图4示出了本技术实施例提供的一种画面显示方法的流程示意图,本技术实施例提供了如实施例或流程图上述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方
式,不代表唯一的执行顺序。在实际中的系统、终端设备或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境),上述方法可以包括:
62.s101.在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,上述显示器信息获取请求由目标显示器对应的目标实例发出,上述目标显示器为主显示器或非主显示器。
63.在多实例场景下,每个实例可以被分配给一个显卡,由对应的显卡进行相关的计算或者画面渲染。通过为每个实例分配对应的显卡资源,使得各个实例之间计算或者画面渲染都可以各自独立的并发执行,互不影响。而每个显卡执行计算或者画面渲染的前提就是为其关联对应的显示器。本技术实施例并不对显卡关联的显示器进行限定,其可以为真实显示器或者虚拟显示器。本技术实施例中目标实例可以为运行在服务器中的任一实例。对于目标实例而言,服务器可以为其分配与之适配的目标显卡以及目标显示器,这一目标显示器可以是主显示器或者非主显示器。比如,服务器中配置了a、b、c、d四个显卡,各自分别对应a1、b1、c1、d1四个显示器,其中a1是主显示器,b1、c1、d1是非主显示器。显卡b可以与实例b-10关联,如果实例b-10为目标实例,则目标显示器为b1,这显然是非主显示器。如果显卡a可以与实例a-10关联,如果实例a-10为目标实例,则目标显示器为a1,这显然是主显示器。
64.目标实例可以与对应的客户端进行通信,响应于客户端的请求发出显示器信息获取请求。具体来说,客户端向对应的目标实例请求画面,则上述目标实例即可发出显示器信息获取请求。
65.在一个实施例中,上述显示器信息获取请求包括显示器数量获取请求,上述主显示器虚拟信息包括显示器数量或主显示器标识特征,上述在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,包括:在接收到上述显示器数量获取请求的情况下,访问显示器隔离装置以获取上述显示器隔离装置输出的上述显示器数量或上述主显示器标识特征,上述显示器隔离装置用于输出在将上述目标实例对应的画面显示在主显示器的情况下所需反馈的显示器数量,或输出用于表征上述目标显示器为主显示器的主显示器标识特征。
66.具体来说,上述将上述目标实例对应的画面传输至主显示器的情况,包括:将上述目标实例对应的画面传输至主显示器,并且上述主显示器为唯一显示器的情况。
67.本技术实施例并不限定反馈的显示器数量或主显示器特征标识,只需要通过模拟出的显示器数量或主显示器特征标识达到迷惑目标实例的目的即可。通过迷惑目标实例,使其认为与之对应的目标显示器就是主显示器,即可达到迷惑目的。比如,如果反馈的显示器数量为1,并且主显示器标识特征表征当前与目标实例关联的显示器为主显示器,则目标实例即可认为当前服务器的环境中只存在一个显示器,而这个显示器是主显示器,并且目标实例已知当前服务器的环境中存在目标显示器,则目标实例必然认为目标显示器就是主显示器,从而达到了迷惑目的。
68.在一个实施例中,上述显示器信息获取请求包括主显示器位置特征请求,上述主显示器虚拟信息包括主显示器位置特征,上述在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,包括:在接收到上述主显示器位置特征请求的情况下,访问显示器
隔离装置以获取上述显示器隔离装置输出的主显示器位置特征,上述显示器隔离装置用于确定在将上述目标实例对应的画面传输至主显示器的情况下所需反馈的上述主显示器位置特征。具体来说,上述将上述目标实例对应的画面传输至主显示器的情况,包括:将上述目标实例对应的画面传输至主显示器,并且上述主显示器为唯一显示器的情况。
69.本技术实施例并不限定反馈的主显示器位置特征,只需要模拟出的主显示器位置特征达到迷惑目标实例的目的即可。通过迷惑目标实例,使其认为与之对应的目标显示器就是主显示器,即可达到迷惑目的。比如,如果反馈的主显示器位置特征是服务器环境中只有一个主显示器并且不存在其它显示器的情况下主显示器的位置,则目标实例即可认为当前服务器的环境中只存在一个显示器,而这个显示器是主显示器,并且目标实例已知当前服务器的环境中存在目标显示器,则目标实例必然认为目标显示器就是主显示器,从而达到了迷惑目的。
70.上述两个实施例进行了主显示器标识模拟、位置模拟并且模拟了显示器数量,当然本技术实施例不限定其它的迷惑方式,这取决于目标实例所需要的获取到的有关主显示器的信息都具体是哪些,本技术实施例中只需要通过模拟出主显示器虚拟信息达到迷惑目的即可,使得目标实例误认为服务器环境中只存在一个显示器,并且这个显示器是主显示器。
71.以云游戏为例,通常云游戏通过下述步骤获取显示器信息:
72.首先,获取显示器数量,比如目标游戏实例可以通过api:getsystemmetrics(sm_cmonitors),enumdisplaymonitors/enumdisplaydevices获取显示器数量,这种情况下通过劫持该api即可拦截该api调用,进而访问显示器隔离装置获取显示器数量,实际每次返回1个即可,这就使得目标实例无法获知真正的服务器环境的显示器的相关数据,从而被迷惑。
73.第二,在获取显示器数量之后,目标游戏实例可能使用api:enumdisplaysetting获取显示器信息,这种情况下可以拦截该api,然后通过访问显示器隔离装置,获取对应的信息,如:是否主显示器,坐标,分辨率等。隔离装置会把每个显示器的坐标都虚拟成(0,0),并虚拟每个显示器都是主显示器。并不会真正的去枚举服务器中的显示器信息。
74.本技术实施例中云游戏场景下的显示器隔离装置需要具备以下关键的能力:
75.在云游戏获取获取显示器总数时,只通知其只有1个,当然,实际情况下爱服务器环境的显示器数量很可能大于1,这取决于服务器环境中显卡和显示器的真实数量。
76.在云游戏获取当前显示器是否为主显示器时,只通知其是主显示器,即反馈主服务器的标识特征,使得其将与之对应的显示器误认为是主显示器。
77.在云游戏获取当前显示器坐标信息时,通知其坐标信息为(0,0),真实坐标信息并非(0,0)。
78.当然,其他相关的主显示器特性都可以根据需要进行对应的模拟,从而达到迷惑目标实例的目的。
79.通过执行上述步骤,可以使得目标实例只能够看到自己所运行显卡的显示器,并认为其是主显示器,而并不知道当前的服务器环境中还存在其它显示器,也自然不会与其它显示器产生交互,从而通过迷惑目标实例的方式实现了显示器之间的彻底隔离。
80.s102.将上述主显示器虚拟信息反馈至上述目标实例,以使得上述目标实例将上
述目标显示器确定为上述主显示器,并将渲染出的画面显示在上述目标显示器。
81.目标实例只会向主显示器发送渲染好的数据,并触发主显示器显示其渲染好的画面,而目标实例将其对应的目标显示器误认为主显示器,这样就可以使得目标实例只能够将渲染好的画面在目标显示器显示,而不会将这些画面传输并显示在真实的主显示器中,实现了显示器的彻底隔离。
82.在云游戏场景中服务器可以告知运行于其中的目标实例只存在一个显示器、该显示器是主显示器并且告知该显示器的位置、属性信息等,从而迷惑目标实例,使其误认为与之关联的目标显示器就是主显示器从而向其发送渲染好的画面。
83.请参考图5,其示出本技术实施例中画面显示示意图,其中gpu0、gpu1、gpu2、gpun表示各个显卡,每个显卡有与之对应的显示器,其中primiary display为主显示器,其它均是非主显示器。不论是主显示器,还是非主显示器,其对应的实例在进行画面显示时通过执行本技术实施例中的方法都会被迷惑,从而认为该实例对应的显示器是唯一的主显示器,并且不存在其它的显示器,从而将渲染好的画面显示在该实例对应的显示器上,而无需像图2被传输到真正的主显示器进行显示,从而实现了负载平衡,避免真正的主显示器负载过高,对比图2和图5可以明显发现本技术实施例与相关技术在显示效果上的区别。每个gpu上运行的游戏实例,只和当前的gpu所连接虚拟显示器相关,不会引起与主显示器相连的gpu的pcie负载过重问题,各个gpu和虚拟显示器彻底独立。
84.本公开实施例中,上述目标实例在上述目标显示器对应的目标显卡上进行画面渲染,将渲染得到的画面显示在根据上述主显示器虚拟信息确定的显示器上。本公开实施例中,根据上述主显示器虚拟信息确定的显示器就是与目标实例关联的目标显示器,因此,可以在目标实例关联的显卡中进行画面计算和渲染后,直接在与之关联的目标显示器上显示该画面,而无需将该画面传输至真正的主显示器进行显示,从而提升了显示速度,实现了显示器的画面隔离,降低了真正的主显示器的负载。
85.具体来说,上述目标实例根据上述主显示器虚拟信息,将上述目标显示器确定为主显示器。在目标显示器中设置上述画面对应的窗口位置,并将上述画面传输至上述目标显示器的上述窗口位置。
86.请参考图6,其示出画面显示效果对比示意图。图6上图是相关技术中的画面显示效果示意图,显而易见,各个实例对应的画面均被显示在主显示器上,虽然画面可以在各个显卡中被并发的渲染,但是最终都需要被传输至主显示器中的窗口进行显示。这会导致与主显示器相连的pcie带宽负载很重。请参考图7,其示出负载测试数据示意图。图7是一个pcie3.0 x8版本的一个测试数据,理论pcie双向带宽8gb/s,实际最高只有6gb/s,现在占用已经5gb/s以上,这充分说明了相关技术对于带宽占用的瓶颈现象。
87.图6下图是本技术实施例中画面显示效果示意图。显而易见,各个实例渲染得到的画面被显示在与该实例对应的显示器中,而无需将各个画面都传输至主显示器中进行显示。实现了显示器之间的隔离。具体来说,这是本技术实施例中根据虚拟显示器的实现原理,所做到的多显卡-多显示器场景下,显卡与显卡之间,不同客户端、服务器中对应于不同客户端的不同实例之间的彻底隔离。
88.请参考图8,其示出本技术实施例中画面显示的逻辑示意图。在进行画面显示之前获取到显示器信息获取请求,截取该请求之后可以访问显示器隔离装置,基于访问结果返
回显示器信息,而该显示器信息可以迷惑目标实例,使得目标实例将与之对应的目标显示器误认为是主显示器,在该目标显示器中设置窗口位置,并将渲染好的画面显示在该目标显示器的窗口位置处。进一步地,显示出来的画面可以被压缩传输至客户端,使得客户端也可以显示出该画面。
89.本发明提供一种画面显示方案,通过模拟出主显示器虚拟信息迷惑目标实例,使得上述目标实例将与之对应的目标显示器确定为主显示器,并将渲染出的画面显示在上述目标显示器,从而实现了不同显示器之间、不同实例之间的隔离。具体来说,这一方案可以使得目标实例只能看到与其对应的目标显示器,而无法感知到其它显示器的存在,从而避免在目标实例感知到其他显示器存在的情况下可能产生的各种异常、不工作的问题,从而可以突破并发性能瓶颈。
90.以云游戏为例,本发明实施例可以做到显示器的彻底隔离,游戏输出的数据到显示器时,数据只经过自己的pcie,不会引起某一显卡pcie带宽瓶颈问题,可以确保高性能和高并发数量。在云游戏环境下,游戏像运行在本地一样,兼容性好,支持更多的游戏。当然,本发明实施例不限制应用场景,不仅适用于云游戏场景,也适用于传统游戏模式的多显卡多显示器场景。本发明实施例也不限操作系统,不仅windows操作系统,同样可以支持linux操作系统或其他多显卡多显示器平台。
91.请参考图9,其示出本实施例中一种画面显示装置的框图,上述装置包括:
92.模拟模块101,用于在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,上述显示器信息获取请求由目标显示器对应的目标实例发出,上述目标显示器为主显示器或非主显示器;
93.反馈模块102,用于将上述主显示器虚拟信息反馈至上述目标实例,以使得上述目标实例将上述目标显示器确定为上述主显示器,并将渲染出的画面显示在上述目标显示器。
94.在一个实施例中,上述显示器信息获取请求包括显示器数量获取请求,上述主显示器虚拟信息包括显示器数量或主显示器标识特征,上述模拟模块用于执行下述操作:
95.在接收到上述显示器数量获取请求的情况下,访问显示器隔离装置以获取上述显示器隔离装置输出的上述显示器数量或上述主显示器标识特征,上述显示器隔离装置用于输出在将上述目标实例对应的画面显示在主显示器的情况下所需反馈的显示器数量,或输出用于表征上述目标显示器为主显示器的主显示器标识特征。
96.在一个实施例中,上述显示器信息获取请求包括主显示器位置特征请求,上述主显示器虚拟信息包括主显示器位置特征,上述模拟模块用于执行下述操作:
97.在接收到上述主显示器位置特征请求的情况下,访问显示器隔离装置以获取上述显示器隔离装置输出的主显示器位置特征,上述显示器隔离装置用于确定在将上述目标实例对应的画面传输至主显示器的情况下所需反馈的上述主显示器位置特征。
98.请参考图10,其示出模拟模块访问的显示器隔离装置示意图。其包括主显示器特征模拟模块100和显示器位置信息模拟模块200。其中,主显示器特征模拟模块100用于输出的上述显示器数量或上述主显示器标识特征。显示器位置信息模拟模块200用于输出上述主显示器位置特征。
99.在一个实施例中,上述将上述目标实例对应的画面传输至主显示器的情况,包括:
将上述目标实例对应的画面传输至主显示器,并且上述主显示器为唯一显示器的情况。
100.在一个实施例中,上述目标实例用于在上述目标显示器对应的目标显卡上进行画面渲染,将渲染得到的画面显示在根据上述主显示器虚拟信息确定的显示器上。
101.在一个实施例中,上述目标实例还用于执行下述操作:
102.上述目标实例根据上述主显示器虚拟信息,将上述目标显示器确定为主显示器;
103.在目标显示器中设置上述画面对应的窗口位置,并将上述画面传输至上述目标显示器的上述窗口位置。
104.本技术装置实施例与方法实施例基于相同发明构思,在此不再赘述。
105.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一种画面显示方法。
106.本技术实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质可以存储有多条指令。上述指令可以适于由处理器加载并执行本技术实施例上述的一种画面显示方法。
107.在一个实施例中,上述一种画面显示方法,包括:
108.在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,上述显示器信息获取请求由目标显示器对应的目标实例发出,上述目标显示器为主显示器或非主显示器;
109.将上述主显示器虚拟信息反馈至上述目标实例,以使得上述目标实例将上述目标显示器确定为上述主显示器,并将渲染出的画面显示在上述目标显示器。
110.在一个实施例中,上述显示器信息获取请求包括显示器数量获取请求,上述主显示器虚拟信息包括显示器数量或主显示器标识特征,上述在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,包括:
111.在接收到上述显示器数量获取请求的情况下,访问显示器隔离装置以获取上述显示器隔离装置输出的上述显示器数量或上述主显示器标识特征,上述显示器隔离装置用于输出在将上述目标实例对应的画面显示在主显示器的情况下所需反馈的显示器数量,或输出用于表征上述目标显示器为主显示器的主显示器标识特征。
112.在一个实施例中,上述显示器信息获取请求包括主显示器位置特征请求,上述主显示器虚拟信息包括主显示器位置特征,上述在接收到显示器信息获取请求的情况下,模拟出主显示器虚拟信息,包括:
113.在接收到上述主显示器位置特征请求的情况下,访问显示器隔离装置以获取上述显示器隔离装置输出的主显示器位置特征,上述显示器隔离装置用于确定在将上述目标实例对应的画面传输至主显示器的情况下所需反馈的上述主显示器位置特征。
114.在一个实施例中,上述将上述目标实例对应的画面传输至主显示器的情况,包括:将上述目标实例对应的画面传输至主显示器,并且上述主显示器为唯一显示器的情况。
115.在一个实施例中,上述方法还包括;
116.上述目标实例在上述目标显示器对应的目标显卡上进行画面渲染,将渲染得到的画面显示在根据上述主显示器虚拟信息确定的显示器上。
117.在一个实施例中,上述将渲染得到的画面显示在根据上述主显示器虚拟信息确定的显示器上,包括:
118.上述目标实例根据上述主显示器虚拟信息,将上述目标显示器确定为主显示器;
119.在目标显示器中设置上述画面对应的窗口位置,并将上述画面传输至上述目标显示器的上述窗口位置。
120.进一步地,图11示出了一种用于实现本技术实施例所提供的方法的设备的硬件结构示意图,上述设备可以参与构成或包含本技术实施例所提供的装置或系统。如图11所示,设备10可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
121.应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
122.存储器104可用于存储应用软件的软件程序以及模块,如本技术实施例中上述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种画面显示方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
123.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。
124.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
125.图12示出根据本公开实施例的另一种电子设备的框图。例如,电子设备1900可以被提供为一服务器。参照图12,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
126.电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源
管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。
127.在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
128.需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本技术实施例特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
129.本技术实施例中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
130.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
131.以上上述仅为本技术实施例的较佳实施例,并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1