fyr77 / EnvyUpdate

Small update checker application for NVIDIA GeForce GPUs
MIT License
137 stars 7 forks source link

Game Ready Driver and Driver Studio specific check #18

Closed MD55DM closed 4 months ago

MD55DM commented 3 years ago

Useful program, but should be able to distinguish whether the installed driver version is GRD (Game Ready Driver) or SD (Driver Studio) and consequently check the availability of updates related to the installed driver type.

fyr77 commented 3 years ago

Good call! I'll investigate this.

fyr77 commented 3 years ago

Alright, so the API call for this is dtid, which can be either 1 for the Game Ready Driver or 18 for the Studio Driver. Now I just need to find out how to tell which one is installed.

fyr77 commented 3 years ago

https://forums.developer.nvidia.com/t/detecting-which-driver-is-installed/160054/10

According to this, there seems to be no "official" way of differentiating between driver types. I will investigate this further, but I currently do not own a device with Nvidia graphics to test this with. Any help on registry values or unique files would be appreciated.

The only thing I have found so far is reading .inf files from C:\Windows\System32\DriverStore\FileRepository, which does not have to be correct...

fyr77 commented 3 years ago

I will add a manual switch for now.

MD55DM commented 3 years ago

Unfortunately I can't help because I have little knowledge on the subject, but I wanted to thank you for trying to find a solution. Since I've two nVidia cards installed on my home computer, if you need help in testing something just let me know.

pruneaue commented 1 year ago

I've encountered the same issue while writing a Powershell installation script for nvidia drivers. How were you able to find which API call was responsible for GRD vs SD? I have tried using dtid=18 to no avail. And i cant find the Studio Drivers anywhere from changing the API calls around

MD55DM commented 1 year ago

I wrote a very basic AutoIt code to automatically check and retrieve the latest Nvidia Studio driver version. I followed this guide:

https://github.com/lord-carlos/nvidia-update

And the resulting query is: https://www.nvidia.com/Download/processFind.aspx?psid=120&pfid=933&osid=135&lid=1&whql=&lang=en-us&ctk=0&dtcid=1

fyr77 commented 1 year ago

I've encountered the same issue while writing a Powershell installation script for nvidia drivers. How were you able to find which API call was responsible for GRD vs SD? I have tried using dtid=18 to no avail. And i cant find the Studio Drivers anywhere from changing the API calls around

Some GPUs don't have Studio Drivers available. Which GPU are you using? I just tried with data for a 1080ti and dtid=18 and got the studio driver. https://www.nvidia.com/Download/processDriver.aspx?psid=101&pfid=845&osid=57&lid=2&dtcid=1&dtid=18

fyr77 commented 1 year ago

The main issue I am having is that I can't differentiate between the two when they are installed on the computer. I also do not have a recent enough Nvidia card to test with. To implement an automatic check for SD vs GRD, I would need to find a registry key or file that is different between the driver versions.

MD55DM commented 1 year ago

I run Win11 with a RTX 3090 Ti card + Studio driver.

If you registry contain the following DCHUVen key stored in: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\DCHUVen

Then the system is probably run a DCH driver release, read here for more info: https://gist.github.com/fyr77/0ac16813c8f469d08789c9785f4368d2

fyr77 commented 1 year ago

Yes, but both SD and GRD run as DCH drivers. I am already using this registry key as well as a file to check for DCH vs Standard drivers.

MD55DM commented 1 year ago

I will try later to help you in retrieving the needed info...

MD55DM commented 1 year ago

I am sorry but I have not been able to find any useful information (either on the web or on my PC) to determine whether the driver installed is the GRD or SD version.

pruneaue commented 1 year ago

Oh thats interesting. I had been playing with the variables for a while, but wasnt able to get Studio Drivers. Sorry if these are dumb questions, but are all these parameters available somewhere?

I'm working with multiple different GPUs, but i dont think that will cause any issues as the Studio Drivers appear to be the same for every card.

fyr77 commented 1 year ago

@pruneaue I attempted to document as much of the API as I could on the wiki of this repository. https://github.com/fyr77/EnvyUpdate/wiki/Nvidia-API Maybe that can help you.

fyr77 commented 4 months ago

I was unable to find a reliable way of differentiating. Since this is a very minor issue and switching between the drivers is supported, I will close this as not planned.