CN118212339A - 纹理处理方法及装置、计算机可读存储介质和电子设备 - Google Patents
纹理处理方法及装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN118212339A CN118212339A CN202211626004.1A CN202211626004A CN118212339A CN 118212339 A CN118212339 A CN 118212339A CN 202211626004 A CN202211626004 A CN 202211626004A CN 118212339 A CN118212339 A CN 118212339A
- Authority
- CN
- China
- Prior art keywords
- texture
- rendering
- application program
- program interface
- target
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000009877 rendering Methods 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000001514 detection method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 12
- DWDGSKGGUZPXMQ-UHFFFAOYSA-N OPPO Chemical compound OPPO DWDGSKGGUZPXMQ-UHFFFAOYSA-N 0.000 description 9
- 238000012805 post-processing Methods 0.000 description 6
- 239000011800 void material Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 102100027159 Membrane primary amine oxidase Human genes 0.000 description 1
- 101710132836 Membrane primary amine oxidase Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- -1 bloom Proteins 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本公开提供了一种纹理处理方法、纹理处理装置、计算机可读存储介质和电子设备,涉及计算机技术领域。该纹理处理方法包括:对渲染过程中调用的应用程序接口进行检测,以确定应用程序接口的类别;结合应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,存储指示信息用于指示纹理存储至最后一级缓存LLC。本公开可以降低渲染过程中访问内存的频次。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种纹理处理方法、纹理处理装置、计算机可读存储介质和电子设备。
背景技术
在计算机***执行渲染任务的过程中,处理器会频繁地访问内存,对内存带宽要求高、功耗大。尤其对于执行游戏渲染的终端设备,可能出现延时高等影响游戏体验的问题。
发明内容
本公开提供一种纹理处理方法、纹理处理装置、计算机可读存储介质和电子设备,进而至少在一定程度上克服处理器访问内存频次高的问题。
根据本公开的第一方面,提供了一种纹理处理方法,包括:对渲染过程中调用的应用程序接口进行检测,以确定应用程序接口的类别;结合应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,存储指示信息用于指示纹理存储至最后一级缓存LLC。
根据本公开的第二方面,提供了一种纹理处理装置,包括:接口检测模块,用于对渲染过程中调用的应用程序接口进行检测,以确定应用程序接口的类别;纹理存储模块,用于结合应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,存储指示信息用于指示纹理存储至最后一级缓存LLC。
根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的纹理处理方法。
根据本公开的第四方面,提供了一种电子设备,包括处理器;存储器,用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得所述处理器实现上述的纹理处理方法。
在本公开的一些实施例所提供的技术方案中,通过给纹理添加存储指示信息,可以将渲染过程使用的纹理存储至最后一级缓存LLC,由此,处理器可以从最后一级缓存LLC中获取纹理而无需访问内存,降低了渲染过程中访问内存的频次,有助于降低延时和功耗,可以提升设备性能以及用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了一种延迟渲染的流程示意图;
图2示出了本公开实施方式的纹理处理方案的拓扑结构的示意图;
图3示出了本公开实施例的最后一级缓存LLC的不同模式的示意图;
图4示出了本公开实施方式的游戏渲染的软件架构的示意图;
图5示出了一种游戏引擎渲染算法的流程示意图;
图6示出了另一种游戏引擎渲染算法的流程示意图;
图7示意性示出了根据本公开示例性实施方式的纹理处理方法的流程图;
图8示意性示出了根据本公开示例性实施方式的纹理处理装置的方框图;
图9示意性示出了根据本公开另一示例性实施方式的纹理处理装置的方框图;
图10示意性示出了根据本公开示例性实施方式的电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,下面所有的术语“第一”、“第二”仅是为了区分的目的,不应作为本公开内容的限制。
在渲染过程中,尤其在终端设备执行游戏渲染任务的过程中,存在两种场景。第一种为分阶段渲染一帧画面,也就是说,帧内容生成前需要经历多个渲染阶段。另一种为后处理,在该场景下,对于内存中的帧缓存,GPU(Graphics Processing Unit,图形处理器)进行回读,执行一些后处理操作。
游戏引擎Unity的管线可以实现延迟渲染,延迟渲染相对于前向渲染,可以减轻GPU光照计算的运算量,有助于提升性能,但是会增加内存读写的频次。
延迟渲染是渲染一帧画面需要经历多个渲染阶段的例子,在现有的移动平台上,存在相应的硬件设计和软件功能来优化流程。这种技术如被称为Framebuffer Fetch或者Pixel Local Storage。通过合理的设计,可以保证前一渲染阶段的屏幕分块的内容能够直接被后一渲染阶段读取,避免数据经过内存流转,节省内存宽带和功耗。
图1示出了一种延迟渲染的流程示意图。参考图1,在内存中可以存在漫反射贴图(map)、法线贴图、光照贴图等,通过GPU中的G-Buffer(Geometry Buffer,几何缓冲)阶段、着色阶段、组合阶段的处理,得到帧图像。其中,GPU的每个阶段中均涉及分块缓冲区(TileBuffer)。
图2示出了本公开实施方式的纹理处理方案的拓扑结构的示意图。参考图2,该拓扑结构可以包括IP核、总线、最后一级缓存LLC和内存。通过在终端设备平台SoC(System onChip,片上***)中引入最后一级缓存LLC,可以降低IP核访问内存的延迟,提升性能,减少IP核内存访问的频次并降低功耗。
通常,最后一级缓存LLC的大小、分区、模式是可以配置的。参考图3,最后一级缓存LLC的模式可以包括高速缓存模式(Cache模式)、SPM(ScratchcPad Memory,暂存器)模式以及高速缓存模式与SPM模式结合的混合模式。其中,SPM类似内存,可以没有内存备份,软件上可以如分配内存一样分配SPM的空间。另外,最后一级缓存LLC分配给哪一个IP核也是可控的。
本公开实施方式针对渲染管线的特点,充分利用最后一级缓存LLC的特性,提出了一种在最后一级缓存LLC中进行图像后处理的方案。
图4示出了本公开实施方式的游戏渲染的软件架构的示意图。为了实现降低内存访问频次的目的,本公开实施方式的处理方案可以包括GPU用户态驱动的驱动扩展以及安卓框架层的纹理定位。其中,驱动扩展包括但不限于对GLES和Vulkan进行驱动扩展,GLES和Vulkan均为图形API(Application Programming Interface,应用程序接口)。
参考图4,应当理解的是,在进行驱动扩展后,游戏端可以使用扩展的内容来实现对应的功能,在这种由游戏应用单独使用API扩展的场景中,本公开控制数据存储至最后一级缓存LLC的方案也可以不对安卓框架层进行改进。而对于游戏端无法改变或无权改变的场景,即游戏端未使用API扩展的场景,在进行驱动扩展后,可以对安卓框架层进行改进,以实现本公开将相应内容存储至最后一级缓存LLC的目的。
应当理解的是,本公开实施例预先进行的驱动扩展遵从API自身的标准和定义,是GPU用户态驱动的一部分。驱动扩展的内容与最后一级缓存LLC相关,并且驱动扩展的内容包括与添加信息以使数据存储至最后一级缓存LLC的内容。下面将分别对GLES驱动的扩展和Vulkan驱动的扩展进行说明。
针对GLES驱动的扩展,可以包括以下扩展内容:
扩展内容1,查询扩展:
const char*glGetString(GL_EXTENSIONS)
函数返回字符串中带有“GL_OPPO_LLC”表明支持该OPPO LLC扩展。
扩展内容2,打开关闭OPPO LLC功能:
glEnable(GL_OPPO_LLC),glDisable(GL_OPPO_LLC)
扩展内容3,获得可供应用使用的最大的LLC SPM大小,将值保存在data中:
void glGetIntegerv(GL_MAX_OPPO_LLC_SPM,GLint*data)
扩展内容4,应用通知驱动把纹理(texture)存入LLC,在标准的glTexImage2D和glTexStorage2D函数第一个参数GLenum target的基础上,支持兼容的比特位GL_TEXTURE_OPPO_LLC,如:
void glTexImage2D(GL_TEXTURE_2D|GL_TEXTURE_OPPO_LLC,…);
void glTexStorage2D(GL_TEXTURE_2D|GL_TEXTURE_OPPO_LLC,…)
本公开实施例针对的是GPU渲染流程的后处理相关的过程,将纹理作为帧缓存对象的附件(attachment)使用,不包括外部纹理上传。
扩展内容5,通知驱动绑定在帧缓存上的纹理附件失效:
void glInvalidateFramebuffer(GL_TEXTURE_2D|GL_TEXTURE_OPPO_LLC,…)
针对Vulkan驱动的扩展,可以包括以下扩展内容:
扩展内容1,查询扩展:
void vkEnumerateDeviceExtensionProperties(physicalDevice,…)
函数的输出参数中带有“VK_OPPO_LLC”表明支持该OPPO LLC扩展。
扩展内容2,创建设备vkCreateDevice函数第二个参数VkDeviceCreateInfo结构的ppEnabledExtensionNames指针添加扩展VK_OPPO_LLC字符串。
扩展内容3,获得可供应用使用的最大的LLC大小:
void vkGetPhysicalDeviceProperties(VkPhysicalDevice,VkPhysicalDeviceProperties*)
返回值可以保存在字段中,该字段为VkPhysicalDeviceProperties的VkPhysicalDeviceLimits字段,另外新增uint32_t maxLLCSize字段。
扩展内容4,使用vkAllocateMemory分配内存的时候,VkMemoryAllocateInfo结构的memoryTypeIndex字段,可以增加VK_MEMORY_PROPERTY_OPPO_LLC的兼容类型,另外,可以和VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT一并使用,确保分配的内存在LLC SPM中。
应当理解的是,上述API驱动扩展仅是示例性的表示,本公开对API的类型以及扩展内容均不做限制。
通过例如上述的API驱动扩展,在游戏应用单独使用API扩展的场景中,可以实现将数据存储至最后一级缓存LLC。此外,还可以对安卓框架层进行改进,以实现将数据存储至最后一级缓存LLC。
鉴于本公开实施方式的纹理处理方案的过程与游戏引擎Unity渲染流程相关,首先以图5和图6为例对游戏引擎渲染算法进行说明。
针对游戏引擎Unity的屏幕空间算法,如SSAO、Bloom、SSS、SSR等全屏后处理算法,Screen Space Shadowmap等实时阴影技术,实时地形生成、实时脚印生成等环境交互技术,TAA、SMAA等屏幕空间抗锯齿技术等,均涉及屏幕空间的渲染技术。本公开实施例中与它们相关的处理过程可以参考图5所示。
在图5中,首先,绘图命令1对应到离屏渲染目标1,纹理附加在渲染目标的颜色附件或深度附件上。接下来,绘图命令2对纹理进行采样,并渲染到渲染目标0。然后,可以在显示器上呈现渲染目标0。
游戏引擎Unity的Grab Pass是在当前着色器中获取当前渲染目标已经渲染的所有像素,并经相关计算后绘制到同一张渲染目标上的渲染过程,常用于需要对当前屏幕中预先绘制的部分对象进行处理的情况,例如水下物体的折射、部分物体的扭曲等。
针对Unity的Grab Pass的过程,可以参考图6所示。
在图6中,首先,绘图命令1对应到离屏渲染目标1。在触发Grab Pass时,将当前绘制结果在GPU端拷贝一份,称为Grab纹理。接下来,绘图指令2对Grab纹理进行采样,并渲染到渲染目标0。然后,可以在显示器上呈现渲染目标0。
下面以GLES为例,对本公开实施方式的纹理处理方法进行说明。本公开实施方式的纹理处理方法由终端设备实现,也就是说,终端设备可以执行本公开实施方式的纹理处理方法的各个步骤。其中,终端设备可以例如为智能手机、平板电脑、个人计算机、智能可穿戴设备、服务器等,本公开对终端设备的类型不做限制。
图7示意性示出了本公开的示例性实施方式的纹理处理方法的流程图。参考图7,纹理处理方法可以包括以下步骤:
S72.对渲染过程中调用的应用程序接口进行检测,以确定应用程序接口的类别;
S74.结合应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,存储指示信息用于指示纹理存储至最后一级缓存LLC。
根据本公开的一些实施例,针对与图5对应的后处理场景,检测到应用程序接口是绑定纹理的帧缓存对象作为颜色附件或深度附件的程序接口。其中,纹理(texture)为图形学术语,其数据可以包括图像数据、对象在屏幕坐标系下的深度数据或其他类型数据。颜色附件(color attachment)可以用于在终端设备根据渲染指令进行绘制时存储绘制结果中各像素点的颜色数据(如像素点的RGB值)。深度附件(depth attachment)可以用于在终端设备根据渲染指令进行绘制时存储绘制结果中各像素点的深度数据。
首先,终端设备可以获取渲染指令,并判断该渲染指令对应的渲染目标是否包括离屏渲染的渲染目标。其中,本公开实施例中的渲染目标指的是GPU划分出的渲染缓冲区(buffer)。
具体的,可以对离屏渲染的渲染目标进行标记,以得到第一标记信息。例如,将渲染目标的buffer的地址作为第一标记信息。在这种情况下,如果渲染指令包含第一标识信息,则终端设备可以确定出渲染指令对应的渲染目标包括离屏渲染的渲染目标。如果渲染指令不包含第一标识信息,则终端设备确定出渲染指令对应的渲染目标不包括离屏渲染的渲染目标。
在确定出渲染指令对应的渲染目标包括离屏渲染的渲染目标的情况下,可以从上下文(context)中查找到纹理。
具体的,可以对纹理进行标记,以得到第二标识信息。在这种情况下,可以利用第二标识信息从上下文中查找到该纹理。
接下来,可以针对该纹理添加存储指示信息。如上面驱动扩展的说明,可以通过应用程序接口的与添加存储指示信息的驱动给该纹理添加存储指示信息,以实现该纹理存储至最后一级缓存LLC。具体的,该存储指示信息为上述GL_TEXTURE_OPPO_LLC。
根据本公开的另一些实施例,针对与图6对应的Grab Pass场景,检测到的应用程序接口是与纹理拷贝相关的程序接口。就拷贝这一场景,存在数据从拷贝源传送至拷贝目的的过程,无论是拷贝源还是拷贝目的,均可以分别为一个缓冲区。在这种情况下,上述纹理可以是拷贝目的对应的目的纹理。
首先,终端设备可以确定与该应用程序接口对应的拷贝源的源纹理以及拷贝目的的目的纹理。可以理解的是,就数据本身而言,由于执行的是拷贝操作,拷贝源与拷贝目的的数据相同。
接下来,在源纹理的纹理特征与在屏渲染的渲染目标绑定的纹理的纹理特征相同并且渲染指令的渲染目标与在屏渲染的渲染目标相同的情况下,如果渲染指令包含的指令对目的纹理进行采集,则在下一帧纹理进行拷贝的过程中,针对目的纹理添加存储指示信息,以实现该纹理存储至最后一级缓存LLC。
本公开实施例中的纹理特征包括纹理大小、高度、宽度、格式、数据类型等纹理属性,本公开对其不做限制。
具体的,可以先判断源纹理的纹理特征是否与在屏渲染的渲染目标绑定的纹理的纹理特征相同。如果二者纹理特征不相同,则终止为纹理添加存储指示信息的后续判断过程。
如果二者纹理特征相同,则判断渲染指令的渲染目标与在屏渲染的渲染目标是否相同。如果二者渲染目标不同,则终止为纹理添加存储指示信息的后续判断过程。
如果二者渲染目标相同,则判断渲染指令包含的指令是否与目的纹理进行采集。如果未采集,则终止为纹理添加存储指示信息的后续判断过程。
如果渲染指令包含的指令对目的纹理进行采集,则在下一帧纹理进行拷贝的过程中,针对目的纹理添加存储指示信息,以实现将该纹理存储至最后一级缓存LLC。具体的,该存储指示信息为上述GL_TEXTURE_OPPO_LLC。
对于终止后未添加存储指示信息的纹理,可以执行内存存储的方式。
可以理解的是,在连续帧的方案中,可以逐帧执行上述纹理特征比较、渲染目标比对以及是否采集目的纹理的判断过程,如果均满足上述判断条件,则为该帧配置存储指示信息。如果任一种判断条件未满足,则将该帧配置为内存存储的方式。
本公开实施例结合对应用程序接口以及渲染目标的判断,在满足条件时,可以给纹理添加基于驱动扩展而得到的存储指示信息,指示该纹理存储至最后一级缓存LLC。由此,处理器可以从最后一级缓存LLC中获取纹理而无需访问内存,降低了渲染过程中访问内存的频次,有助于降低延时和功耗,可以提升设备性能以及用户体验。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中还提供了一种纹理处理装置。
图8示意性示出了本公开的示例性实施方式的纹理处理装置的方框图。参考图8,根据本公开的示例性实施方式的纹理处理装置8可以包括接口检测模块81和纹理存储模块83。
具体的,接口检测模块81可以用于对渲染过程中调用的应用程序接口进行检测,以确定应用程序接口的类别;纹理存储模块83可以用于结合应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,存储指示信息用于指示纹理存储至最后一级缓存LLC。
根据本公开的示例性实施例,应用程序接口是绑定纹理的帧缓存对象作为颜色附件或深度附件的程序接口。在这种情况下,纹理存储模块83可以被配置为执行:获取渲染指令,在渲染指令对应的渲染目标包括离屏渲染的渲染目标的情况下,从上下文中查找到纹理;针对纹理添加存储指示信息。
根据本公开的示例性实施例,纹理存储模块83可以被配置为执行:对离屏渲染的渲染目标进行标记,以得到第一标识信息;在渲染指令包含第一标识信息的情况下,确定出渲染指令对应的渲染目标包括离屏渲染的渲染目标。
根据本公开的示例性实施例,纹理存储模块83可以被配置为执行:在检测出应用程序接口时,对纹理进行标记,以得到第二标识信息;其中,通过第二标识信息从上下文中查找到纹理。
根据本公开的示例性实施例,应用程序接口是与纹理拷贝相关的程序接口,纹理是拷贝目的对应的目的纹理。在这种情况下,纹理存储模块83可以被配置为执行:确定与应用程序接口对应的拷贝源的源纹理以及拷贝目的的目的纹理;在源纹理的纹理特征与在屏渲染的渲染目标绑定的纹理的纹理特征相同并且渲染指令的渲染目标与在屏渲染的渲染目标相同的情况下,如果渲染指令包含的指令对目的纹理进行采样,则在下一帧纹理进行拷贝的过程中,针对目的纹理添加存储指示信息。
根据本公开的示例性实施例,纹理存储模块83可以被配置为执行:通过应用程序接口的与添加存储指示信息的驱动给纹理添加存储指示信息。
根据本公开的示例性实施例,参考图9,相对于纹理处理装置8,纹理处理装置9还可以包括驱动扩展模块91。
具体的,驱动扩展模块91可以被配置为执行:预先对应用程序接口进行驱动扩展;其中,驱动扩展的内容与最后一级缓存LLC相关,且驱动扩展的内容包括与添加存储指示信息相关的内容。
由于本公开实施方式的纹理处理装置的各个功能模块与上述方法实施方式中相同,因此在此不再赘述。
图10示出了适于用来实现本公开示例性实施方式的电子设备的示意图。本公开示例性实施方式的终端设备可以被配置为如图10的形式。需要说明的是,图10示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本公开的电子设备至少包括处理器和存储器,存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器可以实现本公开示例性实施方式的纹理处理方法。
具体的,如图10所示,电子设备100可以包括:处理器1010、内部存储器1021、外部存储器接口1022、通用串行总线(Universal Serial Bus,USB)接口1030、充电管理模块1040、电源管理模块1041、电池1042、天线1、天线2、移动通信模块1050、无线通信模块1060、音频模块1070、传感器模块1080、显示屏1090、摄像模组1091、指示器1092、马达1093、按键1094以及用户标识模块(Subscriber Identification Module,SIM)卡接口1095等。其中传感器模块1080可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。
可以理解的是,本公开实施例示意的结构并不构成对电子设备100的具体限定。在本公开另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
处理器1010可以包括一个或多个处理单元,例如:处理器1010可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器1010中还可以设置存储器,用于存储指令和数据。
电子设备100可以通过ISP、摄像模组1091、视频编解码器、GPU、显示屏1090及应用处理器等实现拍摄功能。在一些实施例中,电子设备100可以包括1个或N个摄像模组1091,N为大于1的正整数,若电子设备100包括N个摄像头,N个摄像头中有一个是主摄像头。
内部存储器1021可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器1021可以包括存储程序区和存储数据区。外部存储器接口1022可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读存储介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如本公开实施例中所述的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (10)
1.一种纹理处理方法,其特征在于,包括:
对渲染过程中调用的应用程序接口进行检测,以确定所述应用程序接口的类别;
结合所述应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,所述存储指示信息用于指示所述纹理存储至最后一级缓存LLC。
2.根据权利要求1所述的纹理处理方法,其特征在于,所述应用程序接口是绑定所述纹理的帧缓存对象作为颜色附件或深度附件的程序接口;其中,结合所述应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,包括:
获取渲染指令,在所述渲染指令对应的渲染目标包括离屏渲染的渲染目标的情况下,从上下文中查找到所述纹理;
针对所述纹理添加所述存储指示信息。
3.根据权利要求2所述的纹理处理方法,其特征在于,所述纹理处理方法还包括:
对离屏渲染的渲染目标进行标记,以得到第一标识信息;
在所述渲染指令包含所述第一标识信息的情况下,确定出所述渲染指令对应的渲染目标包括离屏渲染的渲染目标。
4.根据权利要求2所述的纹理处理方法,其特征在于,所述纹理处理方法还包括:
在检测出所述应用程序接口时,对所述纹理进行标记,以得到第二标识信息;
其中,通过所述第二标识信息从所述上下文中查找到所述纹理。
5.根据权利要求1所述的纹理处理方法,其特征在于,所述应用程序接口是与纹理拷贝相关的程序接口,所述纹理是拷贝目的对应的目的纹理;其中,结合所述应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,包括:
确定与所述应用程序接口对应的拷贝源的源纹理以及拷贝目的的目的纹理;
在所述源纹理的纹理特征与在屏渲染的渲染目标绑定的纹理的纹理特征相同并且渲染指令的渲染目标与在屏渲染的渲染目标相同的情况下,如果所述渲染指令包含的指令对所述目的纹理进行采样,则在下一帧纹理进行拷贝的过程中,针对所述目的纹理添加所述存储指示信息。
6.根据权利要求1至5中任一项所述的纹理处理方法,其特征在于,针对纹理添加存储指示信息包括:
通过所述应用程序接口的与添加所述存储指示信息的驱动给所述纹理添加所述存储指示信息。
7.根据权利要求6所述的纹理处理方法,其特征在于,所述纹理处理方法还包括:
预先对所述应用程序接口进行驱动扩展;
其中,驱动扩展的内容与所述最后一级缓存LLC相关,且驱动扩展的内容包括与添加所述存储指示信息相关的内容。
8.一种纹理处理装置,其特征在于,包括:
接口检测模块,用于对渲染过程中调用的应用程序接口进行检测,以确定所述应用程序接口的类别;
纹理存储模块,用于结合所述应用程序接口的类别以及渲染的渲染目标,针对纹理添加存储指示信息,所述存储指示信息用于指示所述纹理存储至最后一级缓存LLC。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的纹理处理方法。
10.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至7中任一项所述的纹理处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211626004.1A CN118212339A (zh) | 2022-12-15 | 2022-12-15 | 纹理处理方法及装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211626004.1A CN118212339A (zh) | 2022-12-15 | 2022-12-15 | 纹理处理方法及装置、计算机可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118212339A true CN118212339A (zh) | 2024-06-18 |
Family
ID=91452669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211626004.1A Pending CN118212339A (zh) | 2022-12-15 | 2022-12-15 | 纹理处理方法及装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118212339A (zh) |
-
2022
- 2022-12-15 CN CN202211626004.1A patent/CN118212339A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111724293B (zh) | 图像渲染方法及装置、电子设备 | |
US10164459B2 (en) | Selective rasterization | |
KR101980990B1 (ko) | 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용 | |
CN113034358B (zh) | 一种超分辨率图像处理方法以及相关装置 | |
CN105550973B (zh) | 图形处理单元、图形处理***及抗锯齿处理方法 | |
US20230351604A1 (en) | Image cutting method and apparatus, computer device, and storage medium | |
US8872824B1 (en) | System, method, and computer program product for performing shadowing utilizing shadow maps and ray tracing | |
CN114596383A (zh) | 线条特效处理方法、装置、电子设备、存储介质及产品 | |
CN116563083A (zh) | 渲染图像的方法和相关装置 | |
JP2013026933A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
WO2023051590A1 (zh) | 一种渲染格式选择方法及其相关设备 | |
CN113963000B (zh) | 图像分割方法、装置、电子设备及程序产品 | |
CN118212339A (zh) | 纹理处理方法及装置、计算机可读存储介质和电子设备 | |
CN112465692A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN114549303B (zh) | 图像显示、处理方法、装置、设备和存储介质 | |
CN114170366A (zh) | 基于点线特征融合的三维重建方法及电子设备 | |
CN115311397A (zh) | 用于图像渲染的方法、装置、设备和存储介质 | |
CN113837918B (zh) | 多进程实现渲染隔离的方法及装置 | |
CN114820660A (zh) | 图像处理方法、装置、电子设备、存储介质及程序产品 | |
KR20180015564A (ko) | 타일-기반 렌더링을 수행하는 방법 및 장치 | |
CN112989924A (zh) | 目标检测方法、目标检测装置及终端设备 | |
CN115829846A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN110942065B (zh) | 文本框选方法、装置、终端设备及计算机可读存储介质 | |
CN116453131B (zh) | 文档图像矫正方法、电子设备及存储介质 | |
CN116309160B (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 |