CN110227265B - 一种计算机图形资源共享方法及装置 - Google Patents

一种计算机图形资源共享方法及装置 Download PDF

Info

Publication number
CN110227265B
CN110227265B CN201910525871.8A CN201910525871A CN110227265B CN 110227265 B CN110227265 B CN 110227265B CN 201910525871 A CN201910525871 A CN 201910525871A CN 110227265 B CN110227265 B CN 110227265B
Authority
CN
China
Prior art keywords
shared object
user
copy
shared
reference count
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
CN201910525871.8A
Other languages
English (en)
Other versions
CN110227265A (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.)
Xi'an Xiaoyu Network Technology Co.,Ltd.
Original Assignee
Guiyang Gloud Technology 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 Guiyang Gloud Technology Co ltd filed Critical Guiyang Gloud Technology Co ltd
Priority to CN201910525871.8A priority Critical patent/CN110227265B/zh
Publication of CN110227265A publication Critical patent/CN110227265A/zh
Application granted granted Critical
Publication of CN110227265B publication Critical patent/CN110227265B/zh
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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种计算机图形资源共享方法及装置,通过获取用户需求;遍历计算机图形资源共享对象集标识列表中的标识;如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;在共享对象被声明放弃使用权时引用计数减1,只在引用者全部放弃使用,也即引用计数归0时对具名共享对象进行销毁。通过上述执行步骤,实现对象的共享使用,使用完成后销毁该对象,释放显存空间,避免资源浪费。

Description

一种计算机图形资源共享方法及装置
技术领域
本申请涉及计算机图形技术领域,尤其涉及一种计算机图形资源共享方法及装置。
背景技术
计算机图形学在现代应用广泛,无论是3D视频游戏、VR、AR、电影特效渲染,还是云计算领域的图形计算,都发展迅猛。在发展中不可避免地遇到硬件资源瓶颈问题。
对于在同一计算节点对大量图形进行计算时,使用的图形资源可能存在重复,例如使用相同的顶点模型、相同的位图、相同的对象动画序列或相同的图像处理脚本等。但是现有技术在同一计算节点上运行多个计算过程时,每个计算过程分配和使用各自存储的图形资源,互相没有交集,比如同一台服务器上运行多个同一3D视频游戏程序时,不同的游戏进程,即使游戏中进度处于同一关卡下的场景,它们也使用各自独立的一份图形存储资源,包括虚拟世界中的各种模型、贴图资源等,从而占用多份显存空间,因此很容易出现显存捉襟见肘的局面。
发明内容
本申请提供了一种计算机图形资源共享方法及装置,以解决现有对图形资源不能共享使用,导致资源浪费,显存空间不够使用的问题。
第一方面,为实现上述目的,本申请提供了一种计算机图形资源共享方法,所述方法包括:
获取用户需求,所述用户需求中包括需求标识;
遍历计算机图形资源共享对象集标识列表中的标识;
如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1。
优选地,所述需求标识包括以下至少之一:名称、ID、索引。
优选地,如果所述共享对象集列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,所述第一共享对象的引用计数加1之后,还包括:
接收用户使用所述第一共享对象结束的指令,将所述第一共享对象的引用计数减1;
如果所述第一共享对象的引用计数为零,则销毁所述第一共享对象。
优选地,所述如果所述共享对象集列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,所述第一共享对象的引用计数加1之后,还包括:
接收用户修改所述第一共享对象的需求指令;
复制所述第一共享对象,获取第一共享对象副本;
发送所述第一共享对象副本的句柄给用户;
接收到用户使用所述第一共享对象副本结束的指令,销毁所述第一共享对象副本。
优选地,所述接收用户修改所述第一共享对象的需求指令之后,还包括:
在所述共享对象集中复制所述第一共享对象,获取第一共享对象副本,将所述第一共享对象副本对应的标识加入所述共享对象集标识列表中,将所述第一共享对象副本的引用计数加1;
发送所述第一共享对象副本的句柄给用户;
接收到用户使用所述第一共享对象副本结束的指令,将所述第一共享对象副本的引用计数减1。
优选地,所述共享对象集列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,所述第一共享对象的引用计数加1之后,还包括:
接收用户修改所述第一共享对象的部分区域的需求指令;
将所述第一共享对象分割为若干区域;
根据用户需求建立需要修改区域的副本;
发送所述修改区域的副本的句柄给用户;
接收用户使用所述修改区域的副本结束的指令,销毁所述修改区域的副本。
优选地,所述将所述第一共享对象分割为若干区域之后,还包括:
在所述共享对象集中根据用户需求建立需要修改区域的副本,将所述修改区域的副本对应的标识加入所述共享对象集标识列表中,所述修改区域的副本的引用计数加1;
发送所述修改区域的副本的句柄给用户;
接收用户使用所述修改区域的副本结束的指令,将所述修改区域的副本的引用计数减1。
优选地,所述的计算机图形资源共享方法还包括:
如果所述共享对象集标识列表中不存在与所述需求标识相匹配的标识,则根据所述用户需求创建第一对象,确定所述第一对象是否共享;
发送所述第一对象的句柄给用户;
接收到用户使用所述第一对象结束的指令,销毁所述第一对象。
优选地,所述的计算机图形资源共享方法还包括:
如果所述共享对象集标识列表中不存在与所述需求标识相匹配的标识如果所述需求标识与所述共享对象集标识列表中的标识不匹配,则根据所述用户需求创建第一对象,确定所述第一对象是否共享;
所述共享对象集标识列表中添加所述第一对象的标识,所述第一对象的引用计数加1;
发送所述第一对象的句柄给用户;
接收用户使用所述第一对象结束的指令,所述第一对象的引用计数减1。
第二方面,本申请还提供一种计算机图形资源共享装置,所述装置包括:
用户需求获取模块,用于获取用户需求,所述用户需求中包括需求标识;
判断模块,用于遍历共享对象集标识列表中的标识,判断所述需求标识与所述共享对象集标识列表中的标识是否相匹配;
共享模块,用于如果所述需求标识与所述共享对象集标识列表中的标识相匹配,则发送所述需求标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;
创建模块,用于如果所述需求标识与所述共享对象集标识列表中的标识不匹配,则根据所述用户需求创建第一对象,确定所述第一对象是否共享。
第三方面,为实现上述目的,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项计算机图形资源共享方法的步骤。
第四方面,为实现上述目的,本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项计算机图形资源共享方法的步骤。
由以上技术方案可见,本申请实施例提供的一种计算机图形资源共享方法及装置,通过获取用户需求;遍历计算机图形资源共享对象集标识列表中的标识;如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;在共享对象被声明放弃使用权时递减引用计数,只在引用者全部放弃使用,也即引用计数归0时对具名共享对象进行销毁。通过上述执行步骤,实现对象的共享使用,使用完成后销毁该对象,释放显存空间,避免资源浪费。本申请通过合理化分配和共享计算机图形资源来降低图像运算和绘制时对显示相关存储资源使用率,实现对资源的管理统筹,合理化分配和共享显示资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的计算机图形资源共享方法的流程示意图;
图2为本申请实施例提供的计算机图形资源共享方法的步骤S300的第一个实施例的流程图;
图3为本申请实施例提供的步骤S300的第一个实施例对应的实际情况的流程图;
图4为本申请实施例提供的计算机图形资源共享方法的步骤S300的第二个实施例的流程图;
图5为本申请实施例提供的计算机图形资源共享方法的步骤S300的第三个实施例的流程图;
图6为本申请实施例提供的步骤S300的第三个实施例对应的实际情况的流程图;
图7为本申请实施例提供的计算机图形资源共享方法的步骤S400的一个实施例的流程图;
图8为本申请实施例提供的计算机图形资源共享装置的结构示意图。
具体实施方式
下面通过对本申请进行详细说明,本申请的特点和优点将随着这些说明而变得更为清楚、明确。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”、“前”、“后”、“左”和“右”等指示的方位或位置关系为基于本申请工作状态下的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”和“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性。
下面结合附图,详细介绍本申请的具体实施例。
显存:显示内存,即显示卡专用内存,显存是用来存储要处理的图形信息的部件。本申请中提到的显存是指物理显存在实际运行阶段可以通过逻辑地址访问的存放图形信息的逻辑地址空间。
对象:处于运行期间的数据,资源和操作的集合实例。例如一个处于运行期间的进程可以称为是一个进程对象,它包含了进程正在执行的代码、包含的数据、其访问的磁盘或内存等存储资源、cpu时间片等计算资源及对内部数据和外部数据的处理等操作。
显存管理对象:对存放在显示存储空间内需要共享的对象进行名称区分和管理,不同的计算过程(比如游戏进程)用户可以根据名称向管理对象申请对共享对象进行创建、查找、获取使用权或放弃使用权。显存管理对象可以为内核对象、进程、服务等。
句柄:用于引用一个具体对象的索引对象,可以是一个整数索引、一个对象或数据的存储空间地址,也可以是一个用来查找相关内容的字符串。本申请中句柄指使用显存的对象的句柄。
图1为本申请实施例提供的一种计算机图形资源共享方法的流程示意图,如图1所示,所述方法包括步骤S100至S400。
S100:获取用户需求,所述用户需求中包括需求标识。
在S100的步骤中,所述需求标识包括以下至少之一:名称、ID、索引。优选地,所述需求标识为名称,因为名称具有一定的复杂度,容易确立唯一性。例如游戏中的某种战车的表面贴图可以被命名为“战车1的迷彩皮肤1”,某种男性角色的面部贴图可以被命名为“男性NPC角色2的面部皮肤2”,又或者3D模型的数据比如“奥迪A4车身框架模型”等。
S200:遍历计算机图形资源共享对象集标识列表中的标识。
显存用来保存3D模型的坐标点数据、3D模型使用的贴图、材质相关的位图等,使用显存的对象会被分配有适当的显存资源,对象使用者可以在不同的计算进程,例如不同的游戏进程中向显存管理对象申请查找、创建、使用或放弃使用相应的对象。
显存内的对象可根据能否被共享使用分类为共享对象和非共享对象,也可根据是否具有名称而分类为具名对象和非具名对象。其中具名对象可以为共享对象或非共享对象,具名的共享对象和非共享对象即便同名,也被分配到不同的显存管理分组下,所以不会产生名称冲突。由于不具名对象不可能被通过名称查找,也不能被共享,故不具名对象与非共享对象可能在一个显存管理分组下面,也可以分为不同的分组进行管理。
为了实现使用者对计算机图形资源的共享使用,获取共享对象对应的标识,形成共享对象集标识列表,获取用户需求后遍历计算机图形资源共享对象集标识列表中的标识,根据用户需求标识是否与所述共享对象集列表的标识是否相互匹配,判断是否有对象可共享使用。
S300:如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1。
当对象使用者向显存管理对象申请具名的共享对象时,在所述共享对象集查询是否已经存在同名对象,如果存在,对已存在具名的共享对象的引用计数进行递增,并将具名的共享对象对应的句柄返回给使用者,使用者根据句柄对具名的共享对象进行相关操作。
在其中一个实施例中,请参考图2,如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1,之后还需执行以下步骤:
S310:接收用户使用所述第一共享对象结束的指令,将所述第一共享对象的引用计数减1。
S311:如果所述第一共享对象的引用计数为0,则销毁所述第一共享对象。
具体实施时,参考图3,例如有第一共享对象、第二共享对象和第三共享对象,游戏A进程1和游戏C进程1均使用第一共享对象,所以第一共享对象的引用计数为2;游戏B进程1、游戏B进程2和游戏C进程1均使用第二共享对象,所以第二共享对象的引用计数为3;游戏C进程1使用第三共享对象,所以第三共享对象的引用计数为1。以所述第一共享对象为例,如果游戏C进程1使用所述第一共享对象结束后,显存管理对象接收游戏C进程1使用所述第一共享对象结束的指令,根据所述第一共享对象对应的句柄或名称找到所述第一共享对象,将所述第一共享对象的引用计数减1,此时所述第一共享对象的引用计数为1。当游戏进程A进程1使用所述第一共享对象结束后,显存接收游戏进程A进程1使用所述第一共享对象结束的指令,将所述第一共享对象的引用计数再减1,此时所述第一共享对象的引用计数为0,说明已无使用者再需使用所述第一共享对象,此时显存管理对象将所述第一共享对象所使用的显存释放,并将所述第一共享对象销毁。
由于共享对象可供多个使用者使用,使用者对其的操作应该为不会对其他使用者产生非预期影响的操作,例如进行只读操作而不进行写操作,所述只读操作指读取数据,用现有数据绘制图像等不会对数据进行修改的操作,所述写操作指坐标变换、颜色变换、抹除数据等对数据进行修改的操作。
在上述实施例或其他实施例中,显存管理对象对具名的共享对象被使用情况进行跟踪,每个被使用的具名的共享对象对应一个引用计数。在共享对象被获取使用权时引用计数加1,在共享对象被声明放弃使用权时引用计数减1,只在引用者全部放弃使用,也即引用计数归0时对具名共享对象进行销毁。通过上述执行步骤,实现对象的共享使用,使用完成后销毁该对象,释放显存空间,避免资源浪费。
在另一个实施例中,请参考图4,如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1,之后还需执行以下步骤:
S320:接收用户修改所述第一共享对象的需求指令;所述需求指令包括是否共享修改所述第一共享对象后获取的对象。
S321:如果不共享,复制所述第一共享对象,获取第一共享对象副本,将所述第一共享对象的引用计数减1。
S322:发送所述第一共享对象副本的句柄给用户,用户根据所述第一共享对象副本的句柄操作修改所述第一共享对象副本并使用。
S323:接收到用户使用所述第一共享对象副本结束的指令,销毁所述第一共享对象副本。
S324:如果共享,在所述共享对象集中复制所述第一共享对象,获取第一共享对象副本,将所述第一共享对象副本对应的标识加入所述共享对象集标识列表中,将所述第一共享对象副本的引用计数加1,所述第一共享对象的引用计数减1。
S325:发送所述第一共享对象副本的句柄给用户,用户根据所述第一共享对象副本的句柄操作修改所述第一共享对象副本并使用。
S326:接收到用户使用所述第一共享对象副本结束的指令,将所述第一共享对象副本的引用计数减1。
在步骤S324中,所述第一共享对象副本直接在所述共享对象集中创建,并将所述第一共享对象副本对应的标识加入所述共享对象集标识列表中,以便供其他使用者共享。另外,在此步骤中,获取第一共享对象副本后先将所述第一共享对象副本的引用计数加1,目的是防止所述第一共享对象副本的引用计数变为零而提前销毁。例如如果进程1创建了名称为A的共享对象,但此时引用计数没有马上递增,进程2申请了共享对象A的使用,并且很快放弃使用权,此时共享对象A的引用计数-1后就为0了,共享对象A就被提前销毁,影响其他用户的正常使用。
在步骤S326中,如果将所述第一共享对象副本的引用计数减1后所述第一共享对象副本的引用计数为0,则将所述第一共享对象副本所使用的显存释放,并将所述第一共享对象副本销毁。
在此实施例中,如果用户需要对使用的所述第一共享对象的数据进行修改,可以在首次需要修改所述第一共享对象时,对整个所述第一共享对象进行复制创建,获取第一共享对象副本,后续操作都改为对所述第一共享对象副本进行。
另外在获取第一共享对象副本后,任何时候确认用户不再使用所述第一共享对象则对其的引用计数减1,在此不作具体限定。如果所述第一共享对象的引用计数为0,则将所述第一共享对象所使用的显存释放,并将所述第一共享对象销毁。
特别地,如果所述第一共享对象副本仍为共享对象,应确保在对所述第一共享对象副本修改完成后才有其他使用者访问该副本对象。
在又一个实施例中,请参考图5,如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1,之后还需执行以下步骤:
S330:接收用户修改所述第一共享对象的部分区域的需求指令;所述需求指令包括是否共享修改所述第一共享对象的部分区域后获取的对象。
S331:将所述第一共享对象分割为若干区域。
S332:如果不共享,根据用户需求建立需要修改区域的副本。
S333:发送所述修改区域的副本的句柄给用户,用户根据所述修改区域的副本的句柄操作修改所述修改区域的副本并使用。
S334:接收用户使用所述修改区域的副本结束的指令,销毁所述修改区域的副本。如果用户不再使用所述第一共享对象,则所述第一共享对象的引用计数减1。如果所述第一共享对象的引用计数为0,则将所述第一共享对象所使用的显存释放,并将所述第一共享对象销毁。
S335:如果共享,在所述共享对象集中根据用户需求建立需要修改区域的副本,将所述修改区域的副本对应的标识加入所述共享对象集标识列表中,所述修改区域的副本的引用计数加1。
S336:发送所述修改区域的副本的句柄给用户,用户根据所述修改区域的副本的句柄操作修改所述修改区域的副本并使用。
S337:接收用户使用所述修改区域的副本结束的指令,将所述修改区域的副本的引用计数减1。如果用户不再使用所述第一共享对象,则所述第一共享对象的引用计数减1。
在步骤S335中,所述第一共享对象副本直接在所述共享对象集中创建,并将所述第一共享对象副本对应的标识加入所述共享对象集标识列表中,供其他使用者共享。
在步骤S337中,如果所述修改区域的副本的引用计数减1后所述修改区域的副本的引用计数为0,则将所述修改区域的副本所使用的显存释放,并将所述修改区域的副本销毁。如果所述第一共享对象的引用计数减1后所述第一共享对象的引用计数为0,则将所述第一共享对象所使用的显存释放,并将所述第一共享对象销毁。
在此实施例中,如果用户需要对使用的所述第一共享对象的数据进行修改,可以在首次需要修改所述第一共享对象时,将所述第一共享对象的局部数据进行复制创建,则后续对于所述第一共享对象的被复制区域的操作都改为对所述修改区域的副本的操作。
具体实施时,不同的计算过程需要部分地改变所述第一共享对象的局部数据时,可以先对所述第一共享对象进行逻辑上的区域划分,则上述计算过程可以对需要修改区域提前创建副本,也可以在首次对所述第一共享对象的局部数据有修改需求时,根据用户需求建立需要修改区域的副本。本实施例中创建所述修改区域的副本,但是不放弃对整个所述第一共享对象的使用权,所以操作过程中所述第一共享对象引用计数不做改变。
例如,参考图6所示,当所述第一共享对象的使用者,首次遇到需要对所述第一共享对象局部数据进行修改时,将所述第一共享对象分割为若干区域br1、br2、br3…、brN,根据用户需求建立需要修改区域的副本,例如游戏A进程1需要修改br3区域,游戏C进程1需要修改br1区域,则需要复制br3、br1区域,得到对应的bo3、bo1区域。在所述bo3区域副本和所述bo1区域副本复制生成后,用户继续保持对所述第一共享对象的使用权,直到确认不再使用时为止。而后续对所述br3、br1区域的操作,都对应施加在所述bo3区域副本和所述bo1区域副本上,而不再使用所述br3、br1区域。特别地,如果所述bo3区域副本或所述bo1区域副本仍为共享对象,应确保在对所述bo3区域副本或所述bo1区域副本修改完成后才有其他使用者访问该副本对象。进一步地,创建后需将所述修改区域的副本的引用计数加1,防止所述修改区域的副本的引用计数加1的引用计数变为零而提前销毁。
在所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识后,还有存在一种情况,即存放在显存内的对象不打算参与共享时,可以要求创建新的对象,或者要求直接从已存在原具名共享对象复制一个对象副本使用。对于新的对象或对象副本不跟踪使用情况,使用完成后对其销毁,从而释放显存空间。
S400:如果所述共享对象集标识列表中不存在与所述需求标识相匹配的标识,则根据所述用户需求创建第一对象,确定所述第一对象是否共享。
S410:如果不共享,发送所述第一对象的句柄给用户。
S411:接收到用户使用所述第一对象结束的指令后销毁所述第一对象。
S420:如果共享,在所述共享对象集中创建第一对象后,在所述共享对象集标识列表中添加所述第一对象的标识,所述第一对象的引用计数加1。
S421:发送所述第一对象的句柄给用户。
S422:接收用户使用所述第一对象结束的指令,所述第一对象的引用计数减1。
参考图7,在步骤S400中,具体包括两种情况,一种是对所创建的第二对象使用后不共享,则将其销毁释放显存空间。另一种情况是对所创建的第二对象使用后有其他用户可以共享,则对应执行步骤S420至步骤S422。当所述第一对象的引用计数为0时,销毁所述第一对象,释放占用的显存空间。
与本申请提供的一种计算机图形资源共享方法实施例相对应,本申请还提供一种计算机图形资源共享装置的实施例。参考图8,为本申请实施例提供的一种计算机图形资源共享装置的结构示意图,所述装置包括:
用户需求获取模块100,用于获取用户需求,所述用户需求中包括需求标识;
判断模块200,用于遍历共享对象集标识列表中的标识,判断所述需求标识与所述共享对象集标识列表中的标识是否相匹配;
共享模块300,用于如果所述需求标识与所述共享对象集标识列表中的标识相匹配,则发送所述需求标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;
创建模块400,用于如果所述需求标识与所述共享对象集标识列表中的标识不匹配,则根据所述用户需求创建第一对象,确定所述第一对象是否共享。
根据上述计算机图形资源共享方法,通过获取用户需求;遍历计算机图形资源共享对象集标识列表中的标识;如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;在共享对象被声明放弃使用权时引用计数减1,只在引用者全部放弃使用,也即引用计数归0时对具名共享对象进行销毁。通过上述执行步骤,实现对象的共享使用,使用完成后销毁该对象,释放显存空间,避免资源浪费。本申请通过合理化分配和共享计算机图形资源来降低图像运算和绘制时对显示相关存储资源使用率,实现对资源的管理统筹,合理化分配和共享显示资源。
根据上述计算机图形资源共享方法,本申请实施例还提供一种可读存储介质和一种计算机设备。可读存储介质上存储有可执行程序,该程序被处理器执行时实现上述计算机图形资源共享方法的步骤;计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行程序,处理器执行程序时实现上述计算机图形资源共享方法的步骤。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

Claims (8)

1.一种计算机图形资源共享方法,其特征在于,所述方法包括:
获取用户需求,所述用户需求中包括需求标识;
遍历计算机图形资源共享对象集标识列表中的标识;
如果所述共享对象集标识列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;
还包括:接收用户修改所述第一共享对象的需求指令;所述需求指令包括是否共享修改所述第一共享对象后获取的对象;如果不共享,复制所述第一共享对象,获取第一共享对象副本,发送所述第一共享对象副本的句柄给用户,接收到用户使用所述第一共享对象副本结束的指令,销毁所述第一共享对象副本;
如果共享,在所述共享对象集中复制所述第一共享对象,获取第一共享对象副本,将所述第一共享对象副本对应的标识加入所述共享对象集标识列表中,将所述第一共享对象副本的引用计数加1,所述第一共享对象的引用计数减1,发送所述第一共享对象副本的句柄给用户,用户根据所述第一共享对象副本的句柄操作修改所述第一共享对象副本并使用,接收到用户使用所述第一共享对象副本结束的指令,将所述第一共享对象副本的引用计数减1。
2.根据权利要求1所述的计算机图形资源共享方法,其特征在于,所述需求标识包括以下至少之一:名称、ID、索引。
3.根据权利要求1或2所述的计算机图形资源共享方法,其特征在于,如果所述共享对象集列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,所述第一共享对象的引用计数加1之后,还包括:
接收用户使用所述第一共享对象结束的指令,将所述第一共享对象的引用计数减1;
如果所述第一共享对象的引用计数为0,则销毁所述第一共享对象。
4.根据权利要求1所述的计算机图形资源共享方法,其特征在于,所述共享对象集列表中存在与所述需求标识相匹配的第一标识,则向用户发送所述第一标识对应的第一共享对象的句柄,所述第一共享对象的引用计数加1之后,还包括:
接收用户修改所述第一共享对象的部分区域的需求指令;
将所述第一共享对象分割为若干区域;
根据用户需求建立需要修改区域的副本;
发送所述修改区域的副本的句柄给用户;
接收用户使用所述修改区域的副本结束的指令,销毁所述修改区域的副本。
5.根据权利要求1所述的计算机图形资源共享方法,其特征在于,所述将所述第一共享对象分割为若干区域之后,还包括:
在所述共享对象集中根据用户需求建立需要修改区域的副本,将所述修改区域的副本对应的标识加入所述共享对象集标识列表中,所述修改区域的副本的引用计数加1;
发送所述修改区域的副本的句柄给用户;
接收用户使用所述修改区域的副本结束的指令,将所述修改区域的副本的引用计数减1。
6.根据权利要求1所述的计算机图形资源共享方法,其特征在于,还包括:
如果所述共享对象集标识列表中不存在与所述需求标识相匹配的标识,则根据所述用户需求创建第一对象,确定所述第一对象是否共享;
发送所述第一对象的句柄给用户;
接收到用户使用所述第一对象结束的指令,销毁所述第一对象。
7.根据权利要求6所述的计算机图形资源共享方法,其特征在于,还包括:
如果所述共享对象集标识列表中不存在与所述需求标识相匹配的标识如果所述需求标识与所述共享对象集标识列表中的标识不匹配,则根据所述用户需求创建第一对象,确定所述第一对象是否共享;
所述共享对象集标识列表中添加所述第一对象的标识,所述第一对象的引用计数加1;
发送所述第一对象的句柄给用户;
接收用户使用所述第一对象结束的指令,所述第一对象的引用计数减1。
8.一种计算机图形资源共享装置,其特征在于,所述装置包括:
用户需求获取模块,用于获取用户需求,所述用户需求中包括需求标识;
判断模块,用于遍历共享对象集标识列表中的标识,判断所述需求标识与所述共享对象集标识列表中的标识是否相匹配;
共享模块,用于如果所述需求标识与所述共享对象集标识列表中的标识相匹配,则发送所述需求标识对应的第一共享对象的句柄,并将所述第一共享对象的引用计数加1;
共享模块,还用于接收用户修改所述第一共享对象的需求指令;所述需求指令包括是否共享修改所述第一共享对象后获取的对象;如果不共享,复制所述第一共享对象,获取第一共享对象副本,发送所述第一共享对象副本的句柄给用户,接收到用户使用所述第一共享对象副本结束的指令,销毁所述第一共享对象副本;
如果共享,在所述共享对象集中复制所述第一共享对象,获取第一共享对象副本,将所述第一共享对象副本对应的标识加入所述共享对象集标识列表中,将所述第一共享对象副本的引用计数加1,所述第一共享对象的引用计数减1,发送所述第一共享对象副本的句柄给用户,用户根据所述第一共享对象副本的句柄操作修改所述第一共享对象副本并使用,接收到用户使用所述第一共享对象副本结束的指令,将所述第一共享对象副本的引用计数减1;
创建模块,用于如果所述需求标识与所述共享对象集标识列表中的标识不匹配,则根据所述用户需求创建第一对象,确定所述第一对象是否共享。
CN201910525871.8A 2019-06-18 2019-06-18 一种计算机图形资源共享方法及装置 Active CN110227265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910525871.8A CN110227265B (zh) 2019-06-18 2019-06-18 一种计算机图形资源共享方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910525871.8A CN110227265B (zh) 2019-06-18 2019-06-18 一种计算机图形资源共享方法及装置

Publications (2)

Publication Number Publication Date
CN110227265A CN110227265A (zh) 2019-09-13
CN110227265B true CN110227265B (zh) 2020-06-26

Family

ID=67859586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910525871.8A Active CN110227265B (zh) 2019-06-18 2019-06-18 一种计算机图形资源共享方法及装置

Country Status (1)

Country Link
CN (1) CN110227265B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889047A (zh) * 2005-06-27 2007-01-03 腾讯科技(深圳)有限公司 一种实现程序资源共享的系统及方法
CN103647818A (zh) * 2013-12-06 2014-03-19 广东欧珀移动通信有限公司 一种实现功能设定的方法及系统
CN104715001A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 用于对数据处理系统的集群中的共享资源执行写入操作的方法和系统
CN106331068A (zh) * 2016-08-15 2017-01-11 中国联合网络通信集团有限公司 远程资源共享方法及资源共享平台
CN107798130A (zh) * 2017-11-17 2018-03-13 广西广播电视信息网络股份有限公司 一种分布式存储的快照方法
CN108092803A (zh) * 2017-12-08 2018-05-29 江苏省邮电规划设计院有限责任公司 网络功能虚拟化环境中实现网元级并行化服务功能的方法
CN108605049A (zh) * 2015-12-29 2018-09-28 三星电子株式会社 用于用户设备的基于应用状态和卡片的消息共享方法
CN109597798A (zh) * 2018-12-04 2019-04-09 平安科技(深圳)有限公司 网络文件删除方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9712606B2 (en) * 2014-05-21 2017-07-18 Nasdaq Technology Ab Efficient and reliable host distribution of totally ordered global state

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889047A (zh) * 2005-06-27 2007-01-03 腾讯科技(深圳)有限公司 一种实现程序资源共享的系统及方法
CN103647818A (zh) * 2013-12-06 2014-03-19 广东欧珀移动通信有限公司 一种实现功能设定的方法及系统
CN104715001A (zh) * 2013-12-12 2015-06-17 国际商业机器公司 用于对数据处理系统的集群中的共享资源执行写入操作的方法和系统
CN108605049A (zh) * 2015-12-29 2018-09-28 三星电子株式会社 用于用户设备的基于应用状态和卡片的消息共享方法
CN106331068A (zh) * 2016-08-15 2017-01-11 中国联合网络通信集团有限公司 远程资源共享方法及资源共享平台
CN107798130A (zh) * 2017-11-17 2018-03-13 广西广播电视信息网络股份有限公司 一种分布式存储的快照方法
CN108092803A (zh) * 2017-12-08 2018-05-29 江苏省邮电规划设计院有限责任公司 网络功能虚拟化环境中实现网元级并行化服务功能的方法
CN109597798A (zh) * 2018-12-04 2019-04-09 平安科技(深圳)有限公司 网络文件删除方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN110227265A (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
US5522077A (en) Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
CN100568291C (zh) 进行光线跟踪的方法和系统
US8650442B2 (en) Programming in a simultaneous multi-threaded processor environment
KR102080851B1 (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
US20140130021A1 (en) System and method for translating program functions for correct handling of local-scope variables and computing system incorporating the same
JPH0571975B2 (zh)
DE102013200997A1 (de) Ein blockierungsfreies FIFO
US20080177959A1 (en) System and method for executing transactions
CN101689139B (zh) 使用类型稳定性来便于争用管理
US7999808B1 (en) Parallel processing system, method, and computer program product for executing node traversal or primitive intersection
US8495630B2 (en) Transferring objects between virtual machines
CN112256457A (zh) 一种基于共享内存的数据载入加速方法、装置、电子设备及存储介质
CN110227265B (zh) 一种计算机图形资源共享方法及装置
US8072454B1 (en) Parallel processing system, method, and computer program product for selecting a ray tracing entity from a group of ray tracing entities for processing
CN113127228A (zh) 图形渲染方法、服务器和计算机可读存储介质
CN111522673A (zh) 内存数据访问方法、装置、计算机设备和存储介质
US8504596B2 (en) Extended garbage collection
CN110163791B (zh) 数据计算流图的gpu处理方法及装置
US20100049747A1 (en) Apparatus and method for storing log in a thread oriented logging system
Corley et al. Evaluating the cloud architecture of AToMPM
CN113791916B (zh) 对象更新、读取方法及装置
CN115496835A (zh) 一种基于cpu和gpu异构并行架构的点云数据赋色方法和系统
CN112848312B (zh) 三维模型对象的检测方法、装置、计算机设备及存储介质
Lange et al. Scalable concurrency control for massively collaborative virtual environments
US8059123B1 (en) Parallel processing system, method, and computer program product for postponing the execution of primitive intersection

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
TR01 Transfer of patent right

Effective date of registration: 20240326

Address after: Room 503, Building 3, No. 6, Xicheng Xi'an North Road, Xinluo District, Longyan City, Fujian Province, 364000

Patentee after: Xie Xinyong

Country or region after: China

Address before: 550022, 5th Floor, Building A, Liyang Building (Gaoke No.1), Changling South Road, National High tech Industrial Development Zone, Guiyang City, Guizhou Province, China

Patentee before: GUIYANG GLOUD TECHNOLOGY Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240426

Address after: Room 701, Building 7, Dahua Group Xi'an Shuzhi Industrial Park, No. 789 Tiangu 6th Road, High tech Zone, Xi'an City, Shaanxi Province, 710000

Patentee after: Xi'an Xiaoyu Network Technology Co.,Ltd.

Country or region after: China

Address before: Room 503, Building 3, No. 6, Xicheng Xi'an North Road, Xinluo District, Longyan City, Fujian Province, 364000

Patentee before: Xie Xinyong

Country or region before: China

TR01 Transfer of patent right