-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Toggle full screen is buggy [Windows OS, Intel GPU] #6295
Comments
Can't reproduce on latest git build (v0.9.8-1144, default settings) on Windows 7 x64 with any of my games. |
try it using ALT+ENTER in PPSSPP main menu |
Forget to mention, not only in-game, can't reproduce on any scene (main menu, settings, etc) |
Sounds like a driver bug to me (I mean the commit 281ff6c is obviously what triggered it, but I wouldn't revert it just yet). Can't reproduce either. Does this happen every time for you? And does the emulator crash or are the window controls just unresponsive? |
If it crashes can you use a debugger and find out where it crashes? |
the emulator doesn't crash, simply image is wrong, i try take a screenshot, but this only show a black screen |
It might be an Intel graphics-only bug/issue. |
Confirmed on my laptop, intel HD4000 Windows 7 x64. |
I have same problem... Intel HD4000 Windows 8 x64 |
this issue is still in latest builds, should be fixed before launch 0.9.9 because this is an important regression. |
Trying some stuff. Even without it though, fullscreen toggle and back works flawlessly on my system (nvidia GPU). |
I have a laptop I'm borrowing from my mother and I can reproduce it too. @hrydgard: I'll see if your latest commit fixes it. |
thedax is messing about with it. Last resort I'll just revert the offending commit. I actually thought it would increase compat, not decrease it... |
I'll work on it more in a day or so, I'm not having much luck. |
Bleh, I doubt I'll have this fixed in time for 0.9.9, feel free to revert the inner window removal, I guess. It's definitely something in PPSSPP, though. I made an SDL2 OpenGL accelerated window (as a sample separate program) and had no problem entering and exiting fullscreen with it, on this Intel GPU laptop. |
It seems like the stride is wrong or something. Is it permanent? Like if you select a new window size? Does going info a game fix it / does it happen while playing or menu only? Does changing render resolution affect it? Does it work again when switching back to fullscreen? Does minimizing and restoring the window affect it? -[Unknown] |
If you're asking me, it works as follows on my mother's laptop:
No. If I edit the ini to make PPSSPP use window mode again, it shows up fine. If I then enter fullscreen and try to revert back to windowed mode, it never updates the screen properly. PPSSPP goes down to the bottom left corner, and there's a blue background. Windows "behind" this blue background can be interacted with, though since they're effectively invisible, it's impossible to tell what you're interacting with. Reentering fullscreen mode works properly. It's just not restoring the borders properly, and allowing the display to update correctly.
Has no impact on if it can exit fullscreen or not.
No, the only thing going into a game does is make the blue background turn black.
No. |
Attempt to fix hrydgard#6295. It seems to be related to pixel formats, at least on this laptop with Arrandale Intel HD graphics...
Attempt to fix hrydgard#6295. It seems to be related to pixel formats, at least on this laptop with Arrandale Intel HD graphics...
I don't understand what's going on with Intel GPUs anymore. If I don't use SetMenu(hwnd, NULL) at all, then it exits and enters fullscreen just fine without the pixel format setting nonsense I tried above, at the cost of the menu bar always being visible. :\ |
Well, that's interesting. What if we defer SetMenu? Maybe the problem is the timing. That call probably resizes the client area. What if you put it after ResizeDisplay and such? Otherwise, maybe a PostMessage() like WM_USER_UPDATE_UI, and have that enforce the menu based on the fullscreen setting. It might cause the menu to close/open a bit late, but it would also stagger the events and possibly fix anything that is confusing the Intel driver. -[Unknown] |
Deferring it in any way makes no difference. |
My phantasy star 2 port. Still runs slow i have gold and would like to
|
What if you make it -[Unknown] |
Yeah the floor is about half way up my character and cantsee the enemy s or
|
It only corrupts if I go fullscreen and try to exit (if I just leave it in fullscreen, it works fine). If I keep the menu bar visible in fullscreen until toggling vertex cache for example, then it resizes the display correctly. It's basically the removal of the menu in fullscreen that causes it to never exit properly. |
What if you remove the menu in windowed (vertexcache), then switch to full screen, then switch back, then add the menu back (vertexcache)? -[Unknown] |
The window never reverts properly with your idea. It still just shrinks down to the bottom left. |
Try: dwStyle &= ~WS_OVERLAPPEDWINDOW; To: dwStyle = (dwStyle & ~WS_OVERLAPPEDWINDOW) | WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_SYSMENU; Or possibly without WS_SYSMENU? See: Does -[Unknown] |
None of those flags make any difference. ChangeDisplaySettings(NULL, 0); makes my laptop go to a black screen. |
Thanx player ill try it when i get back home sny other emulators you could
|
From our discussion previously, it seems like re-asserting the pixel format works around this problem, right? And also, not hiding the menu in full screen. Which is weird. -[Unknown] |
It only worked for exiting fullscreen if PPSSPP was started in it, iirc. It seems like this whole problem is related to showing/hiding the menu for whatever reason. |
…windowed and fullscreen May help #6295 but also it may not, I can't test it as I don't have that GPU. Also gets rid of some outdated code.
Tried to clean the fullscreen resizing process up a little, not sure if it will help but please try it. |
I'll grab my mother's laptop real quick. |
Unfortunately, it's the same song and dance with the newest build. @Metafalica's images describe it best. |
When you try to return to window mode, pres Ctrlt + Alt + Del and open task manager then PPSSPP crash |
Alright, that does it. I'm reintroducing the inner window hack... |
Seems that did it, closing (with sadness) :P |
Clearly, the Intel driver is doing something special for windows that are sized at 0,0 - SM_CXSCREEN,SM_CYSCREEN. If any coordinate is offset by 1, it does not happen. -[Unknown] |
I wonder if we could use SW_MAXIMIZE instead and win something. At least we might forego the whole remembering the old size thing. -[Unknown] |
Since 0.9.8-649, when you toggle from window mode to full screen and return to window mode again, this lock the screen and sometimes doesn't let close the emulator.
last working build: 0.9.8-646
The text was updated successfully, but these errors were encountered: