[Scummvm-tracker] [ScummVM :: Bugs] #13215: OpenGLSdlGraphics3dManager::setupScreen() might invoke `glGetIntegerv` without GL context

ScummVM :: Bugs trac at scummvm.org
Wed Jan 12 13:02:15 UTC 2022


#13215: OpenGLSdlGraphics3dManager::setupScreen() might invoke `glGetIntegerv`
without GL context
--------------------------+--------------------
Reporter:  GMTA           |      Owner:  (none)
    Type:  defect         |     Status:  new
Priority:  low            |  Component:  Common
 Version:                 |   Keywords:
    Game:  Grim Fandango  |
--------------------------+--------------------
 When switching from the launcher to an OpenGL game such as Grim Fandango,
 the GL context is destroyed and then created again. To create a new
 context, `OpenGLSdlGraphics3dManager::setupScreen()` is invoked. Before it
 actually created a new context, the MSAA sample count is retrieved with:

 {{{
 SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &currentSamples);
 }}}

 This in turn invokes `glGetIntegerv`. According to the OpenGL spec,
 invoking any API without an active GL context results in undefined
 behavior.

 While porting ScummVM to SerenityOS, I have had to patch out the above
 call to make Grim Fandango work at all. This is not a fix but a
 workaround, but it might be useful for you to see.

 A possible solution would be to make sure to only retrieve the samples
 when a GL context exists.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/13215>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list