CN117724987A - 一种基于纹理转换跟踪的OpenGL层次化实现验证方法 - Google Patents

一种基于纹理转换跟踪的OpenGL层次化实现验证方法 Download PDF

Info

Publication number
CN117724987A
CN117724987A CN202410179337.7A CN202410179337A CN117724987A CN 117724987 A CN117724987 A CN 117724987A CN 202410179337 A CN202410179337 A CN 202410179337A CN 117724987 A CN117724987 A CN 117724987A
Authority
CN
China
Prior art keywords
opengl
texture
interface
vulkan
test program
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.)
Granted
Application number
CN202410179337.7A
Other languages
English (en)
Other versions
CN117724987B (zh
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.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information Technology 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 Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202410179337.7A priority Critical patent/CN117724987B/zh
Publication of CN117724987A publication Critical patent/CN117724987A/zh
Application granted granted Critical
Publication of CN117724987B publication Critical patent/CN117724987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

  • Image Generation (AREA)

Abstract

本发明公开了一种基于纹理转换跟踪的OpenGL层次化实现验证方法,首先判断待测GPU的图形驱动是否支持Vulkan库,如果不支持则说明直接实现了OpenGL接口,否则构建接口实现方式测试程序,并在OpenGL和Vulkan间纹理转换相关的关键API内增加监测代码跟踪纹理转换,如果存在转换则说明基于Vulkan接口实现的OpenGL接口,否则说明直接实现了OpenGL接口,由此能够以软件方式准确判断GPU图形驱动对OpenGL接口的实现方式。

Description

一种基于纹理转换跟踪的OpenGL层次化实现验证方法
技术领域
本发明属于计算机软件开发技术领域,具体涉及一种基于纹理转换跟踪的OpenGL层次化实现验证方法。
背景技术
目前大多数的图形应用都是基于OpenGL开发的,因此采用直接支持OpenGL的GPU运行此类图形应用是最高效的方法。随着技术的发展出现了Vulkan图形API。OpenGL和Vulkan是两种不同的图形API,提供的纹理格式也不完全相同,与OpenGL相比Vulkan的控制能力更广泛、支持的新式格式更多。具体来说,OpenGL的纹理格式(Texture Format)被定义为内部格式(Internal Format),其确定了图像数据在GPU内存中存储的布局及精度。OpenGL的纹理格式包括纹理类型、颜色组件及支持的数据类型,其中,纹理类型包括1D、2D、3D、Cube Map等,颜色组件包括RGB、RGBA、Luminance Alpha等,数据类型包括UnsignedByte、Float等。Vulkan使用VkFormat枚举类型指定具体的纹理格式,各纹理格式均具有包括通道位数和类型等信息的规范说明,此外,Vulkan还支持sRGB格式及更细粒度的纹理压缩格式,如ASTC、ETC2、BC等。总体来说,Vulkan提供了更加丰富和精细的纹理格式选择,并使开发者有更大的控制自由去优化图像的存储和访问。
然而,现有情况是多数GPU实际仅提供对Vulkan接口的支持,尤其是基于移动GPUIP实现的GPU通常不能直接支持OpenGL,一般采用基于Vulkan接口这类层次化的方式实现OpenGL,但其往往对外宣称直接支持OpenGL,采用这种方式实现的OpenGL有可能导致部分图形应用无法使用,因此验证OpenGL的实际实现方式是非常必要的,目前对于此类问题还没有更准确高效的解决办法。
发明内容
有鉴于此,本发明提供了一种基于纹理转换跟踪的OpenGL层次化实现验证方法,实现了以软件方式对GPU图形驱动是否实现了OpenGL接口以及以何种方式实现了OpenGL接口的准确高效判断。
本发明提供的一种基于纹理转换跟踪的OpenGL层次化实现验证方法,包括以下步骤:
步骤1、检测待测GPU的图形驱动是否支持Vulkan接口,如果支持则执行步骤2;否则判定待测GPU为直接实现了OpenGL接口,结束本流程;
步骤2、构建接口实现方式测试程序,在接口实现方式测试程序中生成目标位图,采用OpenGL接口创建纹理对象,基于目标位图创建纹理,设定纹理的格式为OpenGL的内部格式,为纹理分配数据缓冲区记为OpenGL纹理缓冲区,再对纹理执行纹理渲染操作;
步骤3、确定待测GPU的图形驱动中与OpenGL和Vulkan间纹理转换相关的关键API,在关键API中增加监测代码,由监测代码获取Vulkan接口分配的存储空间及接口实现方式测试程序分配的存储空间,若两个存储空间中的数据相同则输出验证过程结束,否则输出执行后续流程;
步骤4、启动待测GPU所在系统,再启动接口实现方式测试程序,若系统输出验证过程结束则判定待测GPU的图形驱动基于Vulkan接口实现的OpenGL接口,并终止执行接口实现方式测试程序,完成验证结束本流程;若系统输出执行后续流程,则待接口实现方式测试程序执行完毕,判定待测GPU的图形驱动为直接实现了OpenGL接口,完成验证结束本流程。
进一步地,所述步骤2中所述纹理对象为2D类型。
进一步地,所述步骤3中所述关键API包括:vkBindImageMemory、vkCmdCopyBufferToImage及vkCmdCopyImage。
进一步地,所述步骤3中所述在关键API中增加监测代码的方式为对关键API执行Hook操作。
进一步地,所述步骤3中所述存储空间为内存或显存。
进一步地,所述vkBindImageMemory内增加监测代码的执行过程为:获取Vulkan接口当前的图像对象VkImage所使用的存储空间,建立VkImage的ID与该存储空间之间的映射关系,记为第一映射关系,将第一映射关系加入第一映射关系列表中,再执行原vkBindImageMemory中的处理流程;
所述vkCmdCopyBufferToImage内增加监测代码的执行过程为:先执行原vkCmdCopyBufferToImage中的处理流程,根据vkCmdCopyBufferToImage所调用的VkImage的ID在第一映射关系列表查找到与之对应的存储空间,并将该存储空间记为目标内存空间,获取接口实现方式测试程序所生成纹理的数据缓冲区即OpenGL纹理缓冲区,若目标内存空间及OpenGL纹理缓冲区中存储的数据相同则输出验证过程结束,否则输出执行后续流程。
进一步地,所述vkCmdCopyImage内增加监测代码的执行过程为:先执行原vkCmdCopyImage中的处理流程,将vkCmdCopyImage执行复制操作的当前显存的地址映射到内存对应的地址空间,将映射得到的内存记为目标显存空间,获取接口实现方式测试程序所生成纹理对象的数据缓冲区即OpenGL纹理缓冲区,若目标显存空间及OpenGL纹理缓冲区中存储的数据相同则输出验证过程结束,否则输出执行后续流程。
有益效果
本发明首先判断待测GPU的图形驱动是否支持Vulkan接口,如果不支持则说明直接实现了OpenGL接口,否则构建接口实现方式测试程序,并在OpenGL和Vulkan间纹理转换相关的关键API内增加监测代码跟踪纹理转换,如果存在转换则说明基于Vulkan接口实现的OpenGL接口,否则说明直接实现了OpenGL接口,由此能够以软件方式准确判断GPU图形驱动对OpenGL接口的实现方式。
具体实施方式
下面列举实施例,对本发明进行详细描述。
本发明提供了一种基于纹理转换跟踪的OpenGL层次化实现验证方法,其核心思想是:首先判断待测GPU的图形驱动是否支持Vulkan接口,如果不支持则说明直接实现了OpenGL接口,否则构建接口实现方式测试程序,并在OpenGL和Vulkan间纹理转换相关的关键API内增加监测代码,在接口实现方式测试程序执行过程中判断Vulkan接口分配的存储空间及接口实现方式测试程序分配的存储空间中的数据是否一致,如果一致则说明基于Vulkan接口实现的OpenGL接口,否则说明直接实现了OpenGL接口。
本发明提供的一种基于纹理转换跟踪的OpenGL层次化实现验证方法,具体包括以下步骤:
步骤1、检测待测GPU的图形驱动是否支持Vulkan接口,如果支持则执行步骤2;否则判定待测GPU为直接实现了OpenGL接口,结束本流程。
其中,检测待测GPU的图形驱动是否支持Vulkan库的方式,包括在待测GPU所在系统上执行Vulkan中的相关命令,如果执行正常则说明待测GPU的图形驱动支持Vulkan库,否则说明不支持;还可以检测待测GPU的图形驱动程序代码中是否包含Vulkan库的方式进行判断,如果包含则说明待测GPU的图形驱动支持Vulkan库,否则说明不支持。
步骤2、构建接口实现方式测试程序,在接口实现方式测试程序中生成目标位图,采用OpenGL接口创建设定类型的纹理对象,基于目标位图创建纹理,设定纹理的格式为OpenGL的内部格式,为纹理分配数据缓冲区记为OpenGL纹理缓冲区,再对纹理执行纹理渲染操作。
步骤3、确定待测GPU的图形驱动中与OpenGL和Vulkan间纹理转换相关的关键API,包括vkBindImageMemory、vkCmdCopyBufferToImage及vkCmdCopyImage;修改待测GPU的图形驱动,即在关键API中增加监测代码,由监测代码分别获取Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间,若两个存储空间中的数据相同则输出验证过程结束,否则输出执行后续流程。
进一步地,OpenGL和Vulkan间纹理转换相关的关键API还可选用vkCreateImage、vkAllocateMemory、vkMapMemory、vkUnmapMemory等。
进一步地,当监测代码获取Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间内的数据时,锁定Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间,并在比较分析后解锁Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间。
这种情况,步骤3中由监测代码分别获取Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间,若两个存储空间中的数据相同则输出验证过程结束,否则解锁Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间,实际的执行过程为:由监测代码分别获取并锁定Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间,若两个存储空间中的数据相同则输出验证过程结束,否则解锁Vulkan库分配的存储空间及接口实现方式测试程序分配的存储空间。
具体来说,以vkBindImageMemory、vkCmdCopyBufferToImage及vkCmdCopyImage作为关键API,可通过对上述关键API执行Hook操作实现对其执行过程的监测,vkBindImageMemory和vkCmdCopyBufferToImage两个函数主要用于监测内存中的纹理数据的拷贝,vkCmdCopyImage函数则用于监测显存中的纹理数据的拷贝。
其中,为vkBindImageMemory构造的Hook函数,执行过程为:获取Vulkan接口当前的图像对象VkImage所使用的存储空间,建立VkImage的ID与该存储空间之间的映射关系,记为第一映射关系,将第一映射关系加入第一映射关系列表中,再执行原vkBindImageMemory中的处理流程。其中,第一映射关系中记录存储空间的地址,该存储空间可为内存或显存。
为vkCmdCopyBufferToImage构造的Hook函数,执行过程为:先执行原vkCmdCopyBufferToImage中的处理流程,锁定当前系统存储空间操作防止数据被修改,根据vkCmdCopyBufferToImage所调用的VkImage的ID在第一映射关系列表查找到与之对应的存储空间,并将该存储空间记为目标内存空间,获取接口实现方式测试程序所生成纹理的数据缓冲区即OpenGL纹理缓冲区,若目标内存空间及OpenGL纹理缓冲区中存储的数据相同则输出验证过程结束,若数据不同则解除对当前系统存储空间的锁定。其中,锁定的当前系统存储空间包括内存和显存。
为vkCmdCopyImage构造的Hook函数,执行过程为:先执行原vkCmdCopyImage中的处理流程,锁定当前系统存储空间操作防止数据被修改,将vkCmdCopyImage执行复制操作的当前显存的地址映射到内存对应的地址空间,将映射得到的内存记为目标显存空间,获取接口实现方式测试程序所生成纹理对象的数据缓冲区即OpenGL纹理缓冲区,若目标显存空间及OpenGL纹理缓冲区中存储的数据相同则输出验证过程结束,若数据不同则解除对当前系统存储空间的锁定。
步骤4、启动步骤3修改后的待测GPU所在系统,再启动接口实现方式测试程序,若系统输出验证过程结束,则判定待测GPU的图形驱动基于Vulkan接口实现的OpenGL接口,并终止接口实现方式测试程序的执行,完成验证过程;若系统输出执行后续流程,则待接口实现方式测试程序执行完毕后,判定待测GPU的图形驱动为直接实现了OpenGL接口,完成验证过程。
实施例
本实施例中采用本发明提供的一种基于纹理转换跟踪的OpenGL层次化实现验证方法实现了对待测GPU的图形驱动中OpenGL接口实现方式的判断,具体包括以下步骤:
S1、构建针对待测GPU的图形驱动的接口实现方式测试程序,包括:
S1.1、初始化待测GPU所在系统内的OpenGL环境,确保接口实现方式测试程序完成了OpenGL上下文的设置。
S1.2、生成纹理对象,将该纹理对象绑定到GL_TEXTURE_2D目标,即声明该纹理对象为2D类型的纹理对象。除此之外,纹理对象也可采用其他类型。
示例代码如下:
{GLuint textureID;
glGenTextures(1,&textureID);
glBindTexture(GL_TEXTURE_2D,textureID);}
S1.3、使用glTexImage2D函数创建纹理,并设置纹理的格式为GL_RGBA8的内部格式。
实例代码如下:
{glTexImage2D(GL_TEXTURE_2D,//纹理目标
0,//mipmap等级
GL_RGBA8,//纹理存储的内部格式
width,//纹理宽度
height,//纹理高度
0,//边框
GL_RGBA,//纹理数据的格式
GL_UNSIGNED_BYTE,//纹理数据的类型
TexBuffer);//纹理数据指针}
其中,width和height表示纹理的尺寸,TexBuffer为位图对应的数据缓冲区指针,本实施例基于该位图创建的纹理,该位图可为本发明随机生成的位图并确保其唯一性。
S1.4、调用glGetTexImage获取生成的纹理的数据缓冲区指针,记为openglTextureBuffer,该数据缓冲区内的数据虽然是由TexBuffer生成的,但内容和TexBuffer不同,其中包含了纹理信息。
S1.5、对S1.3创建的OpenGL纹理执行纹理渲染操作。
具体包括以下步骤:
S1.5.1、绑定纹理,并在着色器程序中进行采样,示例代码如下:
{glActiveTexture(GL_TEXTURE0);//激活纹理单元
glBindTexture(GL_TEXTURE_2D,textureID);//绑定纹理}
S1.5.2、在着色器中使用采样器uniform引用纹理单元,并通过该采样器访问纹理数据。在顶点/片段着色器中的示例代码为:
{uniformsampler2D u_texture;//uniform采样器变量
...
void main(){
...
vec4 color=texture(u_texture,texCoords);//使用纹理坐标texCoords获取颜色
...
}}
S1.5.3、在渲染循环中,确保已将采样器与相应的纹理单元关联起来,示例代码为:
{GLint textureUniformLocation=glGetUniformLocation(shaderProgram,"u_texture");
glUniform1i(textureUniformLocation,0);//0对应于GL_TEXTURE0}
S1.5.4、执行渲染操作将纹理应用到对应的几何体上。
S2、将OpenGL纹理转换为Vulkan纹理一定会用到API作为关键API,Hook核心API,即Hook以下三个函数:vkBindImageMemory和vkCmdCopyBufferToImage,vkCmdCopyImage。
具体来说,在将OpenGL纹理转换为Vulkan纹理时,一定会将OpenGL纹理的内容复制到某个VkImage对象内,然后基于该VkImage对象进行格式转换,对本实施例来说,就是将格式为GL_RGBA8的VkImage对象进行转码,转码为格式为VK_FORMAT_R8G8B8A8_UNORM的VkImage对象。
通过在Hook函数内检测Vulkan库是否执行了将接口实现方式测试程序中构造的格式为GL_RGBA8的纹理转换为Vulkan的VK_FORMAT_R8G8B8A8_UNORM格式的纹理的操作。
vkBindImageMemory的Hook函数执行步骤包括:
S2.1.1、建立VkImage的ID与内存或显存的映射关系,并将映射关系加入到列表vkImageId2Buffer中;
S2.1.2、执行标准vkBindImageMemory。
vkCmdCopyBufferToImage的Hook函数执行步骤如下:
S2.2.1、执行标准vkCmdCopyBufferToImage;
S2.2.2、禁用fence或者其他用于Buffer数据的信号量,以防止数据被篡改;
S2.2.3、根据当前vkCmdCopyBufferToImage调用的imageID,在vkImageId2Buffer中查找对应的内存或显存,记为vkImageBuffer;
S2.2.4、比较vkImageBuffer与openglTextureBuffer的内容,如二者相同,则报出OpenGL接口是基于Vulkan接口实现的,并退出当前程序;否则恢复fence或者其他用于Buffer数据的信号量。
vkCmdCopyImage的Hook函数执行步骤如下:
S2.3.1、执行标准vkCmdCopyImage;
S2.3.2、禁用fence或者其他用于Buffer数据的信号量,以防止数据被篡改;
S2.3.3、锁定复制的目标显存地址,将该显存地址映射到内存地址空间,记为vkImageBufferInRAM;
S2.3.4、比较vkImageBufferInRAM与openglTextureBuffer的内容,如二者相同,则报出OpenGL接口是基于Vulkan接口实现的,并退出当前程序;否则恢复fence或者其他用于Buffer数据的信号量。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于纹理转换跟踪的OpenGL层次化实现验证方法,其特征在于,包括以下步骤:
步骤1、检测待测GPU的图形驱动是否支持Vulkan接口,如果支持则执行步骤2;否则判定待测GPU为直接实现了OpenGL接口,结束本流程;
步骤2、构建接口实现方式测试程序,在接口实现方式测试程序中生成目标位图,采用OpenGL接口创建纹理对象,基于目标位图创建纹理,设定纹理的格式为OpenGL的内部格式,为纹理分配数据缓冲区记为OpenGL纹理缓冲区,再对纹理执行纹理渲染操作;
步骤3、确定待测GPU的图形驱动中与OpenGL和Vulkan间纹理转换相关的关键API,在关键API中增加监测代码,由监测代码获取Vulkan接口分配的存储空间及接口实现方式测试程序分配的存储空间,若两个存储空间中的数据相同则输出验证过程结束,否则输出执行后续流程;
步骤4、启动待测GPU所在系统,再启动接口实现方式测试程序,若系统输出验证过程结束则判定待测GPU的图形驱动基于Vulkan接口实现的OpenGL接口,并终止执行接口实现方式测试程序,完成验证结束本流程;若系统输出执行后续流程,则待接口实现方式测试程序执行完毕,判定待测GPU的图形驱动为直接实现了OpenGL接口,完成验证结束本流程。
2.根据权利要求1所述的OpenGL层次化实现验证方法,其特征在于,所述步骤2中所述纹理对象为2D类型。
3.根据权利要求1所述的OpenGL层次化实现验证方法,其特征在于,所述步骤3中所述关键API包括:vkBindImageMemory、vkCmdCopyBufferToImage及vkCmdCopyImage。
4.根据权利要求1所述的OpenGL层次化实现验证方法,其特征在于,所述步骤3中所述在关键API中增加监测代码的方式为对关键API执行Hook操作。
5.根据权利要求1所述的OpenGL层次化实现验证方法,其特征在于,所述步骤3中所述存储空间为内存或显存。
6.根据权利要求3所述的OpenGL层次化实现验证方法,其特征在于,所述vkBindImageMemory内增加监测代码的执行过程为:获取Vulkan接口当前的图像对象VkImage所使用的存储空间,建立VkImage的ID与该存储空间之间的映射关系,记为第一映射关系,将第一映射关系加入第一映射关系列表中,再执行原vkBindImageMemory中的处理流程;
所述vkCmdCopyBufferToImage内增加监测代码的执行过程为:先执行原vkCmdCopyBufferToImage中的处理流程,根据vkCmdCopyBufferToImage所调用的VkImage的ID在第一映射关系列表查找到与之对应的存储空间,并将该存储空间记为目标内存空间,获取接口实现方式测试程序所生成纹理的数据缓冲区即OpenGL纹理缓冲区,若目标内存空间及OpenGL纹理缓冲区中存储的数据相同则输出验证过程结束,否则输出执行后续流程。
7.根据权利要求3所述的OpenGL层次化实现验证方法,其特征在于,所述vkCmdCopyImage内增加监测代码的执行过程为:先执行原vkCmdCopyImage中的处理流程,将vkCmdCopyImage执行复制操作的当前显存的地址映射到内存对应的地址空间,将映射得到的内存记为目标显存空间,获取接口实现方式测试程序所生成纹理对象的数据缓冲区即OpenGL纹理缓冲区,若目标显存空间及OpenGL纹理缓冲区中存储的数据相同则输出验证过程结束,否则输出执行后续流程。
CN202410179337.7A 2024-02-18 2024-02-18 一种基于纹理转换跟踪的OpenGL层次化实现验证方法 Active CN117724987B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410179337.7A CN117724987B (zh) 2024-02-18 2024-02-18 一种基于纹理转换跟踪的OpenGL层次化实现验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410179337.7A CN117724987B (zh) 2024-02-18 2024-02-18 一种基于纹理转换跟踪的OpenGL层次化实现验证方法

Publications (2)

Publication Number Publication Date
CN117724987A true CN117724987A (zh) 2024-03-19
CN117724987B CN117724987B (zh) 2024-05-17

Family

ID=90203874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410179337.7A Active CN117724987B (zh) 2024-02-18 2024-02-18 一种基于纹理转换跟踪的OpenGL层次化实现验证方法

Country Status (1)

Country Link
CN (1) CN117724987B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116702A1 (en) * 2015-10-21 2017-04-27 Stephen Viggers Systems and methods for using an opengl api with a vulkan graphics driver
US20190073741A1 (en) * 2017-08-09 2019-03-07 Daniel Herring Systems and Methods for Using EGL with an OPENGL API and a Vulkan Graphics Driver
WO2022095808A1 (zh) * 2020-11-06 2022-05-12 华为技术有限公司 基于Vulkan实现图形渲染的方法及相关装置
US20230196677A1 (en) * 2021-12-16 2023-06-22 Nvidia Corporation Application programming interface to create and modify graphics objects
CN116962813A (zh) * 2023-07-31 2023-10-27 摩尔线程智能科技(北京)有限责任公司 一种yuv数据渲染系统及方法、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116702A1 (en) * 2015-10-21 2017-04-27 Stephen Viggers Systems and methods for using an opengl api with a vulkan graphics driver
US20190073741A1 (en) * 2017-08-09 2019-03-07 Daniel Herring Systems and Methods for Using EGL with an OPENGL API and a Vulkan Graphics Driver
WO2022095808A1 (zh) * 2020-11-06 2022-05-12 华为技术有限公司 基于Vulkan实现图形渲染的方法及相关装置
US20230196677A1 (en) * 2021-12-16 2023-06-22 Nvidia Corporation Application programming interface to create and modify graphics objects
CN116962813A (zh) * 2023-07-31 2023-10-27 摩尔线程智能科技(北京)有限责任公司 一种yuv数据渲染系统及方法、电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵士彭;张立志;赵皓宇;苏孟豪;刘苏;: "高性能GPU模拟器驱动设计研究", 高技术通讯, no. 05, 15 May 2020 (2020-05-15), pages 5 *

Also Published As

Publication number Publication date
CN117724987B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
US8659589B2 (en) Leveraging graphics processors to optimize rendering 2-D objects
US7710430B2 (en) Methods, systems, and data structures for generating a rasterizer
US9865084B2 (en) Graphics processing using attributes with associated meta information
US6961057B1 (en) Method and apparatus for managing and accessing depth data in a computer graphics system
US8547382B2 (en) Video graphics system and method of pixel data compression
US9836810B2 (en) Optimized multi-pass rendering on tiled base architectures
US7683905B1 (en) Methods of processing graphics data including reading and writing buffers
US7907145B1 (en) Multiple data buffers for processing graphics data
US11232535B2 (en) Systems and methods for using EGL with an OpenGL API and a Vulkan graphics driver
US11521342B2 (en) Residency map descriptors
CN115409687B (zh) 一种基于显示缓冲区合成的渲染差异检测方法
US7091979B1 (en) Pixel load instruction for a programmable graphics processor
CN117724987B (zh) 一种基于纹理转换跟踪的OpenGL层次化实现验证方法
CN106204413A (zh) 利用分层加速结构的图形渲染
CN115543158A (zh) 一种基于着色器的跨运行环境鼠标图层渲染优化方法
CN111932689A (zh) 一种采用id像素图的三维对象快速选取方法
CN117743195B (zh) 基于渲染时间差异度量的图形接口层次化实现验证方法
CN115861511B (zh) 绘制命令的处理方法、装置、系统和计算机设备
CN117830457B (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