Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ feedback will help refine the recommendation list.

## Version history

* 1.2.4 - (05/27/2026) - Recommend Vulkan on unknown devices if they pass
dEQP 3.2024 or later. Deprecate future Android Vulkan criteria.
Disable fingerprint check by default unless user device
info is provided, deprecate default fingerprint entries in quality file, improve
data validation checks in quality file. Fix potential logic flaw in sequential
wildcard matching. Minor bug fixes.
* 1.2.3 - (12/03/2025) - Recommend Vulkan on unrecognized devices if ANGLE is
the system GLES driver, fix redundant/missing eglTerminate in GLES utils.
* 1.2.2 - (06/09/2025) - Updated device list with additional GPU recommendations
Expand Down
5 changes: 5 additions & 0 deletions list_editor/example_data/device_list.csv
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,13 @@ MinApi,MinDriver,Brand,Device,Manufacturer,Model Name,RAM (TotalMem),Form Factor
34,0,google,shiba,Google,Pixel 8,7972MB,Phone,Google Tensor G3,Mali-G715s MC10,1080x2400,420,arm64-v8a,34,3.2,0,0.00%,0.00%,0.00%,0.00%
34,0,google,comet,Google,Pixel 9 Pro Fold,16308MB,Tablet,Google Tensor G4,7x ARM Mali G715 (940 MHz),2076x2152,390,arm64-v8a,35,3.2,0,0.00%,0.00%,0.00%,0.00%
34,0,google,caiman,Google,Pixel 9 Pro,16308MB,Phone,Google Tensor G4,7x ARM Mali G715 (940 MHz),1280x2856,480,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
34,0,google,tegu,Google,Pixel 9a,7682-7938MB,Phone,Google Tensor G4,7x ARM Mali G715 (940 MHz),1080x2424,420,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
34,0,google,stallion,Google,Pixel 10a,7938MB,Phone,Google Tensor G4,7x ARM Mali G715 (940 MHz),1080x2424,420,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
34,0,google,tokay,Google,Pixel 9,12109MB,Phone,Google Tensor G4,7x ARM Mali G715 (940 MHz),1080x2424,420,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
34,0,google,komodo,Google,Pixel 9 Pro XL,16308MB,Phone,Google Tensor G4,7x ARM Mali G715 (940 MHz),1344x2992,480,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
35,0,google,frankel,Google,Pixel 10,12109MB,Phone,Google Tensor G5,Imagination Tech DXT 48-1536 (1300 MHz),1080x2424,420,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
35,0,google,blazer,Google,Pixel 10 Pro,15819-16332MB,Phone,Google Tensor G5,Imagination Tech DXT 48-1536 (1300 MHz),1280x2856,480,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
35,0,google,rango,Google,Pixel 10 Pro Fold,16331MB,Phone,Google Tensor G5,Imagination Tech DXT 48-1536 (1300 MHz),2076x2152,390,arm64-v8a,34;35,3.2,0,0.00%,0.00%,0.00%,0.00%
34,2150531090,HONOR,HNBVL,Honor,HONOR Magic6 Pro,11824MB,Phone,QTI SM8650,Qualcomm Adreno 830 (903 MHz),1280x2800,560,arm64-v8a,34,3.2,0,0.00%,0.00%,0.00%,0.00%
34,2150531090,HONOR,HNBVL-AN00,Honor,HONOR Magic6,16015MB,Phone,QTI SM8650,Qualcomm Adreno 830 (903 MHz),1264x2800,560,arm64-v8a,34,3.2,0,0.00%,0.00%,0.00%,0.00%
33,2150252544,HONOR,HNFRI,Honor,HONOR Magic Vs,11850MB,Tablet,QTI SM8475,Qualcomm Adreno 730 (900 MHz),1984x2272,480,arm64-v8a;armeabi;armeabi-v7a,33,3.2,0,0.00%,0.00%,0.00%,0.00%
Expand Down
108 changes: 2 additions & 106 deletions list_editor/example_data/driver_allow.csv
Original file line number Diff line number Diff line change
@@ -1,107 +1,3 @@
soc,glFullVersion
SM7450,"OpenGL ES 3.2 V@0615.73 (GIT@8f5499ec14, Ie6ef1a0a80, 1689341690) (Date:07/14/23)"
SM6450,"OpenGL ES 3.2 V@0615.80 (GIT@406382a20f, I986008d073, 1704447428) (Date:01/05/24)"
SM8450,"OpenGL ES 3.2 V@0615.73 (GIT@8f5499ec14, Ie6ef1a0a80, 1689341690) (Date:07/14/23)"
MT6877,OpenGL ES 3.2 v1.r32p1-01eac0.8135628637558d6d27e8ec61da0ffbb5
MT6769,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
MT6789,OpenGL ES 3.2 v1.r32p1-01eac0.394145956bc7cd8e697b330aba11e3d3
SM8350,"OpenGL ES 3.2 V@0615.73 (GIT@8f5499ec14, Ie6ef1a0a80, 1689341690) (Date:07/14/23)"
SM8635,"OpenGL ES 3.2 V@0762.15 (GIT@674f6c61df, Iec746bb8f9, 1712300122) (Date:04/05/24)"
MT6983,OpenGL ES 3.2 v1.r32p1-01eac0.b1c355f1ca75ee340751fc2d07d2e153
SM8450,"OpenGL ES 3.2 V@0615.0 (GIT@194d5e5755, I6561b7ccb3, 1691691459) (Date:08/10/23)"
MT6877V/TTZA,OpenGL ES 3.2 v1.r32p1-01eac0.b8cf1793b1173c0bb23abcfef1974de4
MT6769Z,OpenGL ES 3.2 v1.r32p1-01eac0.52688e0652bc37eab85ce86c674ab12f
MT6879V_T/ZA,OpenGL ES 3.2 v1.r32p1-01eac0.a031c769622e85782e9b68c066a81213
SM7450,"OpenGL ES 3.2 V@0615.76 (GIT@fc9849b050, Ibccd5936db, 1700474993) (Date:11/20/23)"
MT6781,OpenGL ES 3.2 v1.r32p1-01eac0.f8dc73e9e828783da7609cdc1c245dfa
EXYNOS 2100,OpenGL ES 3.2 v1.r38p0-01eac0-mbs2v41_0.65f90f7db733ed40f27c25ca33fc398f
SM7675,"OpenGL ES 3.2 V@0762.17 (GIT@f115f6bba1, I45c6b84a32, 1712917670) (Date:04/12/24)"
SM4350,"OpenGL ES 3.2 V@0530.0 (GIT@8699000cd8, I1027f1d7d9, 1649421937) (Date:04/08/22)"
SM8350,"OpenGL ES 3.2 V@0530.0 (GIT@12ae96cb63, I409bbc12eb, 1694603898) (Date:09/13/23)"
MT8781V/CA,OpenGL ES 3.2 v1.r32p1-01eac0.394145956bc7cd8e697b330aba11e3d3
SM4450,"OpenGL ES 3.2 V@0615.77 (GIT@64bab644ca, I204cbc9b5e, 1700479993) (Date:11/20/23)"
SM6375,"OpenGL ES 3.2 V@0530.0 (GIT@f3aa497c33, I7c31881d50, 1639653329) (Date:12/16/21)"
MT6985,OpenGL ES 3.2 v1.r38p1
MT6883,OpenGL ES 3.2 v1.r32p1-01eac0.479f7c91bbdfefd5f0c368c0a30bcfd0
S5E9945,OpenGL ES 3.2 Driver version: 24.1.207 git hash: 927672398aa8
SM8550,"OpenGL ES 3.2 V@0676.57 (GIT@6129fbc570, I5a3b7da999, 1708681500) (Date:02/23/24)"
S5E8835,OpenGL ES 3.2 v1.r38p1-01eac0-mbs2v41_0.8e62f436dbeeadb2f1bba495fbb741ec
SM8650,"OpenGL ES 3.2 V@0744.12 (GIT@62c1f322ce, Id0077aad60, 1700555917) (Date:11/21/23)"
MT6833V/PNZA,OpenGL ES 3.2 v1.r32p1-01eac0.0a0b917d9265b4c01be9925306306139
SM6375,"OpenGL ES 3.2 V@0762.17 (GIT@f115f6bba1, I45c6b84a32, 1712929337) (Date:04/12/24)"
MT8798Z/CNZA,OpenGL ES 3.2 v1.r32p1-01eac0.b1c355f1ca75ee340751fc2d07d2e153
QCM6490,"OpenGL ES 3.2 V@0530.46 (GIT@a3cdec2236, Ief33eea0db, 1661255399) (Date:08/23/22)"
MT6789,OpenGL ES 3.2 v1.r32p1-01eac0.9850964fe16242c585c8d423010c8595
MT6768,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
SM4375,"OpenGL ES 3.2 V@0615.74 (GIT@dad4038ba6, If56d4a5bb8, 1690544947) (Date:07/28/23)"
SM8475,"OpenGL ES 3.2 V@0615.82 (GIT@9dec52427c, Ibe7eb5ecbe, 1705914897) (Date:01/22/24)"
S5E8825,OpenGL ES 3.2 v1.r32p1-01bet2-mbs2v39_0.24a5b8b8abb488a61e5e48232a460c3e
SM8650,"OpenGL ES 3.2 V@0744.18 (GIT@d774a8672e, I8ea610b5b4, 1704277645) (Date:01/03/24)"
SM6375,"OpenGL ES 3.2 V@0530.48 (GIT@e7626cbb06, If33672715f, 1674571865) (Date:01/24/23)"
SM6225,"OpenGL ES 3.2 V@0615.72 (GIT@67600309f5, I34f73d0972, 1688991399) (Date:07/10/23)"
MT6833P,OpenGL ES 3.2 v1.r32p1-01eac0.0a0b917d9265b4c01be9925306306139
SM6225,"OpenGL ES 3.2 V@0615.81 (GIT@75362bd531, I5cf4e5bf0f, 1704968105) (Date:01/11/24)"
MT6835,OpenGL ES 3.2 v1.r38p1
S5E9945,OpenGL ES 3.2 ANGLE git hash: 131b607622f4
SM7450,"OpenGL ES 3.2 V@0615.84 (GIT@72d8b177be, I020fdb6434, 1709038286) (Date:02/27/24)"
SM6225,"OpenGL ES 3.2 V@0615.84 (GIT@72d8b177be, I020fdb6434, 1709038286) (Date:02/27/24)"
SM8450,"OpenGL ES 3.2 V@0615.0 (GIT@770ea4bdb9, Ief8f71bb1e, 1706806055) (Date:02/01/24)"
MT6769V/WZ,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
SM7550,"OpenGL ES 3.2 V@0676.57 (GIT@6129fbc570, I5a3b7da999, 1708681500) (Date:02/23/24)"
MT6769V/CA,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
MT6877V/TTZA,OpenGL ES 3.2 v1.r32p1-01eac0.8135628637558d6d27e8ec61da0ffbb5
SM7675,"OpenGL ES 3.2 V@0762.15 (GIT@674f6c61df, Iec746bb8f9, 1712300122) (Date:04/05/24)"
SM6225,"OpenGL ES 3.2 V@0615.74 (GIT@dad4038ba6, If56d4a5bb8, 1690544947) (Date:07/28/23)"
MT6895,OpenGL ES 3.2 v1.r32p1-01eac0.b89152572cfa9465230812a8225a45a0
SM7435,"OpenGL ES 3.2 V@0615.82 (GIT@9dec52427c, Ibe7eb5ecbe, 1705914897) (Date:01/22/24)"
MT6833V/ZA,OpenGL ES 3.2 v1.r32p1-01eac0.0a0b917d9265b4c01be9925306306139
MT8791V/T,OpenGL ES 3.2 v1.r32p1-01eac0.b8cf1793b1173c0bb23abcfef1974de4
S5E8845,OpenGL ES 3.2 ANGLE git hash: c2b872f4c96b
TENSOR G2,OpenGL ES 3.2 v1.r44p0-01eac0.1f05338ba59e9e7d040ba6bef774b2ac
SM8550,"OpenGL ES 3.2 V@0676.42 (GIT@7b26bdd942, Iab69c31769, 1693222181) (Date:08/28/23)"
MT6769,OpenGL ES 3.2 v1.r32p1-01eac0.52688e0652bc37eab85ce86c674ab12f
MT6833V/NZA,OpenGL ES 3.2 v1.r32p1-01eac0.0a0b917d9265b4c01be9925306306139
SM8635,"OpenGL ES 3.2 V@0762.14 (GIT@c70b9a2a3c, I34176f3f01, 1711715768) (Date:03/29/24)"
SM7450,"OpenGL ES 3.2 V@0615.74 (GIT@dad4038ba6, If56d4a5bb8, 1690544947) (Date:07/28/23)"
SM8450,"OpenGL ES 3.2 V@0615.82 (GIT@9dec52427c, Ibe7eb5ecbe, 1705914897) (Date:01/22/24)"
S5E9945,OpenGL ES 3.2 ANGLE git hash: d2a158dccead
MT6893Z/CZA,OpenGL ES 3.2 v1.r32p1-01eac0.efd03ef21f136842c0935bd4f493fe81
MT6891Z/CZA,OpenGL ES 3.2 v1.r32p1-01eac0.efd03ef21f136842c0935bd4f493fe81
MT6789V/CD,OpenGL ES 3.2 v1.r32p1-01eac0.394145956bc7cd8e697b330aba11e3d3
MT8786V/CA,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
SM8350,"OpenGL ES 3.2 V@0530.47 (GIT@eaa701cd06, I183f6321f0, 1666871261) (Date:10/27/22)"
MT6886,OpenGL ES 3.2 v1.r38p1
SM6115,"OpenGL ES 3.2 V@0615.86 (GIT@30f48d66fb, I33af6953c3, 1712899917) (Date:04/12/24)"
SM8450,"OpenGL ES 3.2 V@0615.74 (GIT@dad4038ba6, If56d4a5bb8, 1690544947) (Date:07/28/23)"
SM8350,"OpenGL ES 3.2 V@0530.53 (GIT@a1cf8ab5e3, I428bf45773, 1699535026) (Date:11/09/23)"
SM8650,"OpenGL ES 3.2 V@0762.10 (GIT@1394a2c7a8, Id12349e41b, 1708672982) (Date:02/23/24)"
SM6375,"OpenGL ES 3.2 V@0762.18 (GIT@af856151b0, Id776b0abd7, 1714127119) (Date:04/26/24)"
S5E9925,OpenGL ES 3.2 ANGLE git hash: ea27396cef93
SM7325,"OpenGL ES 3.2 V@0530.53 (GIT@a1cf8ab5e3, I428bf45773, 1699535026) (Date:11/09/23)"
S5E9925,OpenGL ES 3.2 ANGLE git hash: 72640fd9af5e
MT8766A,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
SM8635,"OpenGL ES 3.2 V@0762.9 (GIT@1fe7e097fd, Iac1c08c4e4, 1708364057) (Date:02/19/24)"
SM7435,"OpenGL ES 3.2 V@0615.73 (GIT@8f5499ec14, Ie6ef1a0a80, 1689341690) (Date:07/14/23)"
SM8475,"OpenGL ES 3.2 V@0615.0 (GIT@770ea4bdb9, Ief8f71bb1e, 1706806055) (Date:02/01/24)"
EXYNOS 2100,OpenGL ES 3.2 v1.r38p0-01eac0-mbs2v41_0.fbda7a2431aa2b386a4490f824f8fcc5
SM7325,"OpenGL ES 3.2 V@0530.0 (GIT@cac6e6f805, I5187d04b75, 1637574833) (Date:11/22/21)"
S5E8835,OpenGL ES 3.2 v1.r38p1-01eac0-mbs2v41_0.c23b38d1557dbf46a5d45aec73cc4d15
MT6833,OpenGL ES 3.2 v1.r32p1-01eac0.e1f01de808a0a50894ce9df2ecbbec80
SM7325,"OpenGL ES 3.2 V@0530.47 (GIT@eaa701cd06, I183f6321f0, 1666871261) (Date:10/27/22)"
SM7675,"OpenGL ES 3.2 V@0762.21 (GIT@21ec731d58, Ifa39d99f17, 1717163077) (Date:05/31/24)"
SM8475,"OpenGL ES 3.2 V@0615.74 (GIT@dad4038ba6, If56d4a5bb8, 1690544947) (Date:07/28/23)"
S5E9925,OpenGL ES 3.2 ANGLE git hash: 420895f80df0
SM8350,"OpenGL ES 3.2 V@0530.49 (GIT@329cf4c2a7, I63533b1e29, 1675175164) (Date:01/31/23)"
MT6877,OpenGL ES 3.2 v1.r32p1-01eac0.b8cf1793b1173c0bb23abcfef1974de4
SM6225,"OpenGL ES 3.2 V@0615.77 (GIT@64bab644ca, I204cbc9b5e, 1700479993) (Date:11/20/23)"
A523,OpenGL ES 3.2 v1.r40p0-01eac0.c527590351327cc7ce8e3744d9361ee2
MT6893,OpenGL ES 3.2 v1.r32p1-01eac0.efd03ef21f136842c0935bd4f493fe81
SM8475,"OpenGL ES 3.2 V@0615.0 (GIT@194d5e5755, I6561b7ccb3, 1691691459) (Date:08/10/23)"
MT6896Z/CZA,OpenGL ES 3.2 v1.r32p1-01eac0.54329dee8f160f288c574caaf67bbe3f
MT6833,OpenGL ES 3.2 v1.r32p1-01eac0.f20ecd5cf326048879c2d906512e687e
MT6895Z_B/TCZA,OpenGL ES 3.2 v1.r32p1-01eac0.54329dee8f160f288c574caaf67bbe3f
S5E8845,OpenGL ES 3.2 ANGLE git hash: 4ae132631265
T612,OpenGL ES 3.2 v1.r41p0-01eac0.018fc629603b7a70cc68d32f78ac8686
MT6878,OpenGL ES 3.2 v1.r44p1-01eac0.9dfad904584e582a866ae268ba67da86
MT6877V/ZA,OpenGL ES 3.2 v1.r32p1-01eac0.fdc5c778fea891c0453057246e18e215
MT6769V/CZ,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
zzzzzz,zzzzz
zzzzzz2,zzzzz2
9 changes: 2 additions & 7 deletions list_editor/example_data/driver_deny.csv
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
soc,glFullVersion
TENSOR,OpenGL ES 3.2 v1.r47p0-01eac0.32ea38cfcac3afe9a9b43f4ca33f49a9
MT6765,OpenGL ES 3.2 build 1.13@5776728
MT6769V/CB,OpenGL ES 3.2 v1.r32p1-01eac0.2a893c04ca0026c2e6802dbe7d7af5c5
MT6769V/CZ,OpenGL ES 3.2 v1.r32p1-01eac0.fc49d6bd800ecb1492a1f77284a4d178
SM6450,"OpenGL ES 3.2 V@0615.86 (GIT@30f48d66fb, I33af6953c3, 1712899917) (Date:04/12/24)"
TENSOR G4,OpenGL ES 3.2 v1.r47p0-01eac0.dcd0e390f0239618a7dd5d0b929ff6e1
TENSOR,OpenGL ES 3.2 v1.r46p0-01eac1.6b76d861277b3ea6941f5aa972def735
zzzzzx,zzzzx
zzzzzx2,zzzzx2
2 changes: 1 addition & 1 deletion list_editor/example_data/vkqualitydata.json

Large diffs are not rendered by default.

Binary file modified vkq_library/vkquality/src/main/assets/vkqualitydata.vkq
Binary file not shown.
8 changes: 5 additions & 3 deletions vkq_library/vkquality/src/main/cpp/vkquality_c.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ extern "C" {

#define VKQUALITY_MAJOR_VERSION 1
#define VKQUALITY_MINOR_VERSION 2
#define VKQUALITY_BUGFIX_VERSION 3
#define VKQUALITY_BUGFIX_VERSION 4

#define VKQUALITY_GENERATE_PACKED_VERSION(MAJOR, MINOR, BUGFIX) \
((MAJOR << 16) | (MINOR << 8) | (BUGFIX))
Expand Down Expand Up @@ -52,15 +52,17 @@ vkQualityInitResult vkQuality_initialize(JNIEnv *env, AAssetManager *asset_manag
const char *storage_path,
const char *asset_filename) {
return vkquality::VkQualityManager::Init(env, asset_manager, storage_path, asset_filename,
nullptr, 0);
nullptr,
kInitFlagSkipFingerprintRecommendationCheck);
}

vkQualityInitResult vkQuality_initializeFlags(JNIEnv *env, AAssetManager *asset_manager,
const char *storage_path,
const char *asset_filename,
int32_t flags) {
return vkquality::VkQualityManager::Init(env, asset_manager, storage_path, asset_filename,
nullptr, flags);
nullptr,
flags | kInitFlagSkipFingerprintRecommendationCheck);
}

vkQualityInitResult vkQuality_initializeFlagsInfo(JNIEnv *env, AAssetManager *asset_manager,
Expand Down
1 change: 1 addition & 0 deletions vkq_library/vkquality/src/main/cpp/vkquality_device_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ struct DeviceInfo {
std::string gles_vendor;
std::string gles_version;
int32_t api_level = kWildcardValue;
int32_t vk_deqp_level = kWildcardValue;
uint32_t vk_api_version = kWildcardValue;
uint32_t vk_device_id = kWildcardValue;
uint32_t vk_driver_version = kWildcardValue;
Expand Down
Loading