mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-11-07 08:35:45 +00:00
GL: Fence between EGL swap chain contexts. (#4121)
This commit is contained in:
@@ -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) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user