mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-12-22 22:01:46 +00:00
[client] egl: fallback when EGL_RENDER_BUFFER fails
This allows the client to work when the OpenGL implementation fails if EGL_RENDER_BUFFER is passed, printing a warning. This should fix issues with Nvidia proprietary drivers on Wayland.
This commit is contained in:
parent
9ddd260b22
commit
2858ad3f7e
1 changed files with 11 additions and 2 deletions
|
@ -713,8 +713,17 @@ static bool egl_renderStartup(LG_Renderer * renderer, bool useDMA)
|
|||
this->surface = eglCreateWindowSurface(this->display, this->configs, this->nativeWind, surfattr);
|
||||
if (this->surface == EGL_NO_SURFACE)
|
||||
{
|
||||
DEBUG_ERROR("Failed to create EGL surface (eglError: 0x%x)", eglGetError());
|
||||
return false;
|
||||
// On Nvidia proprietary drivers on Wayland, specifying EGL_RENDER_BUFFER can cause
|
||||
// window creation to fail, so we try again without it.
|
||||
this->surface = eglCreateWindowSurface(this->display, this->configs, this->nativeWind, NULL);
|
||||
if (this->surface == EGL_NO_SURFACE)
|
||||
{
|
||||
DEBUG_ERROR("Failed to create EGL surface (eglError: 0x%x)", eglGetError());
|
||||
return false;
|
||||
}
|
||||
else
|
||||
DEBUG_WARN("EGL surface creation with EGL_RENDER_BUFFER failed, "
|
||||
"egl:doubleBuffer setting may not be respected");
|
||||
}
|
||||
|
||||
const char * client_exts = eglQueryString(this->display, EGL_EXTENSIONS);
|
||||
|
|
Loading…
Reference in a new issue