cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

pcjohn
Adept I

get catalyst version programmatically

I want to determine Catalyst version programmatically, e.g. from C++ code. Is there a way to do it? I am interested in catalyst version, like 10.6, 10.7, ...

Alternatively, is there an utility, that I can start and parse its output?

Thanks,

John

0 Likes
4 Replies
asmo1
Journeyman III

You can try to retrieve Catalyst version from Windows registry or you can try to get version from build number (Driver reported GL version as "3.3.9901 Compatibility Profile Context" where 9901 is build number).

0 Likes

Thanks for the answer. I hoped for more convenient approach. Anyway, sumarizing my findings (correct me if I am wrong in anything):

- glGetString(GL_VERSION) returns string like "4.0.9901 Compatibility Profile Context". 9901 is version build number that can be translated to Catalyst version using "CCC Driver Details" web-page http://developer.amd.com/drivers/ccc/Pages/default.aspx.

Disadvantage: - driver database needs to be updated inside the application to recognize latest Catalyst releases.

- Windows registry - Catalyst version string available directly (without knowing anything about driver version)

Disadvantages: - not portable to Linux, and not sure what is the correct path to registry

Discovered registry paths:
HKLM\SYSTEM\ControlSet001\services\amdkmdag\Catalyst_Version
HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\Catalyst_Version
HKLM\SYSTEM\ControlSet001\Control\Video\{E86D69AD-D111-44D8-AF07-09235F316EBE}\0000\Catalyst_Version
HKLM\SYSTEM\ControlSet001\Control\Video\{E86D69AD-D111-44D8-AF07-09235F316EBE}\0001\Catalyst_Version
HKLM\SYSTEM\ControlSet001\Control\Video\{E86D69AD-D111-44D8-AF07-09235F316EBE}\0002\Catalyst_Version
HKLM\SYSTEM\ControlSet002\services\amdkmdag\Catalyst_Version
HKLM\SYSTEM\ControlSet002\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\Catalyst_Version
HKLM\SYSTEM\CurrentControlSet\services\amdkmdag\Catalyst_Version
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\Catalyst_Version
HKLM\SYSTEM\CurrentControlSet\Control\Video\{E86D69AD-D111-44D8-AF07-09235F316EBE}\0000\Catalyst_Version
HKLM\SYSTEM\CurrentControlSet\Control\Video\{E86D69AD-D111-44D8-AF07-09235F316EBE}\0001\Catalyst_Version
HKLM\SYSTEM\CurrentControlSet\Control\Video\{E86D69AD-D111-44D8-AF07-09235F316EBE}\0002\Catalyst_Version

I personally bet on
HKLM\SYSTEM\CurrentControlSet\services\amdkmdag\Catalyst_Version or 
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\Catalyst_Version,
although I am not sure whether {4D36E968-E325-11CE-BFC1-08002BE10318} class is kept among Catalyst versions and Windows versions.

Comments?

Thx,
John

0 Likes

Build number method is more stable way for my expirience. You cannot detect version of future driver, but you can understand that this is recent driver 😉

0 Likes

Thanks. Build number will definitely work excelently on my Linux. Maybe, I will use some info from registry on Windows as it seems a rich source of information.

To give more precise information for future readers of this topics:

HKLM\SYSTEM\CurrentControlSet\Control\Class\{E86D69AD-D111-44D8-AF07-09235F316EBE} is the key which contains  all installed graphics adapters. All of them are listed in subkeys starting from 0000, followed by 0001, 0002, etc. if you have more graphic cards. I found the key on all Windows that I have, e.g. XP, Vista, and 7.

Following values of 0000 key (or 0001, etc) seems interesting to me:

DriverDesc, DriverDate, DriverVersion, ProviderName, Settings\Device Description

With example content:

Device Description   NVIDIA GeForce GTX 260
DriverDesc           NVIDIA GeForce GTX 260
DriverDate           7-9-2010
DriverVersion        8.17.12.5896
ProviderName         NVIDIA
Settings\Device Description  NVIDIA GeForce GTX 260

One more note: "Settings\Device Description" value looks better for me over similar value "Device Description" as "Device Description" is not present on one my very old Catalyst driver while "Settings\Device Description" is there.

John

0 Likes