Specifying the GPU in a setup with more than one identical GPU
I'll post this here, tutorial and all, but also post a link to it on the level1techs thread.
The script by jamesstringerparsec currently only allows for specification of a particular GPU based on it's name alone. This is problematic when you have two of the same GPU, which results in the "PreChecks.ps1" script outputting an unhelpful result, such as this: https://i.imgur.com/re9HdN9.png
One solution to this (and an extremely necessary step in the process of having more than one GPU connected to your system in my opinion) is to change the display names to be more descriptive. For example, my Device Manager now looks like this: https://i.imgur.com/caU2T7d.png With the script now outputting: https://i.imgur.com/3VyVNBb.png
To achieve this I mostly followed this guide which didn't work, but on closer inspection I then discovered where exactly this script actually pulls the descriptor from. For future reference, it might be best to parse for the registry key "FriendlyName" prior to checking the "DeviceDesc" (or "Device Name"), as this has to be added by the user manually and so will be the most correct point of reference. Ideally, you can come up with a workaround using my suggestions or maybe some kind of prompt for the user to decide inside the script itself.
Now for the tutorial on how to give your GPU's unique names (which allows you to identify and select the correct one more easily in jamesstringerparsec's script)...
First, open up a notepad program and create a new empty file. This is mainly for taking down the driver registry keys which are long and complicated and keeping them paired with the unique name you will choose later.
Next, press the key combination "WIN+R" and type in
devmgmt.msc
followed by the ENTER key
https://i.imgur.com/qoNS7sm.png
This will open up the "Device Manager" window.
In the "Device Manager" window, find the "Display Adapter" heading and expand that category. https://i.imgur.com/YCz4Ggc.png Here, you will find two (or more) entries for your graphics cards.
At this stage, you need to verify which GPU is which. I think the most fool proof way would be to connect the display cables directly to the GPUs, either both simultaneously with two separate cables (as I did) or each in turn, while disabling one by one (remembering to enable one before disabling the other!). This way you can tell for sure which GPU is which, because it will be the only one enabled and still outputting to the display. https://i.imgur.com/kWHEvdo.png
As you do this and find the first GPU, before re-enabling the other one, you will need to right-click the currently enabled GPU, navigate to and select the "Properties" item in this context menu.
https://i.imgur.com/oolcMK5.png
In the "Properties" window that opens up, you must navigate to the "Details" tab.
https://i.imgur.com/Mjlmqgm.png
In the "Property" drop-down on this page, navigate to and select "Device Instance Path"
https://i.imgur.com/Tu4cuJC.png
which will display something along the lines of:
PCI\VEN_10DE&DEV_1B80&SUBSYS_61833842&REV_A1\4&C9C687&0&0009
https://i.imgur.com/QeQEppP.png
Right-click this entry, and select "Copy" from the context-menu, adding this to your notepad before entering a new line.
Next, decide the name of this GPU, for me I chose the exact model name of this GPU itself (EVGA GTX 1080 SC ACX 3.0), and add this on a new line in the notepad under the others. Enter two new lines to separate for the next GPU.
Repeat the same process, enabling the previously disabled GPU and disable the GPU you just successfully identified (remember to enable one before disabling the other, or you'll be in trouble!).
For me, the "Device Instance Path" on the next GPU was:
PCI\VEN_10DE&DEV_1B80&SUBSYS_145119DA&REV_A1\4&BAB4994&0&0008
Which is very similar but still different.
Choose a unique name for this GPU, for me again I chose the exact model of this GPU itself (ZOTAC GTX 1080 MINI), and add this on a new line in the notepad under the others.
You should have something like this in the end: https://i.imgur.com/gxDypvt.png
Now, press the key combination "WIN+R" and type in
regedit
followed by the ENTER key, which will open up the "Registry Editor" window.
https://i.imgur.com/ucyZy6x.png
Once open go to the location bar at the top (CTRL+L) and paste this address:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\
https://i.imgur.com/d1BZ3dM.png
// TAKING PERMISSION OF REGISTRY KEYS (skip if you know how)
First, take control of this entire key by right-clicking the "PCI" key and selecting the "Permissions..." context-menu entry. https://i.imgur.com/h4xzZ50.png In the "Permissions" window that pops up, press the "Advanced" button. https://i.imgur.com/56ND6DI.png In the "Advanced Security Settings" window that opens up, at the top next to the "Owner" heading and entry, press the "Change" link. https://i.imgur.com/A17JUe1.png In the "Select User or Group" window that pops up, select the "Advanced" button. https://i.imgur.com/aBV8apQ.png In the newly expanded window, select the "Find Now" button. https://i.imgur.com/MT7AUWl.png Then find your current username in the list and select it, highlighting the entry. https://i.imgur.com/TOYFXuQ.png After this head up to the "OK" button and press to accept the new owner selection. https://i.imgur.com/kV86Yfz.png You will be returned to the "Advanced Security Settings" window, be sure to check both boxes here for "Replace owner on subcontainers and objects" https://i.imgur.com/krdWgTc.png as well as "Replace all child object permissions with inheritable permission entries from this object" https://i.imgur.com/u0bo4oK.png Now, head to the "OK" button at the bottom and press to accept the change of ownership. https://i.imgur.com/Kva10PV.png The window will likely throw up various warnings or errors, none of these matter so long as you followed the steps correctly. When faced with the security warning: https://i.imgur.com/mOg7GMU.png Simply press the "Yes" button. As well as when you are notified about changes not being applied to some keys, simply press the "OK" button. https://i.imgur.com/v6cqbNP.png You will be returned the original "Permissions" window, where you will need to select your username from the list in the "Group or user names" box near the top. https://i.imgur.com/cne52nx.png Then in the "Permissions for [your username]" box below, you will need to select and tick "Full Control" (which will also select and tick "Read" for you). https://i.imgur.com/hsVA7ts.png Finally, press the "OK" button at the bottom of the window to accept all the changes. https://i.imgur.com/AgF3jt0.png
// END
Back to your "Registry Editor" window.
Now you need to cross reference to your notes and find the correct key for your current device. So first I looked for:
VEN_10DE&DEV_1B80&SUBSYS_61833842&REV_A1\4&C9C687&0&0009
Then expand this key and select the "Driver Key" which should be the only child key and will look something along the lines of mine, which for me is:
4&c9c687&0&0009
Now, in the right hand panel where the registry entries themselves are, we must create a new "String Value"
https://i.imgur.com/DAfNqMa.png
For the name, enter:
FriendlyName
Double-click this new entry and in the "Edit String" window that pops up, under "Value Data" enter the name for this GPU that you have selected. I decided to use:
EVGA GTX 1080 SC ACX 3.0
https://i.imgur.com/j2wIx1C.png
Next, is the part relevant to the script in question. It seems to parse the entry "DeviceDesc" which for me looks something like:
@oem2.inf,%nvidia_dev.1b80%;NVIDIA GTX 1080
https://i.imgur.com/5oAFQcc.png
Double-click this entry and in the "Value Data" change the device descriptor at the end of this sentence to the name your chose and used for this same GPU earlier in the "FriendlyName" entry, so for me:
@oem2.inf,%nvidia_dev.1b80%;EVGA GTX 1080 SC ACX 3.0
https://i.imgur.com/BZBAvrJ.png
Repeat these steps for all of your other GPU's. Once complete, go back to your Device Manager window, and from the "Action" global menu, navigate to and press the "Scan for hardware changes" menu option. https://i.imgur.com/N4geqtt.png Find the "Display Adapter" heading again and expand that category. Here, you will now find your two (or more) uniquely named entries for your graphics cards.
Now, when running the script you will have a much more descriptive and useful response: https://i.imgur.com/3VyVNBb.png Select one of these and proceed with the original script tutorial!