GL: Fence between EGL swap chain contexts. (#4121)

This commit is contained in:
Branimir Karadžić
2026-11-06 00:12:46 -08:00
committed by GitHub
parent 68d22070ea
commit 2c084cc803
2 changed files with 21 additions and 0 deletions
+14
View File
@@ -1177,6 +1177,14 @@ WL_EGL_IMPORT
{
if (m_current != _swapChain)
{
GLsync sync = NULL;
if (NULL != m_display
&& NULL != glFenceSync)
{
sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
}
m_current = _swapChain;
if (NULL == _swapChain)
@@ -1190,6 +1198,12 @@ WL_EGL_IMPORT
{
_swapChain->makeCurrent();
}
if (NULL != sync)
{
GL_CHECK(glWaitSync(sync, 0, GL_TIMEOUT_IGNORED) );
GL_CHECK(glDeleteSync(sync) );
}
}
}
+7
View File
@@ -305,6 +305,7 @@ GL_IMPORT______(true, PFNGLDELETEQUERIESPROC, glDeleteQueri
GL_IMPORT______(true, PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers);
GL_IMPORT______(true, PFNGLDELETESAMPLERSPROC, glDeleteSamplers);
GL_IMPORT______(false, PFNGLDELETESHADERPROC, glDeleteShader);
GL_IMPORT______(true, PFNGLDELETESYNCPROC, glDeleteSync);
GL_IMPORT______(false, PFNGLDELETETEXTURESPROC, glDeleteTextures);
GL_IMPORT______(true, PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays);
GL_IMPORT______(false, PFNGLDEPTHFUNCPROC, glDepthFunc);
@@ -327,6 +328,7 @@ GL_IMPORT______(false, PFNGLENABLEPROC, glEnable);
GL_IMPORT______(true, PFNGLENABLEIPROC, glEnablei);
GL_IMPORT______(false, PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray);
GL_IMPORT______(true, PFNGLENDQUERYPROC, glEndQuery);
GL_IMPORT______(true, PFNGLFENCESYNCPROC, glFenceSync);
GL_IMPORT______(false, PFNGLFINISHPROC, glFinish);
GL_IMPORT______(false, PFNGLFLUSHPROC, glFlush);
GL_IMPORT______(true, PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer);
@@ -453,6 +455,7 @@ GL_IMPORT______(false, PFNGLVERTEXATTRIB2FPROC, glVertexAttri
GL_IMPORT______(false, PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f);
GL_IMPORT______(false, PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f);
GL_IMPORT______(false, PFNGLVIEWPORTPROC, glViewport);
GL_IMPORT______(true, PFNGLWAITSYNCPROC, glWaitSync);
# if BGFX_CONFIG_RENDERER_OPENGL
GL_IMPORT______(false, PFNGLCLEARDEPTHPROC, glClearDepth);
@@ -661,6 +664,10 @@ GL_IMPORT______(true, PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC, glMultiDrawEl
GL_IMPORT______(true, PFNGLINVALIDATEFRAMEBUFFERPROC, glInvalidateFramebuffer);
GL_IMPORT______(true, PFNGLFENCESYNCPROC, glFenceSync);
GL_IMPORT______(true, PFNGLDELETESYNCPROC, glDeleteSync);
GL_IMPORT______(true, PFNGLWAITSYNCPROC, glWaitSync);
# endif // !BGFX_USE_GL_DYNAMIC_LIB
#endif // !BGFX_CONFIG_RENDERER_OPENGL