-
-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to select specifial GPU for one screen? #110
Comments
HDR release with GPU switching in testing now. https://github.com/itsmikethetech/Virtual-Display-Driver/releases/tag/24.7.18HDR |
Can confirm the manual switching thing works. Basically, you need to find the name of your using the enum_dxgi (you can find in this thread nomi-san/parsec-vdd#47) and then, download his release above, put the name of your GPU in adapter.txt file , put it inside I think I will create a PR explaining this process in the README. |
Have you tried, just disable and re-enable the driver after adding adapter.txt? That way you shouldn't have to uninstall and reinstall. But I didn't read the link in your post so I might be wrong. Just my $0.02 |
did not try it, but from what I've seen in the code, I think it only gets the content from the adapter.txt when it is adding it (might be wrong here - didn't check the whole code) Virtual-Display-Driver/Virtual Display Driver (HDR)/IddSampleDriver/Driver.cpp Lines 139 to 158 in 519936d
|
You can just disable and re-enable the driver. It calls all the code again on driver initialise. Not install |
Perfekt. Thanks for checking. Better than installing |
No problem :) I already knew the answer so i would have been happy to share my knowledge. Better features to come soon enough! |
The latest changes in pre-release of this driver fixes the issue where it doesn't pick the proper GPU, but it will still be broken for Sunshine users due to how it is also mistakenly choosing the iGPU when attempting to capture the display. Fortunately I fixed the issue on Sunshine, and I will be opening a PR later today. Therefore, with the combination of these two changes, one from IDDSampleDriver side and one from sunshine, the issue where you can't stream in moonlight when using the virtual screen with more than one gpu will be resolved. No more black screens, also fixes the no video received from host error. I'll comment here once I open that PR |
submitted LizardByte/Sunshine#3002 |
@Nonary I glanced at your PR on Sunshines repo, although i don't know their repo. Is it likely that it's "our driver" that is "at fault" and perhaps we should some initial testing when grabbing GPU, and resasign if "blank". Or is it' Sunshine way of addressing our driver?? My thinking: How likely would it be for example OBS to experience the same? Or, I believe it was, Anydesk that had issues. Haven't tested any one of em. And I only have CPU based gpu (i7 gen4). @bud3699 what do you think?? |
The issues with the virtual display were mainly due to how Sunshine handled things, but the fix you implemented does help. One of the problems was that the driver might mistakenly attach to the iGPU, but this wasn’t as frequent as the Sunshine bug was. We have a small utility program that tests DXGI against different adapters and monitors. If the test passes, the program assigns that GPU as the preferred one for capturing. The problem was that the utility only checked if we could duplicate the display in DXGI, not if it could actually capture frames. I’ve fixed that, so now Sunshine won’t encounter this issue anymore because IDDSampleDriver will fail if it can’t capture frames. The reason we have this utility is due to a limitation with setting GPU preferences in DXGI—it can only be done once per process. So, we created a helper program to test DXGI and then report back to Sunshine. If the test passed, it would set the GPU preferences. The issue was that it was reporting success just because it could duplicate the display, without checking if it could capture frames. And since this can only be done once per process, Sunshine couldn’t recover or test the second GPU. By fixing the utility, the issue is now resolved. |
@Nonary Thank you for the descriptive explanation, then we could add that bit later in the pipe perhaps. I'm a sucker for double checking and fallback solutions. |
I wanted to add as you say you can avoid uninstall/reinstall by disable/re-enable... I have another solution that does not remove the display and allows remote clients that are dependent on the display to stay connected. I saw this quoted recommendation while looking for a solution to a render resolution / aspect ratio issue I was having in Immortals Fenyx Rising. I resolved the issue and wanted to thank the devs of this Driver solution for doing all the hardest work of implementing microsofts driver whereas before we were unable to use any of these features without this wonderful implementation! I am also linking my current setup I derived from this capability! Thanks for your efforts! WE ARE SPOILED <3 http://sh.uni2.cc/28JLJ Solution: |
How about in the newest beta? I've noticed that there's no longer any .txt file but a .xml file. |
OKAY i found inside that xml here's a place that i can paste the friendly name of the gpu. But still is there any way to use device id though? or device id changes during each system start-up? anyway this solution is the best for me :) |
I have 2 GPUs and 2 vitrual screens, now 2 screens are working on single GPU, how to seperate 2 screens load into each GPU?
The text was updated successfully, but these errors were encountered: