CN115357520B - 一种基于cpu的图形渲染方式的检测方法 - Google Patents
一种基于cpu的图形渲染方式的检测方法 Download PDFInfo
- Publication number
- CN115357520B CN115357520B CN202211298700.4A CN202211298700A CN115357520B CN 115357520 B CN115357520 B CN 115357520B CN 202211298700 A CN202211298700 A CN 202211298700A CN 115357520 B CN115357520 B CN 115357520B
- Authority
- CN
- China
- Prior art keywords
- instruction
- test program
- simd
- cpu
- opengl
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于CPU的图形渲染方式的检测方法,通过修改编译器保证OpenGL测试程序本身以及系统平台编译器不引入SIMD指令的相关操作,在这种情况下执行OpenGL测试程序,通过对OpenGL测试程序的监测判断系统平台在图形渲染过程中是否存在使用SIMD指令的行为以确定系统平台所采用的图形渲染方式,有效地提高了基于CPU的图形渲染方式的检出率。
Description
技术领域
本发明属于计算机图像处理技术领域,具体涉及一种基于CPU的图形渲染方式的检测方法。
背景技术
目前现有技术中图形渲染方式主要包括以下两种,即采用专门的图形处理器(Graphic Processing Unit,GPU)渲染三维图形的方式和采用CPU的向量部件渲染三维图形的方式,也就是通常所说的硬渲染(Hardware Rendering)和软渲染(SoftwareRendering)。
其中,采用GPU渲染三维图形的方式中,GPU又称显示核心、视觉处理器、显示芯片,GPU是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器,采用GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时GPU所采用的核心技术有硬件T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件T&L技术可以说是GPU的标志。GPU的生产商主要有NVIDIA和ATI。
采用CPU的向量部件渲染三维图形的方式,是指采用CPU中配置的与GPU类似的向量运算单元完成三维图形的渲染。在进行三维图形渲染时,用于三维运算的向量运算指令是CPU运行的进程的一部分。三维绘制在执行时,该绘制所在的进程必须在执行态。用于加速的向量指令的代码被放置在不同函数,根据调用来跳转。
根据两种图形渲染方式的原理可见,采用GPU渲染三维图形的方式由于采用了专门的处理器完成渲染功能因此具有更高的处理性能,而采用CPU的向量部件渲染三维图形的方式是采用现有CPU完成渲染功能因此图形处理性能相对较弱,两类图形渲染方式的售价也存在较大的差别,因此,如何判断系统平台采用的图形渲染方式非常必要。
现有技术中判断系统平台图形渲染方式的方法主要是采用软件工作进行测试,如采用工具glxinfo测试。glxinfo是一款常用的终端命令行工具,能够获得显卡对OpenGL的支持信息、图形渲染方式及系统当前使用的显卡信息,例如当执行“glxinfo | greprenderer”命令时如果返回llvmpipe则说明系统平台图形渲染方式为采用CPU的向量部件渲染三维图形的方式。对于采用软渲染方式的系统平台来说,OpenGL的渲染往往是通过执行CPU的SIMD(Simple Instruction Multiple Data)指令完成,然而,对于这种情况,采用上述测试方法往往较难发现,从而导致对系统平台图形渲染方式的检测错误。
发明内容
有鉴于此,本发明提供了一种基于CPU的图形渲染方式的检测方法,能够相对准确的判断系统平台是否采用软渲染的图像渲染方式。
本发明提供的一种基于CPU的图形渲染方式的检测方法,包括以下步骤:
步骤1、确定检测图形渲染方式所采用的OpenGL测试程序;
步骤2、采用禁止生成SIMD指令代码的编译器编译OpenGL测试程序得到可执行测试程序;将所述可执行测试程序静态反编译为汇编代码,检测汇编代码是否包含SIMD指令,若包含SIMD指令则替换OpenGL测试程序中与SIMD指令相关的所有代码,执行步骤2;若不包含SIMD指令则以可执行测试程序执行步骤3;
步骤3、若当前CPU平台不支持SIMD指令但支持CPU虚拟化,则启动虚拟CPU拦截CPUID指令,加载可执行测试程序记录OpenGL图形库分配的地址空间作为图形地址空间,执行步骤4;若当前CPU平台不支持SIMD指令也不支持CPU虚拟化,则加载可执行测试程序记录OpenGL图形库分配的地址空间作为图形地址空间,执行步骤5;若当前CPU平台支持SIMD指令则加载可执行测试程序记录OpenGL图形库分配的地址空间作为图形地址空间,执行步骤7;
步骤4、启动可执行测试程序,当虚拟CPU监测到出现获取CPU平台是否支持SIMD指令的操作时,执行步骤6;
步骤5、在可执行测试程序所在进程中拦截CPUID指令,当监测到存在CPU平台是否支持SIMD指令的操作时,执行步骤6;
步骤6、构造CPUID指令返回值使可执行测试程序认为CPU平台支持SIMD指令,当监测到产生非法指令异常且非法指令位于图形地址空间之内时,判定当前系统平台采用的图形渲染方式为软渲染,并结束本流程;
步骤7、当存在位于图形地址空间中的指令所使用的寄存器为SIMD指令所对应的寄存器时判定当前系统平台采用的图形渲染方式为软渲染,结束本流程。
进一步地,所述步骤1中所述OpenGL测试程序为包含着色器程序编译执行、图元栅格化及顶点处理操作的测试程序,所述OpenGL测试程序为glmark2基准测试。
进一步地,所述步骤2中所述编译器为Clang编译器。
进一步地,所述步骤2中所述检测汇编代码是否包含SIMD指令的方式为:对于x86平台,若汇编代码中存在使用XMM或YMM寄存器的汇编指令,则汇编代码包含SIMD指令;对于ARM平台,若汇编代码中存在V{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL或VSUBW指令,则汇编代码包含SIMD指令。
进一步地,所述步骤6中所述构造CPUID指令返回值使可执行测试程序认为CPU平台支持SIMD指令的方式为:将CPUID指令返回值中支持SIMD指令的标志位均设置为1。
进一步地,所述将CPUID指令返回值中支持SIMD指令的标志位均设置为1的方式为:将EDX寄存器的第25位和第26位以及ECX寄存器的第0位、第9位、第19位和第20位均置为1。
进一步地,所述步骤5中所述在可执行测试程序所在进程中拦截CPUID指令的方式为:将CPUID指令作为敏感指令,采用动态指令插桩工具执行并监测可执行测试程序的执行过程。
进一步地,所述步骤7中所述存在位于图形地址空间中的指令所使用的寄存器为SIMD指令所对应的寄存器的确定方式为:在指令转换过程中将位于图形地址空间中的基本块进行反编译,判断反编译得到的指令所使用的寄存器是否为SIMD指令所对应的寄存器,如果是则存在,否则不存在。
有益效果:
本发明通过修改编译器保证OpenGL测试程序本身以及系统平台编译器不引入SIMD指令的相关操作,在这种情况下执行OpenGL测试程序,通过对OpenGL测试程序的监测判断系统平台在图形渲染过程中是否存在使用SIMD指令的行为以确定系统平台所采用的图形渲染方式,有效地提高了基于CPU的图形渲染方式的检出率。
具体实施方式
下面列举实施例,对本发明进行详细描述。
当系统平台调用OpenGL进行图形渲染时,若采用软渲染的方式则会采用CPU加速引擎的OpenGL库生成的SIMD指令集完成图形渲染。SIMD指令集包含SSE、SSE2、SSE3、SSE41及SSE42等指令集。若某个OpenGL/OpenGL ES程序的二进制代码中未包含SIMD指令,但其进行OpenGL渲染时却执行了SIMD指令,由此即可确定该系统平台实际是采用了CPU图形加速而不是GPU图像加速,即该系统平台的图形渲染方式为基于CPU的软渲染。
基于上述分析,本发明提供了一种基于CPU的图形渲染方式的检测方法,具体包括以下步骤:
步骤1、确定检测图形渲染方式所采用的OpenGL测试程序。OpenGL测试程序为包含着色器程序编译执行、图元(点/线/三角形)栅格化及顶点处理等操作的测试程序。
OpenGL测试程序可选择glmark2基准测试,glmark2 是对OpenGL 2.0 和 ES 2.0进行基准测试的程序,一般用于对GPU进行基准测试。
步骤2、修改在编译器的目标代码生成器禁止生成SIMD指令代码,采用编译器编译OpenGL测试程序得到可执行测试程序。
例如,在Clang编译器及LLVM代码生成器中设置禁止生成SIMD指令代码。Clang编译器是LLVM项目的子项目,是基于LLVM架构的C/C++/Objective-C编译器前端。LLVM项目是模块化、可重用的编译器以及工具链技术的集合。
步骤3、将可执行测试程序进行静态反编译得到汇编代码,检测汇编代码是否包含SIMD指令,若包含SIMD指令则替换OpenGL测试程序中与SIMD指令相关的所有代码,以保证OpenGL测试程序不会使用SIMD指令,执行步骤2;若不包含SIMD指令则以步骤2得到的可执行测试程序执行步骤4。
其中,检测汇编代码是否包含SIMD指令的方式为:对于x86平台来说,若汇编代码中存在使用XMM或YMM寄存器的汇编指令,则说明使用了SIMD指令;对于ARM平台来说,若汇编代码中存在V{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL或VSUBW等指令,则说明使用了SIMD指令。
步骤4、判断当前CPU平台是否支持SIMD指令以及是否支持CPU虚拟化,若当前CPU平台不支持SIMD指令但支持CPU虚拟化,则启动虚拟CPU拦截CPUID指令,执行步骤5;若当前CPU平台不支持SIMD指令也不支持CPU虚拟化,则执行步骤6;若当前CPU平台支持SIMD指令则执行步骤8。
具体来说,可执行测试程序加载运行的过程中,会通过CPUID指令的返回值判断当前CPU平台是否支持SIMD指令,若不支持则在可执行测试程序执行过程中会自动采用非SIMD指令取代其完成软渲染,这样就无法通过检测SIMD指令来判断系统平台的渲染方式。系统根据调用CPUID指令时输入值的不同,将处理器的信息作为返回值写在EAX、EBX、ECX、EDX寄存器中,若CPU平台支持SIMD指令则EDX寄存器的第25位或第26位应为1,或者ECX寄存器的第0位、第9位、第19位或第20位应为1。
对于支持CPU虚拟化的CPU平台,基于CPU虚拟化技术构建虚拟CPU,在虚拟CPU中拦截CPUID指令的返回值。
步骤5、加载可执行测试程序,记录OpenGL图形库分配的地址空间作为图形地址空间,启动可执行测试程序,当虚拟CPU监测到出现获取CPU平台是否支持SIMD指令的操作时,执行步骤7。
其中,获取CPU平台是否支持SIMD指令的操作的判断方式为:调用CPUID指令且CPUID指令的输入中设置EAX寄存器的取值为1且ECX寄存器的取值为0。
步骤6、加载可执行测试程序,记录OpenGL图形库分配的地址空间作为图形地址空间,采用动态指令插桩工具执行可执行测试程序,并在可执行测试程序所在进程中拦截CPUID指令,当监测到存在CPU平台是否支持SIMD指令的操作时,执行步骤7。
其中,获取CPU平台是否支持SIMD指令的操作的判断方式为:调用CPUID指令且CPUID指令的输入中设置EAX寄存器的取值为1且ECX寄存器的取值为0。
其中,动态指令插桩工具可采用Intel公司提供的程序插桩工具Pin。
步骤7、构造特定的CPUID指令返回值使可执行测试程序认为CPU平台支持SIMD指令,当监测到产生非法指令异常且非法指令位于图形地址空间之内时,判定当前系统平台采用的图形渲染方式为软渲染,并终止可执行测试程序的执行过程。
其中,构造特定的CPUID指令返回值使可执行测试程序认为CPU平台支持SIMD指令的方式为:将CPUID指令返回值中支持SIMD指令的标志位均设置为1,即将EDX寄存器的第25位和第26位以及ECX寄存器的第0位、第9位、第19位和第20位均置为1。
步骤8、在指令转换过程中将位于图形地址空间中的基本块进行反编译,若反编译得到的指令所使用的寄存器为SIMD指令所对应的寄存器,则判定当前系统平台采用的图形渲染方式为软渲染,并终止可执行测试程序的执行过程。
实施例:
本实例采用本发明提供的一种基于CPU的图形渲染方式的检测方法实现了对基于CPU的图形渲染方式的检测,具体包括以下步骤:
S1、编写涵盖着色器程序编译执行、图元栅格化及顶点处理的OpenGL测试程序,将OpenGL测试程序记为RendererDemo。
S2、修改LLVM的Clang编译器,以及LLVM的代码生成器Back-End,使代码编译过程中禁用SIMD代码生成的功能。
S3、使用S2修改后的编译器编译RendererDemo源码,得到可执行测试程序。
S4、采用静态反编译工具Objdump对可执行测试程序进行静态反编译,即将其转换为汇编代码,再判读汇编代码中是否包含SIMD指令,若还存在SIMD指令代码,则去除汇编代码中的SIMD指令相关代码后,执行S3;否则执行S5。
具体来说,判读汇编代码中是否包含SIMD指令的依据是,对于x86平台来说,若汇编代码中未使用XMM或YMM寄存器则说明未使用SIMD指令;对于ARM平台来说,若汇编代码中不存在V{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL或VSUBW等指令则说明未使用SIMD指令。
S5、加载可执行测试程序,记录OpenGL图形库分配的地址空间作为图形地址空间;若当前CPU平台支持SIMD指令则执行S6,否则执行S5。
S5、实现SIMD指令RendererDetector的方式,包括以下步骤:
S5.1、伪造CPUID指令的返回结果,报告当前CPU平台支持SIMD指令,若当前CPU平台支持CPU虚拟化则执行S5.2;若当前CPU平台不支持CPU虚拟化则执行S5.3。
S5.2、对于x86平台基于CPU虚拟化实现监测器MiniHypervisor,该监测器MiniHypervisor用于实现对CPUID指令的拦截及修改,具体步骤如下:
S5.2.1、将CPUID指令执行作为敏感指令,捕获CPUID指令的执行过程;当CPUID指令的输入中EAX的值为1且ECX的值为0时,修改CPUID指令的返回结果;否则不改变CPUID指令的执行过程。
S5.2.2、启动执行可执行测试程序后执行S5.4。
S5.3、执行可执行测试程序,并采用Intel的Pin工具,在可执行测试程序所在进程中实现对CPUID指令的拦截及对返回值的修改。
SIMD指令在x86平台的指令集包括SSE2、SSE3及SSE41等,在ARM平台的指令集是Neon。以x86平台为例,上述修改CPUID指令的返回结果EAX、EBX、ECX、EDX寄存器的方式如下:
执行edx=edx | ((int)1 << 25))、edx=edx | ((int)1 << 26))、ecx=ecx |((int)1 << 0))、ecx=ecx | ((int)1 << 9))、ecx=ecx | ((int)1 << 19))及ecx=ecx |((int)1 << 20))。
S5.4、监视可执行测试程序的执行过程,当捕获到非法指令异常(SIGILL)时,解析该异常信息,若异常的opcode对应SIMD指令且指令地址位于图形地址空间中,则说明当前代码为动态生成的代码,即可判断当前OpenGL/OpenGL ES库使用了CPU图形加速即软渲染,而非GPU图形加速,结束测试过程。
具体来说,判断异常的opcode对应SIMD指令的方式为,通过查阅Intel和ARM的指令手册即可获取指令与opcode之间的对应关系。
判断指令地址位于图形地址空间中的方式为:Hook可执行测试程序进程的内存权限修改操作,若权限被修改为可执行且此时EIP指令执行地址属于OpenGL库的加载地址范围,则说明内存权限修改操作对应的地址内存是由OpenGL所分配。
S6、采用动态指令转换引擎DynamoRIO执行可执行测试程序,修改DynamoRIO的以基本块为单位的指令转换模块,修改的方式如下:
获取基本块所在的内存段地址,如此地址位于图形地址空间中,则对基本块进行动态反编译,如反编译的指令的寄存器为SIMD的寄存器,如x86平台的XMM寄存器,则可判定当前OpenGL/OpenGL ES库使用了CPU图形加速而非GPU,结束测试过程;否则执行正常的指令转换。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于CPU的图形渲染方式的检测方法,其特征在于,包括以下步骤:
步骤1、确定检测图形渲染方式所采用的OpenGL测试程序;
步骤2、采用禁止生成SIMD指令代码的编译器编译OpenGL测试程序得到可执行测试程序;将所述可执行测试程序静态反编译为汇编代码,检测汇编代码是否包含SIMD指令,若包含SIMD指令则替换OpenGL测试程序中与SIMD指令相关的所有代码,执行步骤2;若不包含SIMD指令则以可执行测试程序执行步骤3;
步骤3、若当前CPU平台不支持SIMD指令但支持CPU虚拟化,则启动虚拟CPU拦截CPUID指令,加载可执行测试程序记录OpenGL图形库分配的地址空间作为图形地址空间,执行步骤4;若当前CPU平台不支持SIMD指令也不支持CPU虚拟化,则加载可执行测试程序记录OpenGL图形库分配的地址空间作为图形地址空间,执行步骤5;若当前CPU平台支持SIMD指令则加载可执行测试程序记录OpenGL图形库分配的地址空间作为图形地址空间,执行步骤7;
步骤4、启动可执行测试程序,当虚拟CPU监测到出现获取CPU平台是否支持SIMD指令的操作时,执行步骤6;
步骤5、在可执行测试程序所在进程中拦截CPUID指令,当监测到存在CPU平台是否支持SIMD指令的操作时,执行步骤6;
步骤6、构造CPUID指令返回值使可执行测试程序认为CPU平台支持SIMD指令,当监测到产生非法指令异常且非法指令位于图形地址空间之内时,判定当前系统平台采用的图形渲染方式为软渲染,并结束本流程;
步骤7、当存在位于图形地址空间中的指令所使用的寄存器为SIMD指令所对应的寄存器时判定当前系统平台采用的图形渲染方式为软渲染,结束本流程。
2.根据权利要求1所述的检测方法,其特征在于,所述步骤1中所述OpenGL测试程序为包含着色器程序编译执行、图元栅格化及顶点处理操作的测试程序,所述OpenGL测试程序为glmark2基准测试。
3.根据权利要求1所述的检测方法,其特征在于,所述步骤2中所述编译器为Clang编译器。
4.根据权利要求1所述的检测方法,其特征在于,所述步骤2中所述检测汇编代码是否包含SIMD指令的方式为:对于x86平台,若汇编代码中存在使用XMM或YMM寄存器的汇编指令,则汇编代码包含SIMD指令;对于ARM平台,若汇编代码中存在V{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL或VSUBW指令,则汇编代码包含SIMD指令。
5.根据权利要求1所述的检测方法,其特征在于,所述步骤6中所述构造CPUID指令返回值使可执行测试程序认为CPU平台支持SIMD指令的方式为:将CPUID指令返回值中支持SIMD指令的标志位均设置为1。
6.根据权利要求5所述的检测方法,其特征在于,所述将CPUID指令返回值中支持SIMD指令的标志位均设置为1的方式为:将EDX寄存器的第25位和第26位以及ECX寄存器的第0位、第9位、第19位和第20位均置为1。
7.根据权利要求1所述的检测方法,其特征在于,所述步骤5中所述在可执行测试程序所在进程中拦截CPUID指令的方式为:将CPUID指令作为敏感指令,采用动态指令插桩工具执行并监测可执行测试程序的执行过程。
8.根据权利要求1所述的检测方法,其特征在于,所述步骤7中所述存在位于图形地址空间中的指令所使用的寄存器为SIMD指令所对应的寄存器的确定方式为:在指令转换过程中将位于图形地址空间中的基本块进行反编译,判断反编译得到的指令所使用的寄存器是否为SIMD指令所对应的寄存器,如果是则存在,否则不存在。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211298700.4A CN115357520B (zh) | 2022-10-24 | 2022-10-24 | 一种基于cpu的图形渲染方式的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211298700.4A CN115357520B (zh) | 2022-10-24 | 2022-10-24 | 一种基于cpu的图形渲染方式的检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115357520A CN115357520A (zh) | 2022-11-18 |
CN115357520B true CN115357520B (zh) | 2022-12-16 |
Family
ID=84007913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211298700.4A Active CN115357520B (zh) | 2022-10-24 | 2022-10-24 | 一种基于cpu的图形渲染方式的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357520B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302764B (zh) * | 2023-05-22 | 2023-07-18 | 北京麟卓信息科技有限公司 | 一种基于最小数据填充的纹理填充率测试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114708370A (zh) * | 2022-03-29 | 2022-07-05 | 北京麟卓信息科技有限公司 | 一种Linux平台图形渲染方式的检测方法 |
CN115145778A (zh) * | 2022-09-02 | 2022-10-04 | 西安芯瞳半导体技术有限公司 | 一种显卡渲染结果分析方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8842123B2 (en) * | 2011-10-26 | 2014-09-23 | Google Inc. | Automatically testing a program executable on a graphics card |
-
2022
- 2022-10-24 CN CN202211298700.4A patent/CN115357520B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114708370A (zh) * | 2022-03-29 | 2022-07-05 | 北京麟卓信息科技有限公司 | 一种Linux平台图形渲染方式的检测方法 |
CN115145778A (zh) * | 2022-09-02 | 2022-10-04 | 西安芯瞳半导体技术有限公司 | 一种显卡渲染结果分析方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115357520A (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Arnau et al. | Eliminating redundant fragment shader executions on a mobile gpu via hardware memoization | |
US9799094B1 (en) | Per-instance preamble for graphics processing | |
US8887141B2 (en) | Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information | |
US20160300044A1 (en) | Anti-debugging method | |
CN115357520B (zh) | 一种基于cpu的图形渲染方式的检测方法 | |
US20130096880A1 (en) | System test method | |
KR20120037893A (ko) | 2 패스 자동화된 애플리케이션 인스트루먼테이션 | |
CN108701022B (zh) | 用于图形处理单元的着色器中的统一断言 | |
EP3137985A1 (en) | Graphics pipeline state object and model | |
US10877777B2 (en) | Enabling virtual calls in a SIMD environment | |
US8296738B1 (en) | Methods and systems for in-place shader debugging and performance tuning | |
US8276129B1 (en) | Methods and systems for in-place shader debugging and performance tuning | |
CN109074625B (zh) | 用于图形处理的每个着色器的前置码 | |
CN112434266A (zh) | 一种shellcode控制流扁平化混淆方法 | |
CN109582542B (zh) | 一种嵌入式系统核心转储的方法 | |
CN111897711A (zh) | 代码中bug的定位方法、装置、电子设备及可读存储介质 | |
CN111989655B (zh) | 一种soc芯片、确定热点函数的方法及终端设备 | |
Seo et al. | A profiling method by PCB hooking and its application for memory fault detection in embedded system operational test | |
CN107844703B (zh) | 一种基于Android平台Unity3D游戏的客户端安全检测方法及装置 | |
Prasannakumar | A scheme for accelerating image processing algorithms using SIMD for ARM Cortex A based systems | |
CN113646763B (zh) | shellcode的检测方法及装置 | |
Ukidave et al. | Performance evaluation and optimization mechanisms for inter-operable graphics and computation on gpus | |
US20170153849A1 (en) | Methods and apparatuses for generating machine code for driving an execution unit | |
CN109388948A (zh) | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 | |
CN111045658B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221216 Address after: Room 21031, Bofu Commercial Plaza, No. 416, Section 1, Furong Middle Road, Xiangya Road Street, Kaifu District, Changsha City, Hunan Province 410005 Patentee after: Changsha Linzhuo Information Technology Co.,Ltd. Address before: 310, 312, floor 3, No. 27, No. 801, Changlin, Xisanqi, Haidian District, Beijing 100085 Patentee before: BEIJING LINZHUO INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |