4 Replies Latest reply on Aug 30, 2010 6:09 AM by pcjohn

    get catalyst version programmatically

    pcjohn

      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

        • get catalyst version programmatically
          asmo1

          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).

            • get catalyst version programmatically
              pcjohn

              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

                • get catalyst version programmatically
                  asmo1

                  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 ;-)

                    • get catalyst version programmatically
                      pcjohn

                      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