CN118043842A - 一种渲染格式选择方法及其相关设备 - Google Patents

一种渲染格式选择方法及其相关设备 Download PDF

Info

Publication number
CN118043842A
CN118043842A CN202280066021.6A CN202280066021A CN118043842A CN 118043842 A CN118043842 A CN 118043842A CN 202280066021 A CN202280066021 A CN 202280066021A CN 118043842 A CN118043842 A CN 118043842A
Authority
CN
China
Prior art keywords
rendering
rendering format
frame
format
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280066021.6A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN118043842A publication Critical patent/CN118043842A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

一种渲染格式选择方法,包括:获取第一渲染指令集合;基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道。该方法可以在进行第二帧的渲染时GPU采用不包括透明度通道的第二渲染格式,降低了DDR开销。

Description

一种渲染格式选择方法及其相关设备
本申请要求于2021年9月29日提交中国专利局、申请号为202111155620.9、发明名称为“一种渲染格式选择方法及其相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及一种渲染格式选择方法及其相关设备。
背景技术
游戏性能和功耗的瓶颈点有中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,DDR)共三方面。目前游戏画质越来越精致,而精致画质渲染需要较多的渲染通道(Render Pass),如渲染各种特效等,同时游戏渲染分辨率也越来越大,两方面都会导致DDR带宽需求越来越大,很容易造成DDR是性能瓶颈点。
渲染目标格式(render target format,可以简称为Render Format,或者渲染格式)用于描述每个像素分配多少位,以及它们如何在红色通道(R通道)、绿色通道(G通道)、蓝色通道(B通道)和alpha透明度通道(A通道)之间进行划分,如RGBA8,每个像素分配32位,红绿蓝和alpha各占8位。
目前针对渲染格式的选择,一般有两种选择技术,一是游戏引擎是在游戏开发时,选择一种适合本款游戏的渲染格式,二是一些应用程序(application,APP)针对处理的图形质量选择匹配的渲染格式。然而,无论是在游戏开发时选择,还是在游戏运行前选择,在游戏运行时都会固定按照一种渲染格式,导致了游戏的画质或性能较差。
发明内容
第一方面,本申请提供了一种渲染格式选择方法,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:
获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,当前的渲染格式为第一渲染格式,所述第一渲染格式可以由R通道、G通道、B通道以及A通道组成,例如所述第一渲染格式可以为RGBA8或RGBA16F。
在一种可能的实现中,可以检测第一渲染指令集合中渲染指令的透明特征,若第一渲染指令集合中不包含用于绘制透明物体的指令,则可以认为当前不需要进行透明物体的渲 染,进而也不需要包含透明度通道的渲染格式,反之,如果用包含透明度通道的渲染格式进行渲染,在没有增加画质的前提下,会增加执行渲染任务时的DDR开销。
例如,第一渲染指令集合中渲染指令的透明特征可以根据如下指令特征确定,比如主场景RenderPass指令中是否存在Disable(GL_BLEND)等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧(即第一帧)调用Disable(GL_BLEND),则可以认为第一渲染指令集合中不包含用于绘制透明物体的指令。
本申请实施例中,将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中不包含用于绘制透明物体的指令时,可以认为第二帧也不需要进行透明物体的渲染。然而,当前渲染格式为第一渲染格式(包括透明度通道),若继续基于第一渲染格式进行第二帧的渲染,会增加不必要的DDR开销。
因此,在进行第二帧的渲染时需要采用不包括透明度通道的第二渲染格式,例如,所述第二渲染格式可以为R11G11B10F。
在一种可能的实现中,CPU需要可以将指示将所述第一渲染格式变更为第二渲染格式的第一渲染格式变更信息传递至GPU,以便GPU在进行第二帧的渲染时采用的渲染格式由第一渲染格式变更为第二渲染格式。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
示例性的,CPU可以检测Frame N帧(即上述第一帧)的渲染格式和透明特征,是否透明可以根据如下指令特征,比如主场景RenderPass指令中是否存在Disable/Enable(GL_BLEND)、BlendEquation、BlendFunc等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧调用Disable(GL_BLEND),同时渲染格式是RGBA16F,则给出Frame N+1帧(即上述第二帧)动态切换渲染格式决策,将RGBA16F切换为R11G11B10格式,Frame N+1基于新替换的R11G11B10渲染格式进行绘制。
本申请实施例提供了一种渲染格式选择方法,包括:获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中不包含用于绘制透明物体的指令时,可以认为第二帧也不需要进行透明物体的渲染。然而,当前渲染格式为第一渲染格式(包括透明度通道),若继续基于第一渲染格式进行第二帧的渲染,会增加不必要的DDR开销。因此,在进行第二帧的渲染时GPU采用不包括透明度通道的第二渲染格式,降低了DDR开销。
第二方面,本申请提供了一种渲染格式选择方法,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:
获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,当前的渲染格式为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二渲染格式可以由R通道、G通道以及B通道组成,例如所述第二渲染格式可以为R11G11B10F。
在一种可能的实现中,可以检测第一渲染指令集合中渲染指令的透明特征,若第一渲染指令集合中包含用于绘制透明物体的指令,则可以认为当前需要进行透明物体的渲染,进而也需要包含透明度通道的渲染格式,反之,如果用不包含透明度通道的渲染格式进行渲染,会大大降低渲染的画质。
例如,第一渲染指令集合中渲染指令的透明特征可以根据如下指令特征确定,比如主场景RenderPass指令中是否存在Enable(GL_BLEND)、BlendEquation、BlendFunc等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧(即第一帧)调用Enable(GL_BLEND),则可以认为第一渲染指令集合中包含用于绘制透明物体的指令。
本申请实施例中,将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中包含用于绘制透明物体的指令时,可以认为第二帧也需要进行透明物体的渲染。然而,当前渲染格式为第二渲染格式(不包括透明度通道),若继续基于第二渲染格式进行第二帧的渲染,会大大降低渲染的画质。
因此,在进行第二帧的渲染时需要采用包括透明度通道的第一渲染格式,所述第一渲染格式可以由R通道、G通道、B通道以及A通道组成,例如,所述第一渲染格式可以为RGBA8或RGBA16F。
在一种可能的实现中,CPU需要可以将指示将所述第二渲染格式变更为第一渲染格式的第二渲染格式变更信息传递至GPU,以便GPU在进行第二帧的渲染时采用的渲染格式由第二渲染格式变更为第一渲染格式。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
示例性的,CPU可以检测Frame N帧(即上述第一帧)的渲染格式和透明特征,是否透明可以根据如下指令特征,比如主场景RenderPass指令中是否存在Disable/Enable(GL_BLEND)、BlendEquation、BlendFunc等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧调用Enable(GL_BLEND),同时渲染格式是R11G11B10,则给出Frame N+1帧(即上述第二帧)动态切换渲染格式决策,将R11G11B10切换为RGBA16F格式,Frame N+1基于新替换的RGBA16F渲染格式进行绘制。
本申请实施例提供了一种渲染格式选择方法,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU 根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中包含用于绘制透明物体的指令时,可以认为第二帧也需要进行透明物体的渲染。然而,当前渲染格式为第二渲染格式(不包括透明度通道),若继续基于第二渲染格式进行第二帧的渲染,会大大降低渲染的画质。因此,本申请在进行第二帧的渲染时需要采用包括透明度通道的第一渲染格式,可以提高渲染的画质。
应理解,包括透明度通道的不同渲染格式之间存在着像素值表示精度的差异,例如,RGBA8中为每个像素分配32位,红绿蓝和透明度各占8位,RGBA16F中为每个像素分配64位,红绿蓝和透明度各占16位,也就是RGBA16F支持的像素值表示精度大于RGBA8支持的像素值表示精度。
在一种可能的实现中,可能存在渲染的画质所需的像素值表示精度高于当前渲染格式支持的像素值表示精度的情况,在这种情况下,需要将渲染格式更改为支持更高像素值表示精度的渲染格式,以提高渲染的画质。
在一种可能的实现中,可以获取所述第二帧的绘制结果,绘制结果可以包括渲染界面上各个像素点的各个通道的值,或者可以将渲染界面划分为多个瓦片区域(tile区域,具体可以参照图5所示),绘制结果可以包括渲染界面上各个tile中一个或多个像素点(例如中心点)的各个通道的值。CPU可以基于绘制结果来确定当前的渲染格式是否满足第二帧所需的像素值表示精度。具体的,可以判断绘制结果中是否存在像素值等于像素值表示精度上限值的像素点,如果存在(或者存在多个),则可以认为所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点。
在一种可能的实现中,若所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,则可以将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
示例性的,可以由RGBA8切换到RGBA16F,Frame N映射Render Buffer,比如1920*1080的Render Buffer,划分253个128*64个tile,从GPU内存读取每个tile中心值,判断值是否等于255,如果存在多个等于255,则认为存在高光区域,RGBA8渲染格式无法满足画质渲染要求,需要将RGBA8切换为RGBA16F。
在一种可能的实现中,可能存在渲染的画质所需的像素值表示精度低于当前渲染格式支持的像素值表示精度的情况,在这种情况下,需要将渲染格式更改为支持更低像素值表示精度的渲染格式,以降低DDR开销。
在一种可能的实现中,获取所述第二帧的绘制结果,基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
第三方面,本申请提供了一种渲染格式选择装置,所述装置应用于终端设备,所述终端设备包括图形处理器GPU,所述装置包括:
指令获取模块,用于获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
指令格式转换模块,用于基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
在一种可能的实现中,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
第四方面,本申请提供了一种渲染格式选择装置,所述装置应用于终端设备,所述终端设备包括图形处理器GPU,所述装置包括:
指令获取模块,用于获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
指令格式转换模块,用于基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,所述第一渲染格式由R通道、G通道、B通道以及A通道组成, 所述第二渲染格式由R通道、G通道以及B通道组成。
在一种可能的实现中,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
在一种可能的实现中,所述指令获取模块,还用于获取所述第二帧的绘制结果;
所述指令格式转换模块,还用于基于所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
在一种可能的实现中,所述指令获取模块,还用于获取所述第二帧的绘制结果;
所述指令格式转换模块,还用于基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
第五方面,本申请提供了一种终端设备,所述终端设备包括处理器和存储器,所述处理器获取存储器中存储的代码,以执行第一方面以及其可选的实现方式中的任意一种,以及第二方面以及其可选的实现方式中的任意一种。
第六方面,本申请提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质包含计算机指令用于执行上述第一方面及其可选的实现中任一所述的方法,以及第二方面以及其可选的实现方式中的任意一种。
第七方面,本申请还提供了一种计算机程序产品,包含计算机指令,主机设备的处理器执行该计算机指令,用于执行本实施例可能实现方式中任一种实现方式中处理器执行的操作。
本申请实施例提供了一种渲染格式选择方法,包括:获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU, 以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中不包含用于绘制透明物体的指令时,可以认为第二帧也不需要进行透明物体的渲染。然而,当前渲染格式为第一渲染格式(包括透明度通道),若继续基于第一渲染格式进行第二帧的渲染,会增加不必要的DDR开销。因此,在进行第二帧的渲染时GPU采用不包括透明度通道的第二渲染格式,降低了DDR开销。
附图说明
图1a为一种***的架构示意;
图1b为一种***的架构示意;
图1c为一种***的架构示意;
图2为本申请实施例中描述的技术的计算装置的框图;
图3为本申请实施例提供的一种渲染格式选择方法的流程示意;
图4为本申请实施例提供的一种渲染格式选择方法的流程示意;
图5为本申请实施例提供的一种渲染结果的示意;
图6为本申请实施例提供的一种渲染格式选择方法的流程示意;
图7为本申请实施例提供的一种渲染格式选择装置的示意;
图8为本申请实施例提供的一种渲染格式选择装置的示意;
图9为本申请提供的一种终端设备的结构示意。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
如图1a所示,客户端程序需要调用API接口实现3D渲染,渲染命令和数据会缓存在随机存取存储器(random access memory,RAM)中,在一定条件下,会将这些命令和数据 通过CPU时钟发送到影像随机接达记忆器(video random access memory,VRAM),在GPU的控制下,使用VRAM中的数据和命令,完成图形的渲染,并将结果存入帧缓冲区中,帧缓冲区中的帧最终会被发送到显示器上,显示出结果。在现代的图形硬件***中,还支持不通过CPU时钟直接将数据由RAM发送至VRAM或直接将数据由帧缓冲区发送至RAM(例如OpenGL中的VBO,PBO)。
本申请可以应用于游戏应用的画面渲染过程,参照图1b,图1b为本申请实施例的软件和硬件模块以及其在技术栈中的位置的示意。该架构图是一个典型的智能设备游戏渲染的场景。主要包括:特征识别、决策模块、渲染指令重构模块。
本申请实施例的程序代码可以存在于Android平台软件的Framework层,位于Framework和DDK之间。
本申请首先会基于多个维度进行特征识别,如:Render Pass是否渲染透明物体、实时渲染出的画质特征是否和Render Format匹配等;游戏/APP的渲染指令流被截获之后,由特征识别模块进行特征分析,分析符合特征后进行决策,根据决策结果进行指令重组,图1c为本申请的实现形态的一个示意。
接下来描述本申请实施例的一种***架构示意。
图2是说明可以实施本发明中描述的技术的计算装置30的框图。计算装置30可以为本申请实施例中的渲染指令处理装置,计算装置30的实例包含但不限于无线装置、移动或蜂窝电话(包含所谓的智能手机)、个人数字助理(personal digital assistant,PDA)、包含视频显示器的视频游戏控制台、移动视频游戏装置、移动视频会议单元、膝上型计算机、台式计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器等等。
在图2的实例中,计算装置30包含具有CPU存储器34的中央处理单元(central processing unit,CPU)32、具有GPU存储器38和一或多个着色单元40的图形处理单元(graphics processing unit,GPU)36、显示器单元42、显示器缓冲单元44、用户接口单元46和存储单元48。此外,存储单元48可以存储具有编译器54的GPU驱动器50、GPU程序52和本机编译的GPU程序56。
CPU 32的实例包含但不限于数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。虽然CPU 32和GPU 36在图2的实例中被说明成分开的单元,但是在一些实例中,CPU 32和GPU 36可以集成为单个单元。CPU 32可以执行一或多个应用程序。应用程序的实例可以包含网络浏览器、电子邮件应用程序、电子表格、视频游戏、音频和/或视频捕获、回放或编辑应用程序或其它起始有待经由显示器单元42呈现的图像数据的产生的应用程序。
在图2所示的实例中,CPU 32包含CPU存储器34。CPU存储器34可以表示在执行机器或对象代码时使用的芯片上存储设备或存储器。CPU存储器34可以各自包括能够存储固定数目个数字位的硬件存储器寄存器。CPU 32可以能够比从存储单元48(其可例如经由***总线存取)读取值或者向存储单元48写入值更迅速地从本机CPU存储器34读取值或者向本机CPU存储器34写入值。
GPU 36表示用于执行图形操作的一或多个专用处理器。也就是说,举例来说,GPU 36 可以是具有固定功能和用于渲染图形和执行GPU应用程序的可编程组件的专用硬件单元。GPU 36还可包含DSP、通用微处理器、ASIC、FPGA或其它等效的集成或离散逻辑电路。
GPU 36还包含GPU存储器38,其可以表示在执行机器或对象代码时使用的芯片上存储设备或存储器。GPU存储器38可以各自包括能够存储固定数目个数字位的硬件存储器寄存器。GPU 36可以能够比从存储单元48(其可例如经由***总线存取)读取值或者向存储单元48写入值更迅速地从本机GPU存储器38读取值或者向本机GPU存储器38写入值。
GPU 36还包含着色单元40。如下文更详细地描述,着色单元40可以配置成处理组件的可编程管线。在一些实例中,着色单元40可以称为“着色器处理器”或“统一着色器”,并且可以执行几何形状、顶点、像素或其它着色操作以渲染图形。着色单元40可以包含图2中为了清晰起见未具体展示的一或多个组件,例如用于取出和解码指令的组件、用于实行算术计算的一或多个算术逻辑单元(arithmetic and logic unit,ALU)和一或多个存储器、高速缓存或寄存器。
显示器单元42表示能够显示视频数据、图像、文本或任何其它类型的数据的单元。显示器单元42可以包含液晶显示器(liquid crystal display,LCD)、发光二极管(light emitting diode,LED)显示器、有机LED(organic light-emitting diode,OLED)、有源矩阵OLED(active-matrix organic light-emitting diode,AMOLED)显示器等等。
显示器缓冲单元44表示专用于为显示器单元42存储数据以供呈现图像(例如照片或视频帧)的存储器或存储装置。显示器缓冲单元44可以表示包含多个存储位置的二维缓冲器。显示器缓冲单元44内的存储位置的数目可以基本上类似于有待在显示器单元42上显示的像素的数目。举例来说,如果显示器单元42经配置以包含640x480个像素,那么显示器缓冲单元44可以包含640x480个存储位置。显示器缓冲单元44可以存储由GPU 36处理的像素中的每一个的最终像素值。显示器单元42可以从显示器缓冲单元44检索最终像素值,并且基于显示器缓冲单元44中存储的像素值显示最终图像。
用户接口单元46表示用户可以用来与计算装置30的其它单元(例如,CPU 32)交互或者以其它方式介接以与计算装置30的其它单元通信的单元。用户接口单元46的实例包含但不限于轨迹球、鼠标、键盘和其它类型的输入装置。用户接口单元46还可以是触摸屏,并且可以并入为显示器单元42的一部分。
存储单元48可以包括一或多个计算机可读存储媒体。存储单元48的实例包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机或处理器存取的任何其它媒体。
在一些实例实施方案中,存储单元48可以包含使得CPU 32和/或GPU 36执行本发明中用于实现CPU 32和GPU 36的功能的指令。在一些实例中,存储单元48可以被视为非暂时性存储媒体。术语“非暂时性”可以指示存储媒体不是体现在载波或传播信号中。然而,术语“非暂时性”不应解释为意味着存储单元48是不能移动的。作为一个实例,存储单元48可以从计算装置30中移除,并且移动到另一装置。作为另一实例,基本上类似于存储单元 48的存储单元可以***到计算装置30中。在某些实例中,非暂时性存储媒体可以存储可能随时间而改变的数据(例如,在RAM中)。
存储单元48存储GPU驱动器50和编译器54、GPU程序52和本机编译的GPU程序56。GPU驱动器50表示提供存取GPU 36的接口的计算机程序或可执行代码。CPU 32执行GPU驱动器50或其若干部分以与GPU 36连接,并且出于此原因,GPU驱动器50在图2的实例中展示为CPU 32内的用虚线框标记的GPU驱动器50。GPU驱动器50可以存取CPU 32执行的程序或其它可执行文件,包含GPU程序52。
GPU程序52可以包含(例如,使用应用程序编程接口(API))用高级(HL)编程语言编写的代码。API的实例包含开放图形库(OpenGL)。总地来说,API包含由相关联的硬件执行的预定的标准化的成组命令。API命令允许用户指令GPU的硬件组件执行命令,而无需用户知道硬件组件的具体情况。
GPU程序52可以调用或者以其它方式包含GPU驱动器50提供的一或多个功能。CPU 32总体上执行其中嵌入着GPU程序52的程序,并且在遇到GPU程序52后,即刻将GPU程序52传递给GPU驱动器50(例如,以命令流的形式)。CPU 32在这个上下文中执行GPU驱动器50以处理GPU程序52。举例来说,GPU驱动器50可以通过将GPU程序编译成GPU 36可执行的对象或机器代码而处理GPU程序52。这个对象代码在图2的实例中展示为本机编译的GPU程序56。
在一些实例中,编译器54可以实时或近实时地操作,以在执行其中嵌入着GPU程序52的程序期间编译GPU程序52。举例来说,编译器54总体上表示将根据HL编程语言定义的HL指令精简成低级(LL)编程语言的LL指令的模块。在编译之后,这些LL指令能够由特定类型的处理器或其它类型的硬件(例如FPGA、ASIC等等(包含例如CPU 32和GPU 36)来执行。
在图2的实例中,编译器54可以在执行包含GPU程序52的HL代码时从CPU 32接收GPU程序52。编译器54可以将GPU程序52编译成符合LL编程语言的本机编译的GPU程序56。编译器54接着输出包含LL指令的本机编译的GPU程序56。
GPU 36总体上接收本机编译的GPU程序56(如通过GPU 36内的虚线框标记的“本机编译的GPU程序56”所展示),在这之后,在一些例子中,GPU 36即刻渲染图像并且将图像的经渲染部分输出到显示器缓冲单元44。举例来说,GPU 36可以产生有待在显示器单元42处显示的多个基元。基元可以包含一或多条线(包含曲线、样条等)、点、圆、椭圆、多边形(其中通常将多边形定义为一或多个三角形的集合)或任何其它二维(2D)基元。术语“基元”还可以指代三维(3D)基元,例如立方体、圆柱体、球体、圆锥体、金字塔、圆环等等。总地来说,术语“基元”是指任何被GPU 36渲染以供经由显示器单元42作为图像(或在视频数据的上下文中的帧)显示的几何形状或要素。
GPU 36可以通过应用一或多个模型变换(其也可以在状态数据中指定)将基元或基元的其它状态数据(例如,其定义基元的纹理、亮度、相机配置或其它方面)变换成所谓的“世界空间”。一旦经过变换,GPU 36就可以应用有效相机的视图变换(其同样也可以在定义相机的状态数据中指定)以将基元和光的坐标变换到相机或眼睛空间中。GPU36还可以执行顶点着色以在任何有效光的视图中渲染基元的外观。GPU 36可以在上述模型、世界或视图空间 中的一或多个中执行顶点着色(虽然顶点着色通常是在世界空间中执行的)。
一旦基元经过着色,GPU 36就可以执行投影以将图像投影到(作为一个实例)在(-1,-1,-1)和(1,1,1)处具有极点的单位立方体中。这个单位立方体通常称为典型视图体。在将模型从眼睛空间变换到典型视图体之后,GPU 36可以执行裁剪以移除任何不至少部分地驻留在视图体中的基元。换句话说,GPU 36可以移除任何不在相机帧内的基元。GPU 36可以接着将基元的坐标从视图体映射到屏幕空间,从而有效地将基元的3D基元精简成屏幕的2D坐标。
在给定用其相关联的着色数据定义基元的经变换和投影的顶点的情况下,GPU 36可以接着使基元光栅化。举例来说,GPU 36可以计算和设置基元所覆盖的屏幕的像素的颜色。在光栅化期间,GPU 36可以应用与基元相关联的任何纹理(其中纹理可以包括状态数据)。GPU 36还可以在光栅化期间执行Z缓冲器算法(也称为深度测试)以确定是否有任何基元和/或对象被任何其它对象遮蔽。Z缓冲器算法根据基元的深度将基元排序,使得GPU 36知道将每一基元绘制到屏幕上时的次序。GPU 36将经渲染的像素输出到显示器缓冲单元44。
显示器缓冲单元44可以暂时存储经渲染的图像的经渲染的像素,直到整个图像都被渲染了为止。在这个上下文中,可以将显示器缓冲单元44视为图像帧缓冲器。显示器缓冲单元44可以接着发射有待在显示器单元42上显示的经渲染的图像。在一些替代的实例中,GPU 36可以将图像的经渲染的部分直接输出到显示器单元42以供显示,而不是将图像暂时存储在显示器缓冲单元44中。显示器单元42可以接着显示在显示器缓冲器单元78中存储的图像。
接下来介绍本申请实施例涉及的一些概念:
1)、纹理:表示物体表面细节的一幅或几幅二维图形,也称纹理贴图(texture mapping),当把纹理按照特定的方式映射到物体表面上的时候能使物体看上去更加真实。
2)、RenderBuffer:是一个内存缓冲区,即存储一系列的字节、整数、像素等,可以直接将所有渲染数据存储到RenderBuffer中,同时不会对数据做任何格式转变。
3)、Render Target:在计算机3D图形领域,渲染目标是现代图形处理单元(GPU)的一项功能,它允许将3D场景渲染到中间内存缓冲区RenderBuffer或渲染目标纹理(Render Target Texture),而不是帧缓冲区或后台缓冲区,然后可以通过像素着色器处理Render Target Texture,以便在显示最终图像之前将附加效果应用于最终图像。
4)、Render Target Format:渲染目标格式,该格式描述每个像素分配多少位,以及它们如何在红色、绿色、蓝色和alpha透明度之间进行划分,如RGBA8,每个像素分配32位,红绿蓝和alpha各占8位,简称Render Format,或者渲染格式。
5)、RenderPass:渲染通道,它通常指的是多通道渲染技术,在多通道渲染技术中,一个物体需要多次渲染,每个渲染过程的结果会被累加到最终的呈现结果上。
6)、图形应用程序接口(application programming interface,API):图形渲染编程接口;游戏引擎通过调用图形API将3D场景渲染呈现至屏幕,移动平台上使用最广泛的图形API包括:OpenGL ES和Vulkan;OpenGL ES是传统的图形API,Vulkan是新一代图形API。
接下来对本申请实施例提供的一种渲染格式选择方法进行详细描述。
参照图3,图3为本申请实施例提供的一种渲染格式选择方法的流程示意,如图3中示出的那样,本申请实施例提供的渲染格式选择方法,包括:
301、获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象。
本申请实施例中,在游戏启动时,处理器可以获取到该游戏中各个帧的渲染指令;其中,第一渲染指令集合是其中一帧(第一帧)的的渲染指令。具体的,处理器可以获取到该游戏中第一帧的主场景绘制指令。
302、基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,当前的渲染格式为第一渲染格式,所述第一渲染格式可以由R通道、G通道、B通道以及A通道组成,例如所述第一渲染格式可以为RGBA8或RGBA16F。
在一种可能的实现中,可以检测第一渲染指令集合中渲染指令的透明特征,若第一渲染指令集合中不包含用于绘制透明物体的指令,则可以认为当前不需要进行透明物体的渲染,进而也不需要包含透明度通道的渲染格式,反之,如果用包含透明度通道的渲染格式进行渲染,在没有增加画质的前提下,会增加执行渲染任务时的DDR开销。
例如,第一渲染指令集合中渲染指令的透明特征可以根据如下指令特征确定,比如主场景RenderPass指令中是否存在Disable(GL_BLEND)等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧(即第一帧)调用Disable(GL_BLEND),则可以认为第一渲染指令集合中不包含用于绘制透明物体的指令。
本申请实施例中,将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中不包含用于绘制透明物体的指令时,可以认为第二帧也不需要进行透明物体的渲染。然而,当前渲染格式为第一渲染格式(包括透明度通道),若继续基于第一渲染格式进行第二帧的渲染,会增加不必要的DDR开销。
因此,在进行第二帧的渲染时需要采用不包括透明度通道的第二渲染格式,例如,所述第二渲染格式可以为R11G11B10F。
在一种可能的实现中,CPU需要可以将指示将所述第一渲染格式变更为第二渲染格式的第一渲染格式变更信息传递至GPU,以便GPU在进行第二帧的渲染时采用的渲染格式由第一渲染格式变更为第二渲染格式。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
示例性的,CPU可以检测Frame N帧(即上述第一帧)的渲染格式和透明特征,是否透明可以根据如下指令特征,比如主场景RenderPass指令中是否存在Disable/Enable(GL_BLEND)、BlendEquation、BlendFunc等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧调用Disable(GL_BLEND),同时渲染格式是RGBA16F,则给出Frame N+1帧(即上述第二帧)动态切换渲染格式决策,将RGBA16F切换为R11G11B10格式,Frame N+1基于新替换的R11G11B10渲染格式进行绘制。
本申请实施例提供了一种渲染格式选择方法,包括:获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中不包含用于绘制透明物体的指令时,可以认为第二帧也不需要进行透明物体的渲染。然而,当前渲染格式为第一渲染格式(包括透明度通道),若继续基于第一渲染格式进行第二帧的渲染,会增加不必要的DDR开销。因此,在进行第二帧的渲染时GPU采用不包括透明度通道的第二渲染格式,降低了DDR开销。
参照图4,图4为本申请实施例提供的一种渲染格式选择方法的流程示意,如图4中示出的那样,本申请实施例提供的渲染格式选择方法,包括:
401、获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象。
本申请实施例中,在游戏启动时,处理器可以获取到该游戏中各个帧的渲染指令;其中,第一渲染指令集合是其中一帧(第一帧)的的渲染指令。具体的,处理器可以获取到该游戏中第一帧的主场景绘制指令。
402、基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,当前的渲染格式为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二渲染格式可以由R通道、G通道以及B通道组成,例如所述第二渲染格式可以为R11G11B10F。
在一种可能的实现中,可以检测第一渲染指令集合中渲染指令的透明特征,若第一渲染指令集合中包含用于绘制透明物体的指令,则可以认为当前需要进行透明物体的渲染,进而也需要包含透明度通道的渲染格式,反之,如果用不包含透明度通道的渲染格式进行渲染,会大大降低渲染的画质。
例如,第一渲染指令集合中渲染指令的透明特征可以根据如下指令特征确定,比如主场景RenderPass指令中是否存在Enable(GL_BLEND)、BlendEquation、BlendFunc等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧(即第一帧)调用Enable(GL_BLEND),则可以认为第一渲染指令集合中包含用于绘制透明物体的指令。
本申请实施例中,将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中包含用于绘制透明物体的指令时,可以认为第二帧也需要进行透明物体的渲染。然而,当前渲染格式为第二渲染格式(不包括透明度通道),若继续 基于第二渲染格式进行第二帧的渲染,会大大降低渲染的画质。
因此,在进行第二帧的渲染时需要采用包括透明度通道的第一渲染格式,所述第一渲染格式可以由R通道、G通道、B通道以及A通道组成,例如,所述第一渲染格式可以为RGBA8或RGBA16F。
在一种可能的实现中,CPU需要可以将指示将所述第二渲染格式变更为第一渲染格式的第二渲染格式变更信息传递至GPU,以便GPU在进行第二帧的渲染时采用的渲染格式由第二渲染格式变更为第一渲染格式。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
示例性的,CPU可以检测Frame N帧(即上述第一帧)的渲染格式和透明特征,是否透明可以根据如下指令特征,比如主场景RenderPass指令中是否存在Disable/Enable(GL_BLEND)、BlendEquation、BlendFunc等指令,决定是否绘制透明物体。根据特征信息,做出决策结果,比如Frame N帧调用Enable(GL_BLEND),同时渲染格式是R11G11B10,则给出Frame N+1帧(即上述第二帧)动态切换渲染格式决策,将R11G11B10切换为RGBA16F格式,Frame N+1基于新替换的RGBA16F渲染格式进行绘制。
本申请实施例提供了一种渲染格式选择方法,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。将第一帧的渲染指令的透明特征作为进行第二帧的渲染格式选择的参考,在第一渲染指令集合中包含用于绘制透明物体的指令时,可以认为第二帧也需要进行透明物体的渲染。然而,当前渲染格式为第二渲染格式(不包括透明度通道),若继续基于第二渲染格式进行第二帧的渲染,会大大降低渲染的画质。因此,本申请在进行第二帧的渲染时需要采用包括透明度通道的第一渲染格式,可以提高渲染的画质。
应理解,包括透明度通道的不同渲染格式之间存在着像素值表示精度的差异,例如,RGBA8中为每个像素分配32位,红绿蓝和透明度各占8位,RGBA16F中为每个像素分配64位,红绿蓝和透明度各占16位,也就是RGBA16F支持的像素值表示精度大于RGBA8支持的像素值表示精度。
在一种可能的实现中,可能存在渲染的画质所需的像素值表示精度高于当前渲染格式支持的像素值表示精度的情况,在这种情况下,需要将渲染格式更改为支持更高像素值表示精度的渲染格式,以提高渲染的画质。
在一种可能的实现中,可以获取所述第二帧的绘制结果,绘制结果可以包括渲染界面上各个像素点的各个通道的值,或者可以将渲染界面划分为多个瓦片区域(tile区域,具体可以参照图5所示),绘制结果可以包括渲染界面上各个tile中一个或多个像素点(例如中心点)的各个通道的值。CPU可以基于绘制结果来确定当前的渲染格式是否满足第二帧 所需的像素值表示精度。具体的,可以判断绘制结果中是否存在像素值等于像素值表示精度上限值的像素点,如果存在(或者存在多个),则可以认为所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点。
在一种可能的实现中,若所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,则可以将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
示例性的,可以由RGBA8切换到RGBA16F,Frame N映射Render Buffer,比如1920*1080的Render Buffer,划分253个128*64个tile,从GPU内存读取每个tile中心值,判断值是否等于255,如果存在多个等于255,则认为存在高光区域,RGBA8渲染格式无法满足画质渲染要求,需要将RGBA8切换为RGBA16F。
在一种可能的实现中,可能存在渲染的画质所需的像素值表示精度低于当前渲染格式支持的像素值表示精度的情况,在这种情况下,需要将渲染格式更改为支持更低像素值表示精度的渲染格式,以降低DDR开销。
在一种可能的实现中,获取所述第二帧的绘制结果,基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
示例性的,以由RGBA16F切换到RGBA8为例,Frame N映射Render Buffer,比如1920*1080的Render Buffer,划分253个128*64个tile,读取每个tile中心值,如图5,判断值是否都小于1.0(规一化后的结果),如果是,则将RGBA16F降低为RGBA8。
本申请实施例的一个应用流程可以参照图6所示。
基于某款Top游戏性能测试数据,应用本申请实施例的方案的平均帧率由40.65fps提升到53.16fps,帧率提升12.51fps;功耗由1636.7mA降低到1591.86mA,功耗降低44.54mA;每小时卡顿次数由206降低到179,最差丢帧持平;单帧功率由40.26mA降低到29.94mA,单帧功耗优化10.32mA。
参照图7,图7为本申请提供了一种渲染格式选择装置的结构示意,如图7所示,所述装置700可以应用于终端设备,所述终端设备包括图形处理器GPU,所述装置700包括:
指令获取模块701,用于获取第一渲染指令集合,所述第一渲染指令集合用于绘制第 一帧的对象;
关于指令获取模块701的描述,可以参照上述实施例中步骤301的描述,这里不再赘述。
指令格式转换模块702,用于基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
关于指令格式转换模块702的描述,可以参照上述实施例中步骤302的描述,这里不再赘述。
在一种可能的实现中,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
在一种可能的实现中,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
参照图8,图8为本申请提供了一种渲染格式选择装置的结构示意,如图8所示,所述装置800可以应用于终端设备,所述终端设备包括图形处理器GPU,所述装置800包括:
指令获取模块801,用于获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
关于指令获取模块801的描述,可以参照上述实施例中步骤401的描述,这里不再赘述。
指令格式转换模块802,用于基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
关于指令格式转换模块802的描述,可以参照上述实施例中步骤402的描述,这里不再赘述。
在一种可能的实现中,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
在一种可能的实现中,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
在一种可能的实现中,所述指令获取模块,还用于获取所述第二帧的绘制结果;
所述指令格式转换模块,还用于基于所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的 对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
在一种可能的实现中,所述指令获取模块,还用于获取所述第二帧的绘制结果;
所述指令格式转换模块,还用于基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
参照图9,图9为本申请提供的一种终端设备900的结构示意,如图9示出的那样,所述终端设备包括处理器901和存储器903,所述处理器901包括中央处理器CPU和图形处理器GPU,所述CPU用于获取所述存储器的代码以执行:
获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
在一种可能的实现中,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
在一种可能的实现中,所述第二帧为所述第一帧之后相邻的帧。
其中,所述CPU用于获取所述存储器的代码以执行:
获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
在一种可能的实现中,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
在一种可能的实现中,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式 为R11G11B10F。
在一种可能的实现中,所述方法还包括:
获取所述第二帧的绘制结果;
基于所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
在一种可能的实现中,所述方法还包括:
获取所述第二帧的绘制结果;
基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
在一种可能的实现中,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出 来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者其他网络设备等)执行本申请图3实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (25)

  1. 一种渲染格式选择方法,其特征在于,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:
    获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
    基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
  2. 根据权利要求1所述的方法,其特征在于,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
  4. 根据权利要求1至3任一所述的方法,其特征在于,所述第二帧为所述第一帧之后相邻的帧。
  5. 一种渲染格式选择方法,其特征在于,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:
    获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
    基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
  6. 根据权利要求5所述的方法,其特征在于,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
  7. 根据权利要求5或6所述的方法,其特征在于,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
  8. 根据权利要求5至7任一所述的方法,其特征在于,所述方法还包括:
    获取所述第二帧的绘制结果;
    基于所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格 式支持的像素值表示精度上限的像素点,将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
  9. 根据权利要求8所述的方法,其特征在于,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
  10. 根据权利要求5至7任一所述的方法,其特征在于,所述方法还包括:
    获取所述第二帧的绘制结果;
    基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
  11. 根据权利要求10所述的方法,其特征在于,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
  12. 一种渲染格式选择装置,其特征在于,所述装置应用于终端设备,所述终端设备包括图形处理器GPU,所述装置包括:
    指令获取模块,用于获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
    指令格式转换模块,用于基于所述第一渲染指令集合不包含用于绘制透明物体的指令,且当前的渲染格式为第一渲染格式,将第一渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第一渲染格式变更信息绘制第二帧的对象,其中,所述第一渲染格式包括透明度通道,所述第一渲染格式变更信息用于指示将所述第一渲染格式变更为第二渲染格式,所述第二渲染格式不包括透明度通道,所述第二帧为所述第一帧之后的帧。
  13. 根据权利要求12所述的装置,其特征在于,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
  14. 根据权利要求12或13所述的装置,其特征在于,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
  15. 根据权利要求12至14任一所述的装置,其特征在于,所述第二帧为所述第一帧之后相邻的帧。
  16. 一种渲染格式选择装置,其特征在于,所述装置应用于终端设备,所述终端设备包括图形处理器GPU,所述装置包括:
    指令获取模块,用于获取第一渲染指令集合,所述第一渲染指令集合用于绘制第一帧的对象;
    指令格式转换模块,用于基于所述第一渲染指令集合包含用于绘制透明物体的指令,且当前的渲染格式为第二渲染格式,将第二渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第二渲染格式变更信息绘制第二帧的对象,其中,所述第二渲染格式不包括透明度通道,所述第二渲染格式变更信息用于指示将所述第二渲染格式变更为第一渲染格式,所述第一渲染格式包括透明度通道,所述第二帧为所述第一帧之后的帧。
  17. 根据权利要求16所述的装置,其特征在于,所述第一渲染格式由R通道、G通道、B通道以及A通道组成,所述第二渲染格式由R通道、G通道以及B通道组成。
  18. 根据权利要求16或17所述的装置,其特征在于,所述第一渲染格式为RGBA8或RGBA16F,所述第二渲染格式为R11G11B10F。
  19. 根据权利要求16至18任一所述的装置,其特征在于,所述指令获取模块,还用于获取所述第二帧的绘制结果;
    所述指令格式转换模块,还用于基于所述绘制结果指示所述第二帧中存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第三渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第三渲染格式变更信息绘制第三帧的对象,其中,所述第三渲染格式变更信息用于指示将所述第一渲染格式变更为第三渲染格式,所述第三渲染格式支持的像素值表示精度上限大于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
  20. 根据权利要求19所述的装置,其特征在于,所述第二渲染格式为RGBA8,所述第三渲染格式为RGBA16F。
  21. 根据权利要求16至18任一所述的装置,其特征在于,所述指令获取模块,还用于获取所述第二帧的绘制结果;
    所述指令格式转换模块,还用于基于所述绘制结果指示所述第二帧中不存在所需的像素值表示精度超过所述第一渲染格式支持的像素值表示精度上限的像素点,将第四渲染格式变更信息传递至所述GPU,以便所述GPU根据所述第四渲染格式变更信息绘制第三帧的对象,其中,所述第四渲染格式变更信息用于指示将所述第一渲染格式变更为第四渲染 格式,所述第四渲染格式支持的像素值表示精度上限小于所述第一渲染格式支持的像素值表示精度上限,所述第三帧为所述第二帧之后的帧。
  22. 根据权利要求21所述的装置,其特征在于,所述第三渲染格式为RGBA16F,所述第二渲染格式为RGBA8。
  23. 一种非易失性计算机可读存储介质,其特征在于,所述非易失性可读存储介质包含计算机指令,用于执行权利要求1至11任一所述的渲染格式选择方法。
  24. 一种运算设备,其特征在于,所述运算设备包括存储器和处理器,所述存储器中存储有代码,所述处理器用于获取所述代码,以执行权利要求1至11任一所述的渲染格式选择方法。
  25. 一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至11任一所述的方法。
CN202280066021.6A 2021-09-29 2022-09-28 一种渲染格式选择方法及其相关设备 Pending CN118043842A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202111155620.9A CN115880127A (zh) 2021-09-29 2021-09-29 一种渲染格式选择方法及其相关设备
CN2021111556209 2021-09-29
PCT/CN2022/122060 WO2023051590A1 (zh) 2021-09-29 2022-09-28 一种渲染格式选择方法及其相关设备

Publications (1)

Publication Number Publication Date
CN118043842A true CN118043842A (zh) 2024-05-14

Family

ID=85756524

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111155620.9A Pending CN115880127A (zh) 2021-09-29 2021-09-29 一种渲染格式选择方法及其相关设备
CN202280066021.6A Pending CN118043842A (zh) 2021-09-29 2022-09-28 一种渲染格式选择方法及其相关设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111155620.9A Pending CN115880127A (zh) 2021-09-29 2021-09-29 一种渲染格式选择方法及其相关设备

Country Status (3)

Country Link
EP (1) EP4379647A1 (zh)
CN (2) CN115880127A (zh)
WO (1) WO2023051590A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117743195B (zh) * 2024-02-20 2024-04-26 北京麟卓信息科技有限公司 基于渲染时间差异度量的图形接口层次化实现验证方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9679348B2 (en) * 2014-05-15 2017-06-13 Disney Enterprises, Inc. Storage and compression methods for animated images
US10074155B2 (en) * 2016-06-10 2018-09-11 Apple Inc. Dynamic selection of image rendering formats
CN108876887B (zh) * 2017-05-16 2021-12-14 北京京东尚科信息技术有限公司 渲染方法和装置
CN113313802B (zh) * 2021-05-25 2022-03-11 完美世界(北京)软件科技发展有限公司 图像渲染方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2023051590A1 (zh) 2023-04-06
EP4379647A1 (en) 2024-06-05
CN115880127A (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
EP4198909A1 (en) Image rendering method and apparatus, and computer device and storage medium
US10049426B2 (en) Draw call visibility stream
KR102475212B1 (ko) 타일식 아키텍처들에서의 포비티드 렌더링
US10311548B2 (en) Scaling render targets to a higher rendering resolution to display higher quality video frames
US10776997B2 (en) Rendering an image from computer graphics using two rendering computing devices
US8325177B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
KR101633243B1 (ko) 가시성 정보를 사용한 그래픽 데이터의 렌더링
US10134160B2 (en) Anti-aliasing for graphics hardware
US10055883B2 (en) Frustum tests for sub-pixel shadows
US9224227B2 (en) Tile shader for screen space, a method of rendering and a graphics processing unit employing the tile shader
US9501860B2 (en) Sparse rasterization
KR102140387B1 (ko) 대역폭-압축된 그래픽스 데이터의 저장
US9811940B2 (en) Bandwidth reduction using vertex shader
CN109785417B (zh) 一种实现OpenGL累积操作的方法及装置
KR20180056316A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
CN105550973B (zh) 图形处理单元、图形处理***及抗锯齿处理方法
US20220138988A1 (en) Streaming a light field compressed utilizing lossless or lossy compression
CN118043842A (zh) 一种渲染格式选择方法及其相关设备
TW202322043A (zh) 小網格著色圖譜
WO2022089504A1 (zh) 一种数据处理方法及相关装置
US20240087078A1 (en) Two-level primitive batch binning with hardware state compression
WO2023241210A1 (zh) 虚拟场景的渲染方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination