一种基于最小数据填充的纹理填充率测试方法技术

技术编号:38012634 阅读:11 留言:0更新日期:2023-06-30 10:34
本发明专利技术公开了一种基于最小数据填充的纹理填充率测试方法,在确定被测平台的可处理纹理极限值的基础上,逐轮递增在被测平台构建的测试窗口中渲染的测试纹理组中纹理的数量直至达到可处理纹理极限值,再根据每轮测试结果计算每轮的纹理填充率,选取其中最大值作为被测平台的纹理填充率,能够有效减少甚至避免测试过程中的光栅化处理,提高测试结果的准确性。性。

【技术实现步骤摘要】
一种基于最小数据填充的纹理填充率测试方法


[0001]本专利技术属于图形测试
,具体涉及一种基于最小数据填充的纹理填充率测试方法。

技术介绍

[0002]纹理填充率是指一秒钟内纹理渲染的数目,单位是MTexels/S(每秒百万纹理),是用来度量当前显卡的纹理处理性能的最常用指标。现有纹理填充率的测试一般采用计算的方式,具体为采用纹理填充率理论值公式进行计算,即由纹理映射单元(Texture Mapping Unit,TMU)与GPU指令周期进行除法运算得到纹理填充率,GPU的纹理映射单元的数量往往大于光栅化处理单元的数量,根据GPU型号不同可呈现1.5至3倍的关系,现有测试过程中一对一执行光栅化处理时纹理映射单元仅能生成与光栅化处理单元数量相等的纹理数据,因此无法发挥纹理映射单元极限性能,也就无法测得硬件的性能上限;此外,国产平台下GPU指令周期只能通过GPU驱动自带的API获取,而某些GPU并未提供该API仅提供闭源工具以界面信息的方式显示,这一限制也导致难以通过程序的方式自动测量纹理填充率。
[0003]综上所述,现有纹理填充率的测试方法主要存在以下问题:一是由测试过程采用的光栅化处理方式所导致的无法测得硬件性能上限的问题,二是由GPU指令周期获取限制导致的无法获得测试结果或测试结果不准确的问题。

技术实现思路

[0004]有鉴于此,本专利技术提供了一种基于最小数据填充的纹理填充率测试方法,实现了基于软件的GPU纹理填充率的测试。
[0005]本专利技术提供的一种基于最小数据填充的纹理填充率测试方法,包括以下步骤:步骤1、采用设定像素的渲染区域创建全屏图形,该全屏图形中填充长宽均为设定像素的纹理;逐轮增加全屏图形的数量,记录本轮全屏图形的数量,监测被测平台的处理状态,当被测平台GPU产生处理异常时上轮全屏图形的数量即为被测平台GPU的可处理纹理极限值;步骤2、创建测试窗口,构建设定数量的、大小为设定纹理大小且格式为非压缩的纹理作为测试纹理组,在被测平台启动将测试纹理组渲染至测试窗口的操作,同时记录渲染执行时间及渲染帧数,待测试纹理组渲染完毕后停止记录,并将记录的渲染执行时间保存为本轮场景总时长,将渲染帧数保存为本轮场景总帧数,将设定数量保存为本轮单个像素混合纹理的数量;步骤3、若设定数量小于可处理纹理极限值,则令设定数量自加增量值后执行步骤2;否则执行步骤4;步骤4、根据各轮的场景总时长、场景总帧数及单个像素混合纹理的数量,采用公式:纹理填充率=单个像素混合纹理的数量
×
纹理平面需要映射的像素个数
×
场景总时长/场景总帧数,计算各轮的纹理填充率,其中,纹理平面需要映射的像素个数为铺满测试窗口
的图形所包含的像素个数;最大纹理填充率即为被测平台的纹理填充率。
[0006]进一步地,所述步骤1中所述设定像素为长宽均为2像素。
[0007]进一步地,所述步骤1还包括:将被测平台设置为以控制台模式运行。
[0008]进一步地,所述步骤1还包括:关闭被测平台的垂直同步机制。
[0009]进一步地,所述步骤2中所述在被测平台启动将测试纹理组渲染至测试窗口的操作的渲染方式为:离屏渲染。
[0010]进一步地,所述设定纹理大小的确定方式为:若被测平台的显卡具有专用纹理显存,则以专用纹理显存的大小与可处理纹理极限值的比值作为设定纹理大小;否则以主显存的大小与可处理纹理极限值的比值作为设定纹理大小。
[0011]进一步地,所述测试窗口的尺寸设置为屏幕显示尺寸。
[0012]进一步地,所述设定数量在首轮渲染时设置为2,所述增量值设置为1。
[0013]有益效果
[0014]本专利技术在确定被测平台的可处理纹理极限值的基础上,逐轮递增在被测平台构建的测试窗口中渲染的测试纹理组中纹理的数量直至达到可处理纹理极限值,再根据每轮测试结果计算每轮的纹理填充率,选取其中最大值作为被测平台的纹理填充率,能够有效减少甚至避免测试过程中的光栅化处理,提高测试结果的准确性。
具体实施方式
[0015]下面列举实施例,对本专利技术进行详细描述。
[0016]本专利技术提供了一种基于最小数据填充的纹理填充率测试方法,其核心思想是:确定被测平台,设计测试过程测得被测平台的可处理纹理极限值,根据被测平台选用显卡的性能确定测试纹理组中纹理的大小,逐轮递增测试纹理组中纹理数量并在被测平台构建的测试窗口中渲染测试纹理组直至纹理数量达到可处理纹理极限值,根据每轮测试结果计算每轮的纹理填充率,选取其中最大值作为被测平台的纹理填充率。
[0017]本专利技术提供的一种基于最小数据填充的纹理填充率测试方法,具体包括以下步骤:步骤1、将被测平台设置为以控制台模式运行以最小化显示环境要素,即不启动任何窗口。
[0018]由于国产平台上基于X11、Wayland协议的桌面窗口通常需要常驻显存并消耗GPU资源,因此为减小对桌面窗口对测试过程的影响,本专利技术将被测平台均设置为开机即进入控制台模式,即以不启动任何窗口的方式运行。这样基于窗口的显示操作如OpenGL、OpenGL ES、DirectX等多种图形接口全部失效,不会消耗GPU资源,但是并不影响以操作framebuffer方式实现显示。
[0019]步骤2、采用设定像素的渲染区域创建全屏图形,该全屏图形中填充长宽均为设定像素的纹理;逐轮增加全屏图形的数量,记录本轮全屏图形的数量,监测被测平台的处理状态,当被测平台GPU产生处理异常时上轮全屏图形的数量即为被测平台GPU的可处理纹理极限值。
[0020]为加速程序执行的过程,本专利技术可将设定像素设置为长宽均为2像素,即可使设定像素的渲染区域为较小的图形和纹理。
[0021]步骤3、若被测平台的显卡具有专用纹理显存,则以专用纹理显存的大小与可处理纹理极限值的比值作为纹理大小;否则以主显存的大小与可处理纹理极限值的比值作为纹理大小。
[0022]通过复杂纹理测试GPU渲染性能时,复杂纹理在纹理处理单元的cache中可能会溢出,因此需要针对不同的显卡确定特定的纹理大小。
[0023]具体来说,对于具有专用纹理显存的高档显卡,其纹理显存由专用硬件电路构成,可提供与主显存相同的读取速度,此时可根据专用纹理显存的大小选取更大的纹理,例如,专用纹理显存的大小为1M,则可以选择纹理大小为1M/可处理纹理极限值的纹理;对于没有专用纹理显存的普通显卡,其纹理显存由软件在主显存中定义,也就是与主显存速度相同,此时采用主显存的大小/可处理纹理极限值作为纹理大小。
[0024]此外,由于Linux等平台的保护机制,连续读同一纹理文件的操作会触发保护机制,因此本专利技术还需要将纹理保存为不同名称的纹理文件,当被测平台的显卡具有专用纹理显存时将纹理文件保存在纹理显存中,当被测平台的显卡不具有专用纹理显存时将纹理文件保存在主显存cache中,以确保纹理文件能够被连续命中,由此将访存性能对纹理渲染过程的影响降到最低。
[0025]此外,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于最小数据填充的纹理填充率测试方法,其特征在于,包括以下步骤:步骤1、采用设定像素的渲染区域创建全屏图形,该全屏图形中填充长宽均为设定像素的纹理;逐轮增加全屏图形的数量,记录本轮全屏图形的数量,监测被测平台的处理状态,当被测平台GPU产生处理异常时上轮全屏图形的数量即为被测平台GPU的可处理纹理极限值;步骤2、创建测试窗口,构建设定数量的、大小为设定纹理大小且格式为非压缩的纹理作为测试纹理组,在被测平台启动将测试纹理组渲染至测试窗口的操作,同时记录渲染执行时间及渲染帧数,待测试纹理组渲染完毕后停止记录,并将记录的渲染执行时间保存为本轮场景总时长,将渲染帧数保存为本轮场景总帧数,将设定数量保存为本轮单个像素混合纹理的数量;步骤3、若设定数量小于可处理纹理极限值,则令设定数量自加增量值后执行步骤2;否则执行步骤4;步骤4、根据各轮的场景总时长、场景总帧数及单个像素混合纹理的数量,采用公式:纹理填充率=单个像素混合纹理的数量
×
纹理平面需要映射的像素个数
×
场景总时长/场景总帧数,计算各轮的纹理填充率,其中,纹理平面需要映射的...

【专利技术属性】
技术研发人员:杨凌云温研冯酉鹏
申请(专利权)人:北京麟卓信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1