[发明专利]数据处理方法、装置、电子设备及存储介质有效
申请号: | 201910290213.5 | 申请日: | 2019-04-11 |
公开(公告)号: | CN110038301B | 公开(公告)日: | 2022-09-30 |
发明(设计)人: | 冯艺 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | A63F13/60 | 分类号: | A63F13/60 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 电子设备 存储 介质 | ||
1.一种数据处理方法,其特征在于,所述方法包括:
修改用于声明数据结构与成员函数的头文件,包括:将xmmintrin.h头文件修改为mmintrin.h头文件,其中,mmintrin.h头文件中定义有非对齐内存读取接口函数、逻辑运算函数、非对齐内存写入接口函数,以及删除Cocos2dx游戏引擎自带的实现SSE指令的union封装方式,其中,所述union封装方式使得__m128数据类型与原始数据共享内存;
调用SSE指令函数,将用于保存原始数据的第一内存地址和用于保存运算结果的第二内存地址传入所述SSE指令函数的参数;
利用所述SSE指令函数调用非对齐内存读取接口函数从所述第一内存地址中读取所述原始数据,并将所述原始数据加载到SSE寄存器中;
利用所述SSE指令函数调用逻辑运算函数对所述原始数据进行逻辑运算,并将运算结果保存至所述SSE寄存器中;
利用所述SSE指令函数调用非对齐内存写入接口函数将所述运算结果写入所述第二内存地址,以使得Cocos2dx数学库的SSE指令能在普通的x86机器上正确运行起来。
2.根据权利要求1所述的方法,其特征在于,所述将所述原始数据加载到SSE寄存器中的步骤,包括:
在所述原始数据为单精度浮点类型的矩阵数据时,将所述矩阵数据中的每一列数据加载到一个SSE寄存器中;
在所述原始数据为单精度浮点类型的向量数据时,将所述向量数据加载到一个SSE寄存器中。
3.根据权利要求1所述的方法,其特征在于,所述调用SSE指令函数,将用于保存原始数据的第一内存地址及用于保存运算结果的第二内存地址传入所述SSE指令函数的参数的步骤,包括:
利用Mat4类中定义的Mat4指令函数通过统一MathUtil函数接口调用MathUtil类中定义的MathUtil指令函数,将所述第一内存地址和所述第二内存地址传入所述MathUtil指令函数的参数;
利用所述MathUtil指令函数通过第一SSE函数接口调用MathUtilSSE类中定义的所述SSE指令函数,将所述第一内存地址和所述第二内存地址传入所述SSE指令函数的参数。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
删除MathUtil.h头文件中定义的第二SSE函数接口;所述第二SSE函数接口的参数为__m128类型传递;
在所述MathUtilSSE类中定义所述第一SSE函数接口;所述第一SSE函数接口的参数为内存地址传递。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述MathUtil指令函数中添加调用所述SSE指令函数的SSE实现语句;
所述利用所述MathUtil指令函数通过第一SSE函数接口调用MathUtilSSE类中定义的SSE指令函数的步骤,包括:
利用所述MathUtil指令函数执行所述SSE实现语句,通过第一SSE函数接口调用MathUtilSSE类中定义的SSE指令函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910290213.5/1.html,转载请声明来源钻瓜专利网。