CN103902444B - 3d引擎兼容性测试方法及装置 - Google Patents

3d引擎兼容性测试方法及装置 Download PDF

Info

Publication number
CN103902444B
CN103902444B CN201210579309.1A CN201210579309A CN103902444B CN 103902444 B CN103902444 B CN 103902444B CN 201210579309 A CN201210579309 A CN 201210579309A CN 103902444 B CN103902444 B CN 103902444B
Authority
CN
China
Prior art keywords
engine
video card
caps
caps information
information
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
Application number
CN201210579309.1A
Other languages
English (en)
Other versions
CN103902444A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210579309.1A priority Critical patent/CN103902444B/zh
Publication of CN103902444A publication Critical patent/CN103902444A/zh
Application granted granted Critical
Publication of CN103902444B publication Critical patent/CN103902444B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Eye Examination Apparatus (AREA)

Abstract

本发明公开一种3D引擎兼容性测试方法及装置,其方法包括:获取3D引擎的Caps信息;将3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;根据对比结果进行问题定位分析。本发明通过拦截3D引擎所使用的Direct3D?API,获取3D引擎所使用的Caps信息,并结合数据库中已有显卡的Caps信息,进行对比,以此准确预测可能出现兼容性问题的显卡,避免了在选择需要测试的显卡时的盲目性,有效的缩短了测试周期,并节省了人力及时间成本;此外,还可有效减少分析定位的范围,精确定位显卡兼容性问题的原因。<!--1-->

Description

3D引擎兼容性测试方法及装置
技术领域
本发明涉及计算机及互联网技术领域,尤其涉及一种3D引擎兼容性测试方法及装置。
背景技术
在Windows操作系统中,3D引擎是指将现实中的物质抽象为多边形或者各种曲线等表现形式,在计算机中进行相关计算并输出最终3D画面图像的算法实现的集合,因此,为了使3D引擎与计算机显卡匹配兼容,需要对显卡进行测试。
目前,几乎没有3D引擎的兼容性测试工具,也没有理论支持的测试方案,而且由于需要测试平台,增加了测试方案的复杂性,导致对3D引擎的兼容性测试成为业界的难点。
如图1所示,传统对3D引擎兼容性的测试方案中,存在以下不足:
1、如何选取显卡缺乏理论依据,没有结合3D引擎自身的特点,往往需要大量的人力及时间成本,覆盖尽可能多的硬件平台,测试方案的设计具有盲目性;
2、无法确定需要重点测试的显卡;
3、测试周期较长,而且由于硬件平台的完整性无法保证,使得测试的完整性无法保证;
4、报告提供的信息对定位问题原因帮助较小,不能提供硬件特性的区别点,很难定位问题的原因。
发明内容
本发明的主要目的在于提供一种3D引擎兼容性测试方法及装置,旨在避免选择测试显卡时的盲目性,提高3D引擎兼容性测试准确性。
为了达到上述目的,本发明提出一种3D引擎兼容性测试方法,包括:
获取3D引擎的Caps信息;
将所述3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;
根据对比结果进行问题定位分析。
本发明还提出一种3D引擎兼容性测试装置,包括:
获取模块,用于获取3D引擎的Caps信息;
比较模块,用于将所述3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;
分析模块,用于根据对比结果进行问题定位分析。
本发明提出的一种3D引擎兼容性测试方法及装置,通过拦截3D引擎所使用的Direct3DAPI,获取3D引擎所使用的Caps信息,并结合数据库中已有显卡的Caps信息,进行对比,以此准确预测可能出现兼容性问题的显卡,避免了在选择需要测试的显卡时的盲目性,有效的缩短了测试周期,并节省了人力及时间成本;此外,还可有效减少分析定位的范围,精确定位显卡兼容性问题的原因。
附图说明
图1是传统对3D引擎兼容性的测试流程示意图;
图2是本发明3D引擎兼容性测试方法较佳实施例的流程示意图;
图3是本发明3D引擎兼容性测试方法较佳实施例所涉及的总体架构示意图;
图4a是本发明3D引擎兼容性测试方法较佳实施例中获取3D引擎的Caps信息的原理框图;
图4b是本发明3D引擎兼容性测试方法较佳实施例中一种获取3D引擎的Caps信息的过程示意图;
图5是本发明3D引擎兼容性测试方法较佳实施例中3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比的原理示意图;
图6是本发明3D引擎兼容性测试方法较佳实施例的一种实例的流程示意图;
图7是本发明3D引擎兼容性测试装置较佳实施例的结构示意图;
图8是本发明3D引擎兼容性测试装置较佳实施例中获取模块的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下将结合附图及实施例,对实现发明目的的技术方案作详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例所涉及的技术术语包括:
Direct3DAPI:微软公司在MicrosoftWindows操作系统上所开发的一套3D绘图编程接口;
Caps:Direct3D的硬件特性列表,反映硬件对Direct3D特性的支持情况;
3D:三维(ThreeDimensions)主要特指是基于电脑/互联网的数字化的3D/三维/立体技术;
Bench3D:本发明实施例技术方案实现的工具名称。
请参照图2,图2是本发明3D引擎兼容性测试方法较佳实施例的流程示意图。
如图2所示,本实施例提出的一种3D引擎兼容性测试方法,包括:
步骤S101,获取3D引擎的Caps信息;
为了准确预测可能出现问题的显卡以及精确定位显卡与3D引擎兼容性问题原因,本实施例引入Bench3D测试工具对3D引擎兼容性进行测试,其所依托的总体架构如图3所示,图3是本实施例所涉及的总体架构示意图。
其中,Bench3D测试工具对3D兼容性测试的核心原理为:通过注入动态链接库(dll,DynamicLinkLibrary),拦截3D引擎所使用的Direct3DAPI,获取3D引擎所使用的Caps信息,通过共享内存传输给Bench3D测试工具并保存。之后与已知显卡的Caps信息进行对比,从而筛选出可能会出问题的显卡,并详细列出不支持的显卡Caps以及3D引擎所使用Caps的值,便于分析定位问题原因。
首先,Bench3D测试工具获取3D引擎的Caps信息,具体为:向3D引擎中注入动态链接库,拦截3D引擎所使用的Direct3DAPI,获取3D引擎所使用的Caps信息。
具体地,通过HookDll模块将编写的d3d9dll.dll注入到3D引擎中,之后3D引擎将使用该DLL实现渲染画面。
其中,d3d9dll.dll主要包括HkD3D、Capablities及NetEvent模块,以实现获取3D引擎的Caps信息,并通过共享内存传送给Bench3D测试工具保存。
本实施例获取3D引擎的Caps信息的原理框图如图4所示。
以某款3D引擎为例,获取到引擎的Caps信息的过程如图4b所示:
步骤S102,将所述3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;
其中,数据库中预存的显卡Caps信息是由Bench3D测试工具预先获取到的已知的显卡Caps信息,并将所有显卡Caps存储为数据库的形式。
在获取到3D引擎的Caps信息后,将3D引擎的Caps信息与数据库中已知显卡Caps信息进行对比,从中筛选出可能出兼容性问题的显卡,标明显卡具体所不能支持的特性,即列举出不支持的显卡Caps信息,同时列举出3D引擎所使用的参数。
上述原理请参照图5所示。
步骤S103,根据对比结果进行问题定位分析。
根据对比结果获取的不符合兼容性条件的显卡的Caps信息,以此对比结果为依据,再利用PIX、GPA等工具,可以快速准确定位3D引擎与显卡兼容性问题的原因,并提出相应的解决方案。
利用本实施例上述方案的一种实例的流程如图6所示。
相比现有技术不能结合3D引擎自身的特点,需要大量的人力及时间成本、测试方案的设计具有盲目性、测试周期较长以及定位问题原因难等缺陷,本实施例通过上述方案,结合3D引擎的实现方法,对测试方案的指定提供了理论依据;同时,通过预先测试,可大大减少所测试显卡数量,缩短测试周期,并可提供准确的Caps信息,便于准确分析定位问题原因,使得测试的完整性更强,可提供高附加值的测试结论。
以下从应用场景角度分析本发明的使用价值:
1、可完整的记录3D引擎使用的Caps信息:
在对被测3D引擎不做任何修改的情况下,完全从第三方的角度,通过注入的方式记录3D引擎所使用的Caps信息,从数千个DXCaps中提取出3D引擎所使用的Caps,可有效地减少分析定位的范围,便于查找问题原因。
2、准确对比3D引擎所使用的Caps信息与显卡的Caps:
通过对比Caps可以预测哪些显卡可能会出现兼容性问题,避免了在选择需要测试的显卡时的盲目性,有效地缩短了测试周期,并节省了人力及时间成本;在定位兼容性问题原因时,利用对比得出的Caps信息,可有效指导定位原因的方向,并可准确定位Caps不匹配导致的兼容性问题。
如图7所示,本发明较佳实施例提出一种3D引擎兼容性测试装置,包括:获取模块201、比较模块202以及分析模块203,其中:
获取模块201,用于获取3D引擎的Caps信息;以及获取已知显卡的Caps信息保存至数据库中。
比较模块202,用于将所述3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;
分析模块203,用于根据对比结果进行问题定位分析。
为了准确预测可能出现问题的显卡以及精确定位显卡与3D引擎兼容性问题原因,本实施例在3D引擎兼容性测试装置中引入Bench3D测试工具对3D引擎兼容性进行测试,其所依托的总体架构如图3所示,图3是本实施例所涉及的总体架构示意图。
其中,Bench3D测试工具对3D兼容性测试的核心原理为:通过注入动态链接库(dll,DynamicLinkLibrary),拦截3D引擎所使用的Direct3DAPI,获取3D引擎所使用的Caps信息,通过共享内存传输给Bench3D测试工具并保存。之后与已知显卡的Caps信息进行对比,从而筛选出可能会出问题的显卡,并详细列出不支持的显卡Caps以及3D引擎所使用Caps的值,便于分析定位问题原因。
首先,获取模块201通过Bench3D测试工具获取3D引擎的Caps信息,具体为:向3D引擎中注入动态链接库,拦截3D引擎所使用的Direct3DAPI,获取3D引擎所使用的Caps信息。
具体地,通过HookDll模块将编写的d3d9dll.dll注入到3D引擎中,之后3D引擎将使用该DLL实现渲染画面。
其中,d3d9dll.dll主要包括HkD3D、Capablities及NetEvent模块,以实现获取3D引擎的Caps信息,并通过共享内存传送给Bench3D测试工具保存。
本实施例获取3D引擎的Caps信息的原理框图如图4所示。
在本实施例中,在数据库中预存的显卡Caps信息是由Bench3D测试工具预先获取到的已知的显卡Caps信息,并将所有显卡Caps存储为数据库的形式。
在获取到3D引擎的Caps信息后,比较模块202将3D引擎的Caps信息与数据库中已知显卡Caps信息进行对比,从中筛选出可能出兼容性问题的显卡,标明显卡具体所不能支持的特性,即列举出不支持的显卡Caps信息,同时列举出3D引擎所使用的参数。
上述原理请参照图5所示。
之后,分析模块203根据对比结果获取的不符合兼容性条件的显卡的Caps信息,以此对比结果为依据,再利用PIX、GPA等工具,可以快速准确定位3D引擎与显卡兼容性问题的原因,并提出相应的解决方案。
具体地,如图8所示,上述获取模块201可以包括:注入单元2011及截获单元2012,其中:
注入单元2011,用于向所述3D引擎中注入动态链接库;
截获单元2012,用于拦截所述3D引擎所使用的Direct3DAPI,获取所述3D引擎所使用的Caps信息。
相比现有技术不能结合3D引擎自身的特点,需要大量的人力及时间成本、测试方案的设计具有盲目性、测试周期较长以及定位问题原因难等缺陷,本实施例通过上述方案,结合3D引擎的实现方法,对测试方案的指定提供了理论依据;同时,通过预先测试,可大大减少所测试显卡数量,缩短测试周期,并可提供准确的Caps信息,便于准确分析定位问题原因,使得测试的完整性更强,可提供高附加值的测试结论。
以下从应用场景角度分析本发明的使用价值:
1、可完整的记录3D引擎使用的Caps信息:
在对被测3D引擎不做任何修改的情况下,完全从第三方的角度,通过注入的方式记录3D引擎所使用的Caps信息,从数千个DXCaps中提取出3D引擎所使用的Caps,可有效地减少分析定位的范围,便于查找问题原因。
2、准确对比3D引擎所使用的Caps信息与显卡的Caps:
通过对比Caps可以预测哪些显卡可能会出现兼容性问题,避免了在选择需要测试的显卡时的盲目性,有效地缩短了测试周期,并节省了人力及时间成本;在定位兼容性问题原因时,利用对比得出的Caps信息,可有效指导定位原因的方向,并可准确定位Caps不匹配导致的兼容性问题。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种3D引擎兼容性测试方法,其特征在于,包括:
获取3D引擎的Caps信息;
将所述3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;
根据对比结果进行问题定位分析;所述获取3D引擎的Caps信息的步骤包括:
通过Bench3D测试工具向所述3D引擎中注入动态链接库;
拦截所述3D引擎所使用的Direct3DAPI,获取所述3D引擎所使用的Caps信息;具体为:通过HookDll模块将编写的d3d9dll.dll注入到3D引擎中,之后3D引擎将使用该d3d9dll.dll实现渲染画面;其中,d3d9dll.dll包括HkD3D、Capablities及NetEvent模块,以实现获取3D引擎的Caps信息。
2.根据权利要求1所述的方法,其特征在于,所述将3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比的步骤包括:
将3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比,从数据库中筛选出所有不符合兼容性条件的显卡,并列举出不支持的显卡Caps信息以及3D引擎所使用的参数。
3.根据权利要求2所述的方法,其特征在于,所述将3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比的步骤之前还包括:
获取已知显卡的Caps信息保存至数据库中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据对比结果进行问题定位分析的步骤包括:
根据对比结果获取的不符合兼容性条件的显卡的Caps信息,分析问题显卡产生的原因,并提供相应的测试结论。
5.一种3D引擎兼容性测试装置,其特征在于,包括:
获取模块,用于获取3D引擎的Caps信息;
比较模块,用于将所述3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比;
分析模块,用于根据对比结果进行问题定位分析;所述获取模块包括:
注入单元,用于通过Bench3D测试工具向所述3D引擎中注入动态链接库;
截获单元,用于拦截所述3D引擎所使用的Direct3DAPI,获取所述3D引擎所使用的Caps信息;具体为:通过HookDll模块将编写的d3d9dll.dll注入到3D引擎中,之后3D引擎将使用该d3d9dll.dll实现渲染画面;其中,d3d9dll.dll包括HkD3D、Capablities及NetEvent模块,以实现获取3D引擎的Caps信息。
6.根据权利要求5所述的装置,其特征在于,所述比较模块还用于将3D引擎的Caps信息与数据库中预存的显卡Caps信息进行对比,从数据库中筛选出所有不符合兼容性条件的显卡,并列举出不支持的显卡Caps信息以及3D引擎所使用的参数。
7.根据权利要求5所述的装置,其特征在于,所述获取模块还用于获取已知显卡的Caps信息保存至数据库中。
8.根据权利要求5-7中任一项所述的装置,其特征在于,所述分析模块还用于根据对比结果获取的不符合兼容性条件的显卡的Caps信息,分析问题显卡产生的原因,并提供相应的测试结论。
CN201210579309.1A 2012-12-27 2012-12-27 3d引擎兼容性测试方法及装置 Active CN103902444B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210579309.1A CN103902444B (zh) 2012-12-27 2012-12-27 3d引擎兼容性测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210579309.1A CN103902444B (zh) 2012-12-27 2012-12-27 3d引擎兼容性测试方法及装置

Publications (2)

Publication Number Publication Date
CN103902444A CN103902444A (zh) 2014-07-02
CN103902444B true CN103902444B (zh) 2016-03-02

Family

ID=50993779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210579309.1A Active CN103902444B (zh) 2012-12-27 2012-12-27 3d引擎兼容性测试方法及装置

Country Status (1)

Country Link
CN (1) CN103902444B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204988B (zh) * 2014-06-30 2018-03-06 北京安兔兔科技有限公司 电子设备游戏性能的测试方法及系统
CN107885653B (zh) * 2016-09-30 2020-12-04 腾讯科技(深圳)有限公司 一种数据处理系统、方法及装置
CN108073508B (zh) * 2016-11-18 2021-03-19 腾讯科技(深圳)有限公司 一种兼容性检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1591329A (zh) * 2003-08-25 2005-03-09 联想(北京)有限公司 一种软硬件智能识别和保护方法
CN101211258A (zh) * 2006-12-28 2008-07-02 联想(北京)有限公司 完整获取GDI和DirectX数据的方法
CN101515243A (zh) * 2008-02-21 2009-08-26 鸿富锦精密工业(深圳)有限公司 图形显示卡测试系统及方法
CN102053890A (zh) * 2009-10-28 2011-05-11 鸿富锦精密工业(深圳)有限公司 测试显卡三维图形处理功能的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1591329A (zh) * 2003-08-25 2005-03-09 联想(北京)有限公司 一种软硬件智能识别和保护方法
CN101211258A (zh) * 2006-12-28 2008-07-02 联想(北京)有限公司 完整获取GDI和DirectX数据的方法
CN101515243A (zh) * 2008-02-21 2009-08-26 鸿富锦精密工业(深圳)有限公司 图形显示卡测试系统及方法
CN102053890A (zh) * 2009-10-28 2011-05-11 鸿富锦精密工业(深圳)有限公司 测试显卡三维图形处理功能的系统和方法

Also Published As

Publication number Publication date
CN103902444A (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN103246602B (zh) 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
US9135151B2 (en) Automatic verification by comparing user interface images
CN102567166B (zh) 一种显卡测试方法及测试系统
CN109992498B (zh) 测试用例的生成方法及系统、计算机系统
CN104899336A (zh) 一种测量网页首屏完全渲染时间的方法
US10176078B1 (en) Debugging process
US20150161026A1 (en) System and method for determining test coverage
US20150088462A1 (en) Hardware performance evaluation method and server
CN105260299A (zh) 软件测试方法、装置及系统
US9799087B2 (en) Shader program profiler
CN105653056B (zh) 输入法的测试方法及装置
JP2005251172A5 (zh)
CN105138461A (zh) 一种应用程序的接口测试方法及装置
CN103902444B (zh) 3d引擎兼容性测试方法及装置
CN102624576A (zh) 一种自动测试浏览器的网页下载时间的方法和系统
CN108415830A (zh) 一种软件测试用例的生成方法及装置
CN108322359A (zh) 一种页面首屏时间的获取方法和装置
Ha et al. An Efficient Algorithm for On‐the‐Fly Data Race Detection Using an Epoch‐Based Technique
CN104375940A (zh) 一种对javaScript文件的调试方法
CN110082666A (zh) 芯片测试分析方法、装置、设备及存储介质
US9697102B2 (en) Compare concurrent threads executions
US8510714B2 (en) Implementing integrated documentation and application testing
CN103955425A (zh) 网页web探索测试装置及方法
US20140172344A1 (en) Method, system and apparatus for testing multiple identical components of multi-component integrated circuits
US10664247B1 (en) User interface

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant