(libretro/Vulkan) Fix glslang shader-related crashes

This commit is contained in:
jdgleaver
2020-08-01 15:29:59 +01:00
parent 60e44c232b
commit 363804c48b
7 changed files with 28 additions and 1 deletions

View File

@ -158,6 +158,7 @@ bool DetachProcess()
OS_FreeTLSIndex(ThreadInitializeIndex);
ThreadInitializeIndex = OS_INVALID_TLS_INDEX;
DeinitializePoolIndex();
return success;
}

View File

@ -38,6 +38,7 @@
namespace glslang {
bool InitializePoolIndex();
bool DeinitializePoolIndex();
} // end namespace glslang

View File

@ -65,6 +65,15 @@ bool InitializePoolIndex()
return true;
}
bool DeinitializePoolIndex()
{
if (PoolIndex == OS_INVALID_TLS_INDEX)
return false;
OS_FreeTLSIndex(PoolIndex);
PoolIndex = OS_INVALID_TLS_INDEX;
return true;
}
//
// Implement the functionality of the TPoolAllocator class, which
// is documented in PoolAlloc.h.

View File

@ -1429,6 +1429,7 @@ int ShFinalize()
glslang::HlslScanContext::deleteKeywordMap();
#endif
DetachProcess();
return 1;
}