Skip to content
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

Blank Window when running with NVIDIA Optimus graphics due to Nahimic service #13208

Open
jaykyburz opened this issue Nov 23, 2017 · 26 comments
Open

Comments

@jaykyburz
Copy link

Windows 10 Laptop.
GTX 1060. 6GB - Driver 382.05
There is also an an intel graphics in there as well. (May be related)

Godot 3 Alpha 2

Issue description:
When I have the editor open on my external second monitor and I launch the game (F5) I get a blank screen.
If I drag the blank window down onto my primary monitor I can see the game as I should.
If I then drag the window back to the external monitor, I can see the game as I should.

Also note: If I make my external monitor my "main display" using the windows display settings, the problem goes away and I cann't reproduce the issue on any monitor.

Also note: I am also experiencing the bug where sometimes the game is launched as an editor window instead of my game, and I get a black screen for that as well.

Steps to reproduce:
Run a project from the editor on a secondary monitor on my laptop.

@Calinou
Copy link
Member

Calinou commented Nov 23, 2017

Are you running Godot on the integrated Intel graphics, or on the dedicated NVIDIA GPU? By default, it will run on the integrated graphics unless forced by right-clicking the executable then selecting the dedicated GPU in the Run with graphics processor dropdown.

@jaykyburz
Copy link
Author

In my Nvidia control panel I had it "auto selecting" in the Preferred Graphics Processor section.

It seems that its the Nvidia card that has the problem. When I forced it to used the integrated graphics the problem goes away.

@amirea
Copy link

amirea commented Nov 24, 2017

Windows 10 desktop, GTX 1050 + GT440. On either of the 4 monitors I move the game window, it displays normally. I don't know how to make the window start by default on an arbitrary monitor, though.

@jaykyburz
Copy link
Author

I find that the game window always starts on the same monitor as the editor is open on. Example, if the editor is maximised on monitor 2, the game will start there.

@akien-mga
Copy link
Member

I find that the game window always starts on the same monitor as the editor is open on. Example, if the editor is maximised on monitor 2, the game will start there.

That can be configured in the editor settings.

@amirea
Copy link

amirea commented Nov 24, 2017

OK. Tested starting on either of the two nVidia cards, on each monitor, I can't reproduce the issue.
EDIT: also tested with each card owning the primary display (driver 385.41 for both cards).

@ghost
Copy link

ghost commented Mar 4, 2019

Same problem with a slightly different config :
Tested on Godot 3.0 and 3.1.Beta10

Desktop Computer
OS : Windows 7 Professional
GPU : NVidia GTX 970 (No integrated shipset)

Don't know if that can help ^^'

@drewrotunno
Copy link

just about the same issue on my laptop (one monitor). Right-click running with the integrated Intel graphics 620 (up to openGL 4.4) will let it run fine. but by default or forcing it to use the dedicated graphics card GeForce 940MX (upto openGL 4.6) gives a white screen for the project select box (pic 1). If I resize this box vertically, it will look okay (pic 2). Then the editor also starts blank, and has to resize to show anything, but then stays with a black border, and the window doesn't visually respond to clicks, full screen, F1/F2, anything. Only by resizing window larger, vertically or horizontally does it update. I can F2, then change size and it'll be the right screen. Hope this helps!

load
resize

@LethargicDeveloper
Copy link

Same issue for me. Laptop hooked up to a secondary monitor.

Godot 3.2.1
Win10
Intel UHD Graphics 630
NVIDIA GeForce GTX 1070 with Max-Q

  1. Load Godot (it loads on my laptop monitor)

  2. Load the game file

  3. F5 (run the game)
    Everything works fine

  4. Close game

  5. Drag the Godot editor to my secondary monitor

  6. F5 (run the game)
    White screen the game doesn't load.

@Calinou
Copy link
Member

Calinou commented May 20, 2020

@LethargicDeveloper Does it work if you force Godot to run on the integrated GPU or dedicated GPU?

@LethargicDeveloper
Copy link

@Calinou Nope.
The only place I know to do that is the NVIDIA Control Panel.
I've tried changing my Global Settings to both Integrated Graphics and High-performance NVIDIA processor with no apparent effect.
I've also tried setting just the Godot program to both in the Program Settings Tab.

@Calinou Calinou changed the title Blank Window when running on secondary monitor Blank Window when running on secondary monitor with NVIDIA Optimus graphics May 20, 2020
@Tryptex00
Copy link

I'm having the same problem with an almost exact setup to jaykyburz, is this being worked on?

@Calinou
Copy link
Member

Calinou commented May 30, 2020

@Gamegenorator As far as I know, nobody has found a solution to this bug yet.

@Tryptex00
Copy link

@Calinou Sad to hear, thanks for letting me know.

@AlexeyGrishin
Copy link

I have same problem. Win10 GeForce GTX 1650 MaxQ.
I've tried with both intergated graphics and nvidia one, it shows white window when run scene on second monitor.

@AlexeyGrishin
Copy link

My workaround is to run editor on second monitor and run scene on laptop's monitor. It is not so convenient, but at least I have editor and running scene on different monitors.

@Saadies
Copy link

Saadies commented Oct 19, 2021

I don't have exactly that issue but my second screen would always go black if I am in Godot, no matter if I am running my game or not. My problem was that I have GSync set up for windowed applications as well as full-screen in the nvidia settings. Once I switched to only apply GSync on fullscreen the problem went away, as well as the flickering I had.

@rafaelgdp
Copy link

I'm here to report that I'm also experiencing this issue on Godot 3.4.4 Mono stable version. My project is mostly written in C# now (I started out only using GDScript and slowly ported it to C#). This issue was annoying me because there were no compilation errors. When I move the Godot Editor to my main monitor, the game runs normally. If I run it on my secondary monitor, the spawned game window freezes with a white background. I'm on a Windows 11 laptop with an Nvidia GeForce RTX 3060 GPU.

@darkconsole
Copy link

darkconsole commented May 11, 2022

yep having this on my 3060 too. no discreet, my internal intel is disabled in bios. additionally i cant get it to actually spawn ever on the 2nd screen even if i move it there, close it there, and click my desktop icon there. so i can't even just make it work on the 2nd screen to work.

no errors on the console or anything. just freezes up the play window until i mash x enough that it finally gets kilt by windows.

since i do not personally care, and the way i have my laptop sitting and 2nd screen setup at work, i just told windows to use the laptop screen as the "primary display" so that godot will go there, which is where i wanted it anyway since the laptop is turned such that others cant see what im doing on that screen. windows' multi-display handling even in 2022 is so bad anyway it really changes nothing about the experience of just using the pc lol.

tl;dr set the display you want to work on godot with as the primary display in windows and deal with having to use one screen for both editor and preview until the magic gets found.

@darkconsole
Copy link

darkconsole commented May 18, 2022

follow up: if you use vscode you can use the godot-tools extension to work around this.

  1. run godot editor itself onto the one screen it works on. if this is not the screen you want godot on, set that screen as primary in windows and try it again.

  2. run and move vscode to the screen you actually want to type at.

  3. when you want to actually run the game, do it from vscode. command palette, godot tools: run workspace as godot project aka "run the game" - when you do this, godot will pop up on its screen, not on top of vscode. i also set this to F5 in vscode just like it was in godot editor.

  4. ???

  5. profit.

its actually kind of nice, because vscode's output pane gets filled with the things from the CLI window, which appears to get around that other stupid crap where godot editor output pane decides not to show you all of your print() because you print()'d "too many times".

@qaptoR
Copy link

qaptoR commented Jun 19, 2022

Posting to add this bug is present on my system:
3090, 10900K, Windows 10-64

editor opens fine on any monitor, running a scene/program on any other monitor other than whichever is set to be main causes white-screen freeze of that program/scene.

when it runs successfully on main monitor, the scene/program can be dragged around to any other monitor without issue.

@dandeliondino
Copy link

Posting to report the same issue here. If it's relevant, I am running Godot on a laptop with Nvidia Optimus but I disabled Optimus in the BIOS, so Godot has no choice but to run on the dedicated GPU (RTX 3080).

Windows 11
Godot 3.5

Thanks for the vscode workaround above, I will try that.

@bobmagicii
Copy link

bobmagicii commented Sep 6, 2022

For me the fix was to disable Nahamic services. I noticed with my 3D printing that Prusa Slicer poppped up a warning on launch...

paraphrasing here:
"disable nahamic services, its injecting a dll into every app, and it is known to screw with Prusa Slicer on a second monitor."

This had me going "hmmmmmm"

Nahamic services, is some dumb stuff that comes on many "Gamer" and "High-End" computers. The main thing it does is render an overlay in games that "shows" you where sounds are coming from like a radar. The thing is, nobody actually uses it, because it never actually works, and on top of that Anti-Cheat things hate it as well. So they just inject this stuff for basically no reason these days. If you have Alienware software on your machine (non-Alienware stuff uses it now too, like Dell's G Series), you also likely have Nahamic crap being run and injected. Disabling it, you should lose pretty much zero features.

Start > Run > services.msc
Stop the service.
Then disable the service.
image

After dealing with this, Godot (and a few other apps) stop being absolutely insane about the 2nd screen.

This does not negate that disabling Optimus may also be needed. But you should always disable Optimus it was such a bad implementation. Your gamer laptop only gets 1hr on battery anyway lol.

@dandeliondino
Copy link

Good call -- disabled Nahimic per your directions and now Godot is running/playing on the second monitor as expected. Really appreciate the quick reply and solution! I'd never heard of it before. Hope others find this as well.

And, yes, absolutely agree with disabling Optimus. The intel GPU on this laptop couldn't handle opening the start menu without stuttering.

@Calinou Calinou changed the title Blank Window when running on secondary monitor with NVIDIA Optimus graphics Blank Window when running on secondary monitor with NVIDIA Optimus graphics due to Nahimic service Apr 22, 2023
@Calinou Calinou changed the title Blank Window when running on secondary monitor with NVIDIA Optimus graphics due to Nahimic service Blank Window when running with NVIDIA Optimus graphics due to Nahimic service Apr 22, 2023
@Zireael07
Copy link
Contributor

Is this documented somewhere?

@mickeyordog
Copy link
Contributor

mickeyordog commented Dec 5, 2023

Having a similar problem, switching Godot to my other monitor seemed to solve it
Edit: Never mind still having the same issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests