CN115661325A - 一种基于neon指令的纹理格式转换优化方法及系统 - Google Patents
一种基于neon指令的纹理格式转换优化方法及系统 Download PDFInfo
- Publication number
- CN115661325A CN115661325A CN202211647611.6A CN202211647611A CN115661325A CN 115661325 A CN115661325 A CN 115661325A CN 202211647611 A CN202211647611 A CN 202211647611A CN 115661325 A CN115661325 A CN 115661325A
- Authority
- CN
- China
- Prior art keywords
- texture
- texture format
- format
- vector register
- neon
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 82
- 229910052754 neon Inorganic materials 0.000 title claims abstract description 75
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005457 optimization Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种基于NEON指令的纹理格式转换优化方法及系统,本发明基于NEON指令的纹理格式转换优化方法包括:S1,接收到纹理格式转换请求;S2,采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中,所述向量寄存器同时包含多个颜色分量的存储空间;S3,采用NEON指令将向量寄存器中存储颜色分量并行按照目标纹理格式的格式拷贝到内存中得到目标纹理格式的纹理。本发明通过NEON指令进行并行的纹理格式转换,加速纹理数据拷贝速度,一定程度上解决纹理数据上传接口的性能,达到提高OpenGL/ES API效率及用户体验的目的。
Description
技术领域
本发明涉及计算机图像渲染技术领域,具体涉及一种基于NEON指令的纹理格式转换优化方法及系统。
背景技术
纹理是通过摄像机拍摄或者艺术家绘制的一张图片,也可通过程序生成或者由OpenGL(英语:Open Graphics Library,译名为开放图形库或开放式图形库)将纹理作为一种显示设备渲染得到。自然世界中的纹理是二维的,但是OpenGL也支持其他类型的纹理格式:一维纹理、三维纹理、立方体纹理映射,以及缓存纹理。纹理是由纹素组成的,其中通常包含颜色数据信息。应用可以将纹理贴到物体表面,就像贴墙纸一样,这就是纹理映射。其中,OpenGL是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形到复杂的三维景象。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
很多应用场景都需要使用纹理映射,而上传纹理图片数据到显存时,需要经常涉及到纹理格式转换,比如RGB格式转RGBX格式。Mesa 3D是一个在MIT许可证下开放源代码的三维计算机图形库,以开源形式实现OpenGL的应用程序接口。OpenGL的高效实现一般依赖于显示设备厂商提供的硬件,而Mesa 3D是一个纯基于软件的图形应用程序接口。各种设备驱动程序允许 Mesa库在许多不同的环境中使用,从软件仿真到现代 GPU 的完整硬件加速。多年来,该项目已经发展到实现更多图形API, 包括OpenGL ES、OpenCL、OpenMAX、VDPAU、VA-API、XvMC、Vulkan和EGL。但目前Mesa 3D上的实现只是考虑了格式转换的通用性,并未考虑转换性能,只是简单的一个个像素分量进行拷贝。如目前在Mesa中调用glTexImage2D(内部格式GL_RGB, 外部格式GL_RGB, 纹理数据类型GL_UNSIGNED_BYTE)的实现步骤如下:步骤1: 根据纹理数据的宽和高、数据大小,分配VRAM显存。步骤2: 分配同样大小的GTT内存。步骤3: 将纹理数据拷贝到GTT(graphics translation table,图形转换表)内存。如果不涉及纹理格式转换,一行一行使用内存拷贝memcpy;如果涉及纹理格式转换,一个个像素分量进行拷贝转换。步骤4: 将GTT内存中的数据使用DMA或者图形引擎搬运到VRAM显存中。在步骤3中,如果纹理数据外部格式为GL_RGBA,内部格式GL_RGBA, 将不会触发纹理格式转换;如果纹理数据外部格式为GL_RGB, 内部格式为GL_RGB, 将会进行纹理格式转换,GL_RGB转换成GL_RGBX。有多种内外部纹理格式的组合会进行纹理格式转换,如比较常见的有内部格式GL_RGB和外部格式GL_RGB,内部格式GL_RGBA和外部格式GL_RGB,内部格式GL_RGB和外部格式GL_BGR, 内部格式GL_RGBA和外部格式GL_BGR等,这里不一一列举。在上述内外部格式之间转换的基础上,如果内外部颜色分量大小相同,则不会涉及位数转换;如果颜色分量大小不同,还需要进行位数转换,如内部格式GL_RGB16I, 外部格式GL_RGB, 纹理数据类型为GL_UNSIGNED_INT,除了格式准换之外,每一个分量还需要进行32bit->16bit的位数转换。经过测试,在目前Mesa的实现中,如果需要进行纹理格式转换,纹理数据上传性能比较低下,严重影响图形引擎渲染性能。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于NEON指令的纹理格式转换优化方法及系统,本发明旨在通过NEON指令进行并行的纹理格式转换,加速纹理数据拷贝速度,一定程度上解决纹理数据上传接口的性能,达到提高OpenGL/ES API效率及用户体验的目的。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于NEON指令的纹理格式转换优化方法,包括:
S1,接收到纹理格式转换请求;
S2,采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中,所述向量寄存器同时包含多个颜色分量的存储空间;
S3,采用NEON指令将向量寄存器中存储颜色分量并行按照目标纹理格式的格式拷贝到内存中得到目标纹理格式的纹理。
可选地,步骤S2中采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中时,包括将不同的颜色分量存储在不同的向量寄存器中。
可选地,所述将不同的颜色分量存储在不同的向量寄存器中时,若原始纹理格式中的颜色分量包括R、G、B三种颜色分量,则将R颜色分量加载在向量寄存器Vn,将G颜色分量加载在向量寄存器Vn+1,将B颜色分量加载在向量寄存器Vn+2;若原始纹理格式中的颜色分量包括R、G、B、A四种颜色分量,则将R颜色分量加载在向量寄存器Vn,将G颜色分量加载在向量寄存器Vn+1,将B颜色分量加载在向量寄存器Vn+2,将A颜色分量加载在向量寄存器Vn+3,其中Vn为指定的向量寄存器的索引号。
可选地,步骤S2中向量寄存器同时包含多个颜色分量的存储空间是指:若一个颜色分量的大小为8bit,则一个向量寄存器包含16个颜色分量的存储空间;若一个颜色分量的大小为32bit,则一个向量寄存器包含4个颜色分量的存储空间。
可选地,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式具有共同的颜色分量的大小,步骤S2为采用共同的颜色分量大小对应的NEON加载指令以指定步长将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中;步骤S3为采用共同的颜色分量大小对应的NEON拷贝指令以指定步长将向量寄存器中存储颜色分量并行按照目标纹理格式拷贝到内存中得到目标纹理格式的纹理。
可选地,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式中颜色分量的大小不同,步骤S2为采用原始纹理格式的颜色分量大小对应的NEON加载指令以指定步长将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中;步骤S3为先将向量寄存器中存储颜色分量通过NEON位数转换指令从原始纹理格式的颜色分量大小转换为目标纹理格式的颜色分量大小,再采用目标纹理格式的颜色分量大小对应的NEON拷贝指令以指定步长并行按照目标纹理格式拷贝到内存中得到目标纹理格式的纹理。
可选地,步骤S1中接收到的纹理格式转换请求为来自Mesa通用纹理传输接口的纹理格式转换请求,且参数包括原始纹理格式、目标纹理格式和数据类型。
可选地,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式中的颜色分量均采用统一的全局索引号表示,原始纹理格式和目标纹理格式中同一个颜色分量的全局索引号相同、位置关系全部或部分不同。
此外,本发明还提供一种基于NEON指令的纹理格式转换优化系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于NEON指令的纹理格式转换优化方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述基于NEON指令的纹理格式转换优化方法。
和现有技术相比,本发明主要具有下述优点:本发明基于NEON指令的纹理格式转换优化方法包括:S1,接收到纹理格式转换请求;S2,采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中,所述向量寄存器同时包含多个颜色分量的存储空间;S3,采用NEON指令将向量寄存器中存储颜色分量并行按照目标纹理格式的格式拷贝到内存中得到目标纹理格式的纹理。由于传统的Mesa中纹理数据格式转换的方法是一个一个颜色分量线性拷贝,本发明通过在Mesa通用方法中使用NEON指令加速,在多个向量寄存器之间并行处理,从而优化纹理数据格式转换性能,优化纹理数据传输接口性能,加速图形引擎(OpenGL/ES API)的渲染性能效率,可有效提高用户体验。
附图说明
图1为本发明实施例方法的基本流程示意图。
具体实施方式
下面参照附图对本发明的实施例进行详细的说明,在描述过程中省略了对于本发明来说不必要的细节和功能,以防止对本发明的理解造成混淆。
如图1所示,本实施例基于NEON指令的纹理格式转换优化方法包括:
S1,接收到纹理格式转换请求;
S2,采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中,所述向量寄存器同时包含多个颜色分量的存储空间;
S3,采用NEON指令将向量寄存器中存储颜色分量并行按照目标纹理格式的格式拷贝到内存中得到目标纹理格式的纹理。
NEON为适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction,Multiple Data,单指令、多数据)扩展结构。NEON指令有多个128bit的向量寄存器,本实施例步骤S2中采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中时,包括将不同的颜色分量存储在不同的向量寄存器中,从而使得不同颜色分量的管理更加简单。将不同的颜色分量存储在不同的向量寄存器中时,若原始纹理格式中的颜色分量包括R(红)、G(绿)、B(蓝)三种颜色分量,则将R颜色分量加载在向量寄存器Vn,将G颜色分量加载在向量寄存器Vn+1,将B颜色分量加载在向量寄存器Vn+2;若原始纹理格式中的颜色分量包括R(红)、G(绿)、B(蓝)、A(Alpha透明)四种颜色分量,则将R颜色分量加载在向量寄存器Vn,将G颜色分量加载在向量寄存器Vn+1,将B颜色分量加载在向量寄存器Vn+2,将A颜色分量加载在向量寄存器Vn+3,其中Vn为指定的向量寄存器的索引号。需要说明的是,基于将不同的颜色分量存储在不同的向量寄存器中的原理,还可以其他映射方式来分别将不同的颜色分量存储在不同的向量寄存器中。
本实施例中,步骤S2中向量寄存器同时包含多个颜色分量的存储空间是指:若一个颜色分量的大小为8bit,则一个向量寄存器包含16个颜色分量的存储空间(例如向量寄存器Vn存放了16个R颜色分量,向量寄存器Vn+1存放了16个G颜色分量, 向量寄存器Vn+2存放了16个B颜色分量, 向量寄存器Vn+3存放了16个A颜色分量);若一个颜色分量的大小为32bit,则一个向量寄存器包含4个颜色分量的存储空间。不同的向量寄存器之间可以并行运行,一个向量寄存器一次可以处理16个分量,相比一个一个分量拷贝转换,Mesa中的纹理格式转换性能有较大提升,同样纹理数据上传接口的性能有较大提升。
作为一种可选的实施方式,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式具有共同的颜色分量的大小,步骤S2为采用共同的颜色分量大小对应的NEON加载指令以指定步长将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中;步骤S3为采用共同的颜色分量大小对应的NEON拷贝指令以指定步长将向量寄存器中存储颜色分量并行按照目标纹理格式拷贝到内存中得到目标纹理格式的纹理。NEON指令提供了汇编指令,同时在函数头arm_NEON.h中也提供了封装好的接口供调用。如在Mesa中涉及到纹理格式转换,如RGB格式需转换为RGBA格式时(其中每一个分量都是8bit),转换接口可以调用的NEON加载指令vld3q_u8和NEON拷贝指令vst4q_u8来实现,NEON加载指令vld3q_u8用于以步长为 3交叉地加载数据到四个连续的 128-bit 的向量寄存器,NEON拷贝指令vst4q_u8用于以步长为4交叉存储到内存中,上述情况不涉及到位数转换。在Mesa通用纹理传输接口中,实现多种纹理格式组合的转换优化,如glTexImage2D接口参数(内部格式,外部格式,数据类型)分别为(GL_RGB, GL_RGB, GL_UNSIGNED_BYTE), (GL_RGBA, GL_RGB, GL_UNSIGNED_BYTE), (GL_RGB, GL_BGR, GL_UNSIGNED_BYTE), (GL_RGBA, GL_BGR,GL_UNSIGNED_BYTE),这些组合纹理数据转换前后位数大小相同,不需要进行位数转换,均可以采用上述不含位数转换的方法实现。
作为另一种可选的实施方式,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式中颜色分量的大小不同,步骤S2为采用原始纹理格式的颜色分量大小对应的NEON加载指令以指定步长将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中;步骤S3为先将向量寄存器中存储颜色分量通过NEON位数转换指令从原始纹理格式的颜色分量大小转换为目标纹理格式的颜色分量大小,再采用目标纹理格式的颜色分量大小对应的NEON拷贝指令以指定步长并行按照目标纹理格式拷贝到内存中得到目标纹理格式的纹理。如Mesa中纹理格式转换为RGB(分量为32bit)->RGBA(分量为16bit),则调用NEON加载指令vld3q_u32,NEON位数转换指令vqmovn_u32和NEON拷贝指令vst4_u16来实现, NEON加载指令vld3q_u32和vld3q_u8的区别在于前者一个向量寄存器中只能存储4个分量,NEON拷贝指令vst4_u16中一个向量寄存器中存储8个分量,NEON位数转换指vqmovn_u32作用将uint32x4转换为uint16x4。如glTexImage2D接口参数(内部格式,外部格式,数据类型(GL_RGB16I, GL_RGB, GL_UNSIGNED_INT), (GL_RGBA16I, GL_RGB,GL_UNSIGNED_INT),(GL_RGB16I,GL_BGR, GL_UNSIGNED_INT), (GL_RGBA16I, GL_BGR, GL_UNSIGNED_INT)等,这些组合的纹理格式转换还需要进行位数转换,均可以采用上述带有位数转换的方法实现。
本实施例中,步骤S1中接收到的纹理格式转换请求为来自Mesa通用纹理传输接口的纹理格式转换请求,且参数包括原始纹理格式、目标纹理格式和数据类型,与现有Mesa通用纹理传输接口的参数完全兼容,具有通用性好的优点。
由于存在多种内外纹理格式组合需要进行纹理格式转换,如RGB转换为RGBA, BGR转换为RGB, 不同的格式组合转换有区别,所以在Mesa通用接口中使用NEON优化也需要考虑通用性。本实施例中,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式中的颜色分量均采用统一的全局索引号表示,原始纹理格式和目标纹理格式中同一个颜色分量的全局索引号相同、位置关系全部或部分不同。这样,只需要知道了原纹理格式和Mesa内部格式的每一个颜色分量的位置,既能对应的通过位置关系进行正确的拷贝,原纹理格式中的R分量拷贝给Mesa内部格式的R分量,其他颜色分量亦是如此,既能在接口中通用化,如RGB->RGBA,BGR->RGB使用同一个接口进行纹理格式转换。因此,原始纹理格式和目标纹理格式中的颜色分量均采用统一的全局索引号表示后,即可构成两个数组,比如原纹理格式BGR(数组为[2,1,0]), Mesa内部格式为RGB(数组为[0,1,2]),原纹理格式BGR对应数组[2, 1, 0]分别代表了R,G,B三个分量在内存中的位置,Mesa内部格式RGB对于数组[0,1, 2]分别代表R,G,B三个分量在内存中的位置。已知转换前后的每个分量的位置,既能在通用接口中利用位置关系正确拷贝,实现接口通用化,减少代码冗余。
本实施例基于NEON指令的纹理格式转换优化方法在Mesa通用纹理传输接口中,基于ARM64架构,利用NEON指令优化内部纹理格式转换性能,在麒麟操作系统、飞腾D2000 CPU上跟典型的AMD显卡R7 340对比测试,性能提升明显,glTexImage2D接口性能提升180%-450%, 其中不同的纹理数据大小有区别;而且,在Mesa通用接口中使用NEON指令优化性能的同时,考虑了接口的通用性,减少代码冗余。在使用NEON加速纹理格式转换性能的同时,也需要考虑代码通用性和冗余性,本发明中通过传入两个数组,分别为原纹理格式和Mesa内部纹理格式,两个数组可以明确转换前后的颜色分量之间的对应关系,通过对应关系既能在通用接口中实现正确的纹理数据拷贝,实现接口通用性,减少代码冗余。
此外,本实施例还提供一种基于NEON指令的纹理格式转换优化系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于NEON指令的纹理格式转换优化方法。
此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述基于NEON指令的纹理格式转换优化方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,只是用于帮助理解本申请的方法及其核心思想,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于NEON指令的纹理格式转换优化方法,其特征在于,包括:
S1,接收到纹理格式转换请求;
S2,采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中,所述向量寄存器同时包含多个颜色分量的存储空间;
S3,采用NEON指令将向量寄存器中存储颜色分量并行按照目标纹理格式的格式拷贝到内存中得到目标纹理格式的纹理。
2.根据权利要求1所述的基于NEON指令的纹理格式转换优化方法,其特征在于,步骤S2中采用NEON指令将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中时,包括将不同的颜色分量存储在不同的向量寄存器中。
3.根据权利要求2所述的基于NEON指令的纹理格式转换优化方法,其特征在于,所述将不同的颜色分量存储在不同的向量寄存器中时,若原始纹理格式中的颜色分量包括R、G、B三种颜色分量,则将R颜色分量加载在向量寄存器Vn,将G颜色分量加载在向量寄存器Vn+1,将B颜色分量加载在向量寄存器Vn+2;若原始纹理格式中的颜色分量包括R、G、B、A四种颜色分量,则将R颜色分量加载在向量寄存器Vn,将G颜色分量加载在向量寄存器Vn+1,将B颜色分量加载在向量寄存器Vn+2,将A颜色分量加载在向量寄存器Vn+3,其中Vn为指定的向量寄存器的索引号。
4.根据权利要求1所述的基于NEON指令的纹理格式转换优化方法,其特征在于,步骤S2中向量寄存器同时包含多个颜色分量的存储空间是指:若一个颜色分量的大小为8bit,则一个向量寄存器包含16个颜色分量的存储空间;若一个颜色分量的大小为32bit,则一个向量寄存器包含4个颜色分量的存储空间。
5.根据权利要求1所述的基于NEON指令的纹理格式转换优化方法,其特征在于,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式具有共同的颜色分量的大小,步骤S2为采用共同的颜色分量大小对应的NEON加载指令以指定步长将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中;步骤S3为采用共同的颜色分量大小对应的NEON拷贝指令以指定步长将向量寄存器中存储颜色分量并行按照目标纹理格式拷贝到内存中得到目标纹理格式的纹理。
6.根据权利要求1所述的基于NEON指令的纹理格式转换优化方法,其特征在于,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式中颜色分量的大小不同,步骤S2为采用原始纹理格式的颜色分量大小对应的NEON加载指令以指定步长将原始纹理格式中的颜色分量加载在NEON指令的128 bit的向量寄存器中;步骤S3为先将向量寄存器中存储颜色分量通过NEON位数转换指令从原始纹理格式的颜色分量大小转换为目标纹理格式的颜色分量大小,再采用目标纹理格式的颜色分量大小对应的NEON拷贝指令以指定步长并行按照目标纹理格式拷贝到内存中得到目标纹理格式的纹理。
7.根据权利要求1所述的基于NEON指令的纹理格式转换优化方法,其特征在于,步骤S1中接收到的纹理格式转换请求为来自Mesa通用纹理传输接口的纹理格式转换请求,且参数包括原始纹理格式、目标纹理格式和数据类型。
8.根据权利要求1所述的基于NEON指令的纹理格式转换优化方法,其特征在于,步骤S1中接收到的纹理格式转换请求中,原始纹理格式和目标纹理格式中的颜色分量均采用统一的全局索引号表示,原始纹理格式和目标纹理格式中同一个颜色分量的全局索引号相同、位置关系全部或部分不同。
9.一种基于NEON指令的纹理格式转换优化系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~8中任意一项所述基于NEON指令的纹理格式转换优化方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~8中任意一项所述基于NEON指令的纹理格式转换优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211647611.6A CN115661325A (zh) | 2022-12-21 | 2022-12-21 | 一种基于neon指令的纹理格式转换优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211647611.6A CN115661325A (zh) | 2022-12-21 | 2022-12-21 | 一种基于neon指令的纹理格式转换优化方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115661325A true CN115661325A (zh) | 2023-01-31 |
Family
ID=85022512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211647611.6A Pending CN115661325A (zh) | 2022-12-21 | 2022-12-21 | 一种基于neon指令的纹理格式转换优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115661325A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583940A (zh) * | 2012-09-28 | 2015-04-29 | 英特尔公司 | 用于128位处理器上的skein256 sha3算法的指令集 |
CN104657097A (zh) * | 2013-11-25 | 2015-05-27 | 中国移动通信集团公司 | 一种波浪型动态图像的显示方法和设备 |
CN113449721A (zh) * | 2021-06-30 | 2021-09-28 | 东莞市小精灵教育软件有限公司 | 图像预处理方法、装置、计算机设备及存储介质 |
CN113596581A (zh) * | 2021-07-30 | 2021-11-02 | 上海商汤临港智能科技有限公司 | 一种图像格式转换方法、装置、计算机设备和存储介质 |
CN113613071A (zh) * | 2021-07-30 | 2021-11-05 | 上海商汤临港智能科技有限公司 | 一种图像处理方法、装置、计算机设备和存储介质 |
-
2022
- 2022-12-21 CN CN202211647611.6A patent/CN115661325A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583940A (zh) * | 2012-09-28 | 2015-04-29 | 英特尔公司 | 用于128位处理器上的skein256 sha3算法的指令集 |
CN104657097A (zh) * | 2013-11-25 | 2015-05-27 | 中国移动通信集团公司 | 一种波浪型动态图像的显示方法和设备 |
CN113449721A (zh) * | 2021-06-30 | 2021-09-28 | 东莞市小精灵教育软件有限公司 | 图像预处理方法、装置、计算机设备及存储介质 |
CN113596581A (zh) * | 2021-07-30 | 2021-11-02 | 上海商汤临港智能科技有限公司 | 一种图像格式转换方法、装置、计算机设备和存储介质 |
CN113613071A (zh) * | 2021-07-30 | 2021-11-05 | 上海商汤临港智能科技有限公司 | 一种图像处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8189009B1 (en) | Indexed access to texture buffer objects using a graphics library | |
US8237728B2 (en) | Methods, systems, and data structures for generating a rasterizer | |
US5268995A (en) | Method for executing graphics Z-compare and pixel merge instructions in a data processor | |
US6891544B2 (en) | Game system with graphics processor | |
US8670613B2 (en) | Lossless frame buffer color compression | |
US20030151608A1 (en) | Programmable 3D graphics pipeline for multimedia applications | |
US9519947B2 (en) | Architecture and instructions for accessing multi-dimensional formatted surface memory | |
US8355028B2 (en) | Scheme for varying packing and linking in graphics systems | |
US7298375B1 (en) | Arithmetic logic units in series in a graphics pipeline | |
US7710427B1 (en) | Arithmetic logic unit and method for processing data in a graphics pipeline | |
US9256466B2 (en) | Data processing systems | |
WO2002101649A1 (en) | Software emulator for optimizing application-programmable vertex processing | |
US8730252B1 (en) | System, method and computer program product for bump mapping | |
EP3420537B1 (en) | Single pass bounding volume hierarchy rasterization | |
US20100231600A1 (en) | High bandwidth, efficient graphics hardware architecture | |
US11521342B2 (en) | Residency map descriptors | |
US6342883B1 (en) | Image display method and image display apparatus | |
US7154507B1 (en) | System, method and computer program product for texture shading | |
CN111414150B (zh) | 游戏引擎渲染方法、装置、电子设备及计算机存储介质 | |
US20230267570A1 (en) | Data Processing Method and Related Apparatus | |
CN115661325A (zh) | 一种基于neon指令的纹理格式转换优化方法及系统 | |
CN118043842A (zh) | 一种渲染格式选择方法及其相关设备 | |
US8427490B1 (en) | Validating a graphics pipeline using pre-determined schedules | |
US20240087078A1 (en) | Two-level primitive batch binning with hardware state compression |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230131 |