fyr77 / EnvyUpdate

Small update checker application for NVIDIA GeForce GPUs
MIT License
141 stars 8 forks source link

Automatically detect GPU #7

Closed fyr77 closed 4 years ago

fyr77 commented 4 years ago

Automatic GPU detection would be preferable over the current manual method using the website. This probably needs a database to translate the GPU names reported by the system to the seemingly arbitrary GPUIDs used by Nvidia.

fyr77 commented 4 years ago

I could not find an existing database with Nvidia's PFIDs online, so I will have to create my own. Now I just need to find a reliable way of identifying the GPU within Windows in the first place. The reported name of the GPU itself may not be accurate enough as some special versions and differing manifacturers may report different names. So I need to check for some ID that is unique to the GPU.

fyr77 commented 4 years ago

I found out how Nvidia looks up their internal IDs and experimented with the API a bit. A few things I found out:

Some GPUs exist twice in the first list. That's because of the mobile variants of some GPUs haing the same name as the desktop variant. I tried a few models and found that the desktop product is always the first model in that list, the mobile version being the second occurence.

fyr77 commented 4 years ago

This means I can now work on automatically populating the download API call I was already using all the time.

https://www.nvidia.com/Download/processDriver.aspx?psid=<ProductSeries>&pfid=<ProductType>&osid=<OperatingSystem>&lid=<Language>

fyr77 commented 4 years ago

Implementation started in bf9814cfd09a62dedf7604b3fa5683cb43ebfd09.