CN110796587B - Drawcall调用处理方法、装置、终端及存储介质 - Google Patents

Drawcall调用处理方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN110796587B
CN110796587B CN201810862684.4A CN201810862684A CN110796587B CN 110796587 B CN110796587 B CN 110796587B CN 201810862684 A CN201810862684 A CN 201810862684A CN 110796587 B CN110796587 B CN 110796587B
Authority
CN
China
Prior art keywords
call
drawcall
gpu
optimized
content
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
CN201810862684.4A
Other languages
English (en)
Other versions
CN110796587A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201810862684.4A priority Critical patent/CN110796587B/zh
Publication of CN110796587A publication Critical patent/CN110796587A/zh
Application granted granted Critical
Publication of CN110796587B publication Critical patent/CN110796587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例公开了一种Drawcall调用处理方法、装置、终端及存储介质,一种Drawcall调用处理方法,应用于终端设备,包括:获取CPU生成的Drawcall调用;当确定Drawcall调用所需绘制的内容在GPU中已缓存时,根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用;向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容。本申请实施例提供的Drawcall调用处理方法、装置、终端及存储介质,用于降低Drawcall调用中GPU的处理开销,提高终端设备的处理效率。

Description

Drawcall调用处理方法、装置、终端及存储介质
技术领域
本申请实施例涉及计算机技术,尤其涉及一种Drawcall调用处理方法、装置、终端及存储介质。
背景技术
当前的移动终端性能越来越强,因此可以在移动终端中运行对性能要求较高的游戏等应用,给用户提供更好的使用体验。
在目前的移动终端中,为了提高图像的显示效果,均同时配置了中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)。其中,GPU专门负责移动终端中的图像绘制处理,CPU负责移动终端中的其他处理。但在移动终端中,需要由CPU使用Drawcall调用GPU完成图像的渲染,而Drawcall调用会产生一定的开销,Drawcall调用的开销将影响CPU或GPU的性能,从而可能影响用户的使用体验。
目前解决Drawcall调用开销的方案,可以通过批处理,将渲染材质相同的渲染物合并到一个Drawcall中,从而大大节省Drawcall调用的数量,因此可以提升移动终端的性能并降低功耗。并且可以通过对渲染物进行有效地排序,将渲染状态相同的部分尽可能依次渲染,从而减少状态的切换。但这些技术主要是缩减了CPU的开销,对GPU处理的数据和效率没有明显的提升,若绘制图像的瓶颈在GPU,那么现有技术对Drawcall调用开销的解决方案无法提升移动终端的性能。
发明内容
本申请提供一种Drawcall调用处理方法、装置、终端及存储介质,用于降低Drawcall调用中GPU的处理开销,提高终端设备的处理效率。
第一方面,本申请实施例提供了一种Drawcall调用处理方法,应用于终端设备,包括:
获取CPU生成的Drawcall调用;
确定Drawcall调用所需绘制的内容在GPU中是否已缓存;
若是,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容;
向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容。
在第一方面一种可能的实现方式中,确定Drawcall调用所需绘制的内容在GPU中是否已缓存,包括:
获取GPU绘制的前一帧图像;
判断前一帧图像中的绘制内容是否与Drawcall调用所需绘制的内容具有重复的部分;
若是,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,包括:
若前一帧图像中的绘制内容与Drawcall调用所需绘制的内容具有重复的部分,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用。
在第一方面一种可能的实现方式中,获取CPU生成的Drawcall调用,包括:
在CPU向GPU发送Drawcall调用以及GPU执行Drawcall调用之前,获取CPU生成的Drawcall调用。
在第一方面一种可能的实现方式中,GPU中的缓存信息存储于GPU的片上缓存空间中。
第二方面,本申请实施例提供了一种Drawcall调用处理装置,包括:
Drawcall调用获取模块,用于获取CPU生成的Drawcall调用;
Drawcall调用判断模块,用于确定Drawcall调用所需绘制的内容在GPU中是否已缓存;
Drawcall调用优化模块,用于若是,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容;
Drawcall调用发送模块,用于向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容。
在第二方面一种可能的实现方式中,Drawcall调用判断模块,具体用于获取GPU绘制的前一帧图像;判断前一帧图像中的绘制内容是否与Drawcall调用所需绘制的内容具有重复的部分;
Drawcall调用优化模块;具体用于若前一帧图像中的绘制内容与Drawcall调用所需绘制的内容具有重复的部分,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用。
在第二方面一种可能的实现方式中,Drawcall调用获取模块,具体用于在CPU向GPU发送Drawcall调用以及GPU执行Drawcall调用之前,获取CPU生成的Drawcall调用。
在第二方面一种可能的实现方式中,GPU中的缓存信息存储于GPU的片上缓存空间中。
第三方面,本申请实施例提供了一种终端,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面任一种可能的实现方式的Drawcall调用处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面任一种可能的实现方式的Drawcall调用处理方法。
本申请实施例提供的Drawcall调用处理方法、装置、终端及存储介质,通过获取CPU生成的Drawcall调用,在确定Drawcall调用所需绘制的内容在GPU中已缓存时,根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容,向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容,减少了终端设备中GPU根据Drawcall调用进行图像绘制的开销,提升了终端设备运行应用的性能,并有利于终端设备降低功耗。
附图说明
图1为本申请实施例提供的Drawcall调用处理方法实施例一的流程图;
图2为本申请实施例提供的Drawcall调用处理方法实施例二的流程图;
图3为本申请实施例提供的Drawcall调用处理装置实施例一的结构示意图;
图4为本申请实施例提供的一种终端的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
图1为本申请实施例提供的Drawcall调用处理方法实施例一的流程图,如图1所示,本实施例提供的方法包括:
步骤101,获取CPU生成的Drawcall调用。
本申请实施例所提供的Drawcall调用处理应用于任一种配置有CPU和GPU的终端设备,其中CPU通过向GPU发送Drawcall调用,使GPU完成图像帧的绘制和渲染。CPU可以为终端设备的一个或多个处理器或处理芯片,当终端设备中运行的应用需要进行图像的绘制和渲染时,CPU生成Drawcall调用,其中,不同的Drawcall调用用于绘制和渲染图像中的不同内容。
由于Drawcall调用是由CPU生成后发送给GPU,再由GPU执行的,在这个过程中,Drawcall的发送、执行过程中会产生一定的开销,这些开销需要占用CPU或GPU的一定处理资源,当开销过多时,可能对终端设备的征程运行产生影响。Drawcall的开销包括CPU上的开销和GPU上的开销,其中CPU上的开销主要是由于CPU生成的Drawcall数量较多而导致的,现有技术已经可以通过将Drawcall调用进行批处理解决CPU上的开销,即将绘制内容、渲染材质等相同的Drawcall合并到一个Drawcall中,从而可以大大节省Drawcall调用的数量。另外,还以通过对渲染物体进行有效地排序,将渲染状态相同的部分尽可能依次渲染,从而减少状态的切换。但上述技术主要是缩减了CPU的开销,对于GPU处理的数据和效率没有明显提升。若终端设备运行的应用的瓶颈在GPU上,那么现有技术缩减Drawcall开销的方法并不能改善终端设备运行的应用的性能。
为了解决上述问题,在本实施例中,提供了一种减小Drawcall调用GPU开销的方法,其中,在CPU生成Drawcall调用后,先不向GPU发送Drawcall调用,而是对其进行分析。
步骤102,确定Drawcall调用所需绘制的内容在GPU中是否已缓存。
终端设备所运行的应用中,每一帧图像都需要由GPU进行绘制和渲染,而无论哪种应用,图像一般都是连续的,后一帧图像在前一帧图像的基础上具有一定的变化,但一般不是全部变化。GPU可以将已经绘制和渲染的内容进行缓存,例如GPU可以缓存前一帧绘制和渲染的内容。
本实施例就是根据这样的变化趋势,在获取CPU生成的Drawcall调用后,判断绘制当前帧的Drawcall调用所需绘制的内容,是否在GPU中已经缓存。其中,GPU中缓存的内容可以是绘制前一帧的Drawcall调用的绘制指令,也可以是前一帧中已经绘制和渲染的具体内容。
进一步地,判断Drawcall调用所需绘制的内容在GPU中是否已缓存,可以通过对比GPU绘制的前一帧图像和所需绘制的当前帧图像实现。由于GPU绘制的每一帧图像的信息较为丰富,缓存GPU绘制的每一帧图像中的内容并不现实,再考虑到终端设备运行的应用中,图像帧一般是连续变化的,因此,可以使GPU仅缓存绘制的前一帧图像中的信息。在获取了CPU生成的Drawcall调用后,判断GPU缓存的前一帧图像中的绘制内容收与CPU生成的当前帧的Drawcall调用所需绘制的内容具有重复的部分。若有重复的部分,则确定Drawcall调用所需绘制的内容在GPU中已缓存。
另外,GPU缓存的信息,可以存储于GPU之外的外部存储器中,也可以存储于GPU的片上存储空间中。将CPU缓存的信息存储于GPU的片上存储空间中,可以提高GPU读取缓存信息的效率,更加有利于提高GPU的整体处理效率。
步骤103,若是,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容。
若Drawcall调用所需绘制的内容在GPU中已缓存,那么GPU就无需再重复绘制和渲染已经缓存的内容,而是可以仅绘制未缓存的内容。对于已缓存的内容,GPU可以通过读取缓存中已经存储的信息生成所需图像。因此,此时可以生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容。对于GPU中已缓存的绘制内容,优化后的Drawcall调用中可以指示GPU读取相应的缓存信息,通过缓存信息中已存储的绘制内容,以及重新绘制和渲染的未缓存的绘制内容,从而实现整帧图像的绘制和渲染。
步骤104,向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容。
在生成了优化后的Drawcall调用后,再向GPU发送优化后的Drawcall调用,由于优化后的Drawcall调用中不重复绘制GPU中已缓存的内容,因此,GPU在接收到优化后的Drawcall调用后,可以从缓存信息中读取所需信息,并根据优化后的Drawcall调用中指示的新的绘制内容进行实时地绘制和渲染,从而得到所需绘制的图像帧。由于GPU根据优化后的Drawcall调用进行图像帧的绘制和渲染时,并不是对CPU生成的全部Drawcall调用都进行实时地绘制和渲染,而是读取了部分缓存信息,因此可以降低GPU进行图像帧的绘制和渲染所需开销,提高了GPU的处理效率。对于终端设备中运行的对性能要求比较高的应用,例如游戏等,可以提升应用的性能,并有利于终端设备功耗的降低。
本实施例提供的Drawcall调用处理方法,通过获取CPU生成的Drawcall调用,在确定Drawcall调用所需绘制的内容在GPU中已缓存时,根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容,向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容,减少了终端设备中GPU根据Drawcall调用进行图像绘制的开销,提升了终端设备运行应用的性能,并有利于终端设备降低功耗。
进一步地,在本实施例中,为了实现对Drawcall调用的优化,需要在终端设备的CPU生成Drawcall调用后,CPU向GPU发送Drawcall调用之前,拦截Drawcall调用,然后对GPU缓存的信息和Drawcall调用进行分析,判断是否能够对Drawcall调用进行优化处理,在判断能够进行优化处理时,再根据图1所示实施例的Drawcall调用处理方法进行处理。若对GPU缓存的信息和Drawcall调用进行分析后,判断不能对Drawcall调用进行优化处理,则可以直接向GPU发送CPU生成的Drawcall调用,使GPU根据Drawcall调用实时绘制和渲染图像帧。另外,在本实施例中,无论是生成的优化后的Drawcall调用,还是拦截后判断不能进行优化处理的Drawcall调用,都是通过驱动层向GPU发送的,同样可以提高Drawcall调用的处理效率。
图2为本申请实施例提供的Drawcall调用处理方法实施例二的流程图,如图2所示,本实施例提供的方法包括:
步骤201,获取CPU生成的Drawcall调用。
步骤202,拦截Drawcall调用,根据GPU的缓存信息和Drawcall调用判断是否能够对Drawcall调用进行优化,若能够优化则执行步骤203,否则执行步骤204。
步骤203,生成优化后的Drawcall调用。
步骤204,在驱动层向GPU发送Drawcall调用,使GPU根据不同的Drawcall调用完成图像绘制。
图2所示实施例通过较为简单的处理逻辑,示出本实施例提供的Drwacall调用处理方法的处理逻辑,通过图2所示处理逻辑,并结合图1所示实施例中的详细阐述,可以实现对Drawcall调用的优化处理。
图3为本申请实施例提供的Drawcall调用处理装置实施例一的结构示意图,如图3所示,本实施例提供的网Drawcall调用处理包括:
Drawcall调用获取模块31,用于获取CPU生成的Drawcall调用。
Drawcall调用判断模块32,用于确定Drawcall调用所需绘制的内容在GPU中是否已缓存。
Drawcall调用优化模块33,用于若是,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容。
Drawcall调用发送模块34,用于向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容。
本申请实施例所提供的Drawcall调用处理装置可执行图1所示实施例所提供的Drawcall调用处理方法,具备执行方法相应的功能模块和有益效果。
进一步地,在图3所示实施例的基础上Drawcall调用判断模块32,具体用于获取GPU绘制的前一帧图像;判断前一帧图像中的绘制内容是否与Drawcall调用所需绘制的内容具有重复的部分;Drawcall调用优化模块33;具体用于若前一帧图像中的绘制内容与Drawcall调用所需绘制的内容具有重复的部分,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用。
进一步地,在图3所示实施例的基础上,Drawcall调用获取模块31,具体用于在CPU向GPU发送Drawcall调用以及GPU执行Drawcall调用之前,获取CPU生成的Drawcall调用
进一步地,在图3所示实施例的基础上,GPU中的缓存信息存储于GPU的片上缓存空间中。
图4为本申请实施例提供的一种终端的结构示意图,如图4所示,该终端包括CPU41、存储器42、GPU 43;终端中CPU 41和GPU 43的数量可以是一个或多个,图4中以一个处理器41和一个GPU 43为例;终端中的CPU 41、存储器42、GPU 41;可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器42作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请图1实施例中的Drawcall调用处理方法对应的程序指令/模块(例如,Drawcall调用处理装置中的Drawcall调用获取模块31、Drawcall调用判断模块32、Drawcall调用优化模块33、Drawcall调用发送模块34)。处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而终端的各种功能应用以及数据处理,即实现上述的Drawcall调用处理方法。
存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
GPU 43用于根据CPU 41发送的Drawcall调用,进行图像帧的绘制和渲染,生成所需图像帧。
本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种Drawcall调用处理方法,该方法包括:
获取CPU生成的Drawcall调用;
确定Drawcall调用所需绘制的内容在GPU中是否已缓存;
若是,则根据GPU中的缓存信息和Drawcall调用,生成优化后的Drawcall调用,优化后的Drawcall调用中不重复绘制GPU中已缓存的绘制内容;
向GPU发送优化后的Drawcall调用,以使GPU从缓存信息中读取所需信息后绘制优化后的Drawcall调用中的绘制内容。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本申请任意实施例所提供的Drawcall调用处理方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述Drawcall调用处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (10)

1.一种Drawcall调用处理方法,应用于终端设备,其特征在于,包括:
获取中央处理器CPU生成的Drawcall调用;
确定所述Drawcall调用所需绘制的内容在图形处理器GPU中是否已缓存;
若是,则根据所述GPU中的缓存信息和所述Drawcall调用,生成优化后的Drawcall调用,所述优化后的Drawcall调用中不重复绘制所述GPU中已缓存的绘制内容;
向所述GPU发送所述优化后的Drawcall调用,以使所述GPU从缓存信息中读取所需信息后绘制所述优化后的Drawcall调用中的绘制内容;
其中,所述GPU中缓存的内容是绘制前一帧的Drawcall调用的绘制指令或前一帧中已经绘制和渲染的具体内容。
2.根据权利要求1所述的方法,其特征在于,所述确定所述Drawcall调用所需绘制的内容在GPU中是否已缓存,包括:
获取所述GPU绘制的前一帧图像;
判断所述前一帧图像中的绘制内容是否与所述Drawcall调用所需绘制的内容具有重复的部分;
所述若是,则根据所述GPU中的缓存信息和所述Drawcall调用,生成优化后的Drawcall调用,包括:
若所述前一帧图像中的绘制内容与所述Drawcall调用所需绘制的内容具有重复的部分,则根据所述GPU中的缓存信息和所述Drawcall调用,生成优化后的Drawcall调用。
3.根据权利要求1或2所述的方法,其特征在于,所述获取CPU生成的Drawcall调用,包括:
在所述CPU向所述GPU发送所述Drawcall调用以及所述GPU执行所述Drawcall调用之前,获取CPU生成的Drawcall调用。
4.根据权利要求1或2所述的方法,其特征在于,所述GPU中的缓存信息存储于所述GPU的片上缓存空间中。
5.一种Drawcall调用处理装置,其特征在于,包括:
Drawcall调用获取模块,用于获取中央处理器CPU生成的Drawcall调用;
Drawcall调用判断模块,用于确定所述Drawcall调用所需绘制的内容在图形处理器GPU中是否已缓存;
Drawcall调用优化模块,用于若是,则根据所述GPU中的缓存信息和所述Drawcall调用,生成优化后的Drawcall调用,所述优化后的Drawcall调用中不重复绘制所述GPU中已缓存的绘制内容;
Drawcall调用发送模块,用于向所述GPU发送所述优化后的Drawcall调用,以使所述GPU从缓存信息中读取所需信息后绘制所述优化后的Drawcall调用中的绘制内容;
其中,所述GPU中缓存的内容是绘制前一帧的Drawcall调用的绘制指令或前一帧中已经绘制和渲染的具体内容。
6.根据权利要求5所述的装置,其特征在于,所述Drawcall调用判断模块,具体用于获取所述GPU绘制的前一帧图像;判断所述前一帧图像中的绘制内容是否与所述Drawcall调用所需绘制的内容具有重复的部分;
所述Drawcall调用优化模块;具体用于若所述前一帧图像中的绘制内容与所述Drawcall调用所需绘制的内容具有重复的部分,则根据所述GPU中的缓存信息和所述Drawcall调用,生成优化后的Drawcall调用。
7.根据权利要求5或6所述的装置,其特征在于,所述Drawcall调用获取模块,具体用于在所述CPU向所述GPU发送所述Drawcall调用以及所述GPU执行所述Drawcall调用之前,获取CPU生成的Drawcall调用。
8.根据权利要求7所述的装置,其特征在于,所述GPU中的缓存信息存储于所述GPU的片上缓存空间中。
9.一种终端,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~4中任一所述的Drawcall调用处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~4中任一所述的Drawcall调用处理方法。
CN201810862684.4A 2018-08-01 2018-08-01 Drawcall调用处理方法、装置、终端及存储介质 Active CN110796587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810862684.4A CN110796587B (zh) 2018-08-01 2018-08-01 Drawcall调用处理方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810862684.4A CN110796587B (zh) 2018-08-01 2018-08-01 Drawcall调用处理方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN110796587A CN110796587A (zh) 2020-02-14
CN110796587B true CN110796587B (zh) 2023-08-11

Family

ID=69424976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810862684.4A Active CN110796587B (zh) 2018-08-01 2018-08-01 Drawcall调用处理方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN110796587B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309430B (zh) * 2020-03-16 2021-12-10 广东趣炫网络股份有限公司 一种自动缓存用户交互界面节点的方法和相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714569A (zh) * 2013-12-19 2014-04-09 华为技术有限公司 一种渲染指令的处理方法、装置和系统
CN105045579A (zh) * 2015-07-01 2015-11-11 新奥特(北京)视频技术有限公司 一种轨迹生成方法和装置
CN106504185A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种渲染优化方法和装置
CN107133907A (zh) * 2016-02-26 2017-09-05 龙芯中科技术有限公司 图形绘制方法和装置
CN108269223A (zh) * 2017-01-04 2018-07-10 腾讯科技(深圳)有限公司 一种网页图形绘制方法及终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130127858A1 (en) * 2009-05-29 2013-05-23 Luc Leroy Interception of Graphics API Calls for Optimization of Rendering
US10373286B2 (en) * 2016-08-03 2019-08-06 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based rendering

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714569A (zh) * 2013-12-19 2014-04-09 华为技术有限公司 一种渲染指令的处理方法、装置和系统
CN105045579A (zh) * 2015-07-01 2015-11-11 新奥特(北京)视频技术有限公司 一种轨迹生成方法和装置
CN107133907A (zh) * 2016-02-26 2017-09-05 龙芯中科技术有限公司 图形绘制方法和装置
CN106504185A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种渲染优化方法和装置
CN108269223A (zh) * 2017-01-04 2018-07-10 腾讯科技(深圳)有限公司 一种网页图形绘制方法及终端

Also Published As

Publication number Publication date
CN110796587A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US11344806B2 (en) Method for rendering game, and method, apparatus and device for generating game resource file
CN106021421B (zh) 一种加速网页渲染的方法及装置
JP5436526B2 (ja) グラフィックスコマンド生成装置、グラフィックスコマンド生成方法、サーバ装置、およびクライアント装置
CN108021449B (zh) 一种协程实现方法、终端设备及存储介质
CN112529995B (zh) 图像渲染计算方法、装置、存储介质以及终端
CN111737019B (zh) 一种显存资源的调度方法、装置及计算机存储介质
AU2019256257B2 (en) Processor core scheduling method and apparatus, terminal, and storage medium
CN106340055A (zh) 一种基于多线程的OpenGL快速绘制方法
CN111460342B (zh) 页面的渲染展示方法、装置、电子设备及计算机存储介质
CN103164227B (zh) 一种窗口图像的采集方法及装置
CN113730922A (zh) 图形渲染方法、装置、电子设备及存储介质
CN112473126A (zh) 场景消隐处理方法、装置、电子设备及介质
CN105450986B (zh) 一种Linux下视频处理方法
CN111274044B (zh) Gpu虚拟化资源限制处理方法及装置
GB2524047A (en) Improvements in and relating to rendering of graphics on a display device
CN110796587B (zh) Drawcall调用处理方法、装置、终端及存储介质
CN114968152A (zh) 减少virtio-gpu额外性能损耗的方法
US11195248B2 (en) Method and apparatus for processing pixel data of a video frame
US10303523B2 (en) Method and apparatus to migrate stacks for thread execution
CN104424661A (zh) 三维对象显示方法和装置
CN114035903A (zh) 实现Linux KVM虚拟机支持3D应用的方法及系统
JP5842029B2 (ja) 画像データをキャッシュする情報処理支援装置、情報処理装置及び情報処理支援プログラム
CN111179386A (zh) 动画生成方法、装置、设备及存储介质
CN114896011B (zh) 页面中动态内容的播放方法、装置、电子设备及存储介质
EP3693850A1 (en) Graphics processing method, and related apparatus and device

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