[Scummvm-tracker] [ScummVM] #9945: OPENGL: Alt+Enter misbehaves in OpenGL mode on MacOS

Colin Snover trac at scummvm.org
Tue Jul 18 01:11:18 CEST 2017


#9945: OPENGL: Alt+Enter misbehaves in OpenGL mode on MacOS
-------------------------+-----------------------
  Reporter:  angstsmurf  |      Owner:  (none)
      Type:  defect      |     Status:  new
  Priority:  normal      |  Component:  --Unset--
Resolution:              |   Keywords:
      Game:              |
-------------------------+-----------------------
Changes (by csnover):

 * status:  pending => new
 * resolution:  worksforme =>


Comment:

 OK, I don’t seem to have a lot of patience to do research on this right
 now, but I have reproduced the issue on macOS 10.11.6 using one hi-dpi
 monitor (on the left) and one standard monitor (on the right), with
 “Displays have separate Spaces” turned on in Mission Control. The GUI is
 messed up spectacularly in different ways depending upon hardware
 configuration:

 1. With just the hi-dpi monitor connected, the GUI doesn’t actually know
 how to draw with proper scaling, so the UI is rendered lo-dpi but using
 the retina display resolution (so all the elements are tiny).

 2. With lo-dpi monitor + hi-dpi monitor, where the hi-dpi monitor is used
 as a secondary screen, when switching to full-screen mode with ScummVM on
 this secondary screen it ends up drawing on the primary screen with the
 wrong y-resolution so the GUI elements get cut off.

 3. With lo-dpi monitor + hi-dpi monitor, where the hi-dpi monitor is used
 as a primary screen, when switching to full-screen mode with ScummVM on
 this primary screen it ends up with a negative left and bottom offset so
 ends up drawing off the bottom-left side of the screen.

 Even when forcing ScummVM to open in low-resolution mode, these problems
 continue to exist; I guess the OpenGL renderer is bypassing that mode
 setting and requesting a hi-dpi surface. (I don’t know anything about
 OpenGL at the moment to know what this might be.)

 (Tangentially, in all cases, performance of the GUI with OpenGL backend is
 _abysmal_. It takes up to 10 seconds just to render the GUI after
 switching to fullscreen, and then the mouse cursor won’t move for several
 seconds after that. Every time a new dialog opens it takes 6+ seconds to
 render. This problem is resolution-dependent, even at 640x480 it gets
 janky when clearing the modals. The performance is so bad I feel like
 recommending that OpenGL get disabled entirely on this platform in the
 next release if this problem isn’t fixed.)

 I haven’t tried disabling separate Spaces yet to see how that might change
 things but I am guessing it would only make things worse.

 The first idea I have to solve this ticket is to stop using
 SDL_SetWindowDisplayMode API and see if we can’t do OpenGL fullscreen
 using fake fullscreen at least on macOS.

--
Ticket URL: <https://bugs.scummvm.org/ticket/9945#comment:12>
ScummVM <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list