[Android] Qualcomm drivers require that the EGL context is created on the same thread that the OpenGL commands are run on. Crappy driver limitation since eglMakeCurrent should work to let it be on a different thread.
This commit is contained in:
parent
ca12e7ee8f
commit
61aa272bfb
|
@ -39,7 +39,7 @@ namespace SW
|
|||
static volatile bool fifoStateRun = false;
|
||||
static volatile bool emuRunningState = false;
|
||||
static std::mutex m_csSWVidOccupied;
|
||||
|
||||
static void* m_windowhandle;
|
||||
|
||||
std::string VideoSoftware::GetName()
|
||||
{
|
||||
|
@ -64,13 +64,7 @@ bool VideoSoftware::Initialize(void *&window_handle)
|
|||
g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str());
|
||||
InitInterface();
|
||||
|
||||
if (!GLInterface->Create(window_handle))
|
||||
{
|
||||
INFO_LOG(VIDEO, "%s", "SWRenderer::Create failed\n");
|
||||
return false;
|
||||
}
|
||||
// Do our OSD callbacks
|
||||
OSD::DoCallbacks(OSD::OSD_INIT);
|
||||
m_windowhandle = window_handle;
|
||||
|
||||
InitBPMemory();
|
||||
InitXFMemory();
|
||||
|
@ -166,6 +160,12 @@ void VideoSoftware::Video_Cleanup()
|
|||
// This is called after Video_Initialize() from the Core
|
||||
void VideoSoftware::Video_Prepare()
|
||||
{
|
||||
if (!GLInterface->Create(m_windowhandle))
|
||||
{
|
||||
INFO_LOG(VIDEO, "%s", "SWRenderer::Create failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
GLInterface->MakeCurrent();
|
||||
// Init extension support.
|
||||
#ifndef USE_GLES
|
||||
|
@ -180,6 +180,9 @@ void VideoSoftware::Video_Prepare()
|
|||
// Handle VSync on/off
|
||||
GLInterface->SwapInterval(VSYNC_ENABLED);
|
||||
|
||||
// Do our OSD callbacks
|
||||
OSD::DoCallbacks(OSD::OSD_INIT);
|
||||
|
||||
HwRasterizer::Prepare();
|
||||
SWRenderer::Prepare();
|
||||
|
||||
|
|
Loading…
Reference in New Issue