Add missing exception handling in shader loading threads
This commit is contained in:
parent
8c90d7b3d0
commit
69fdbb8f45
@ -126,7 +126,14 @@ void GEVulkanShaderManager::loadAllShaders()
|
|||||||
GEVulkanCommandLoader::addMultiThreadingCommand(
|
GEVulkanCommandLoader::addMultiThreadingCommand(
|
||||||
[pair, kind, filename]()
|
[pair, kind, filename]()
|
||||||
{
|
{
|
||||||
pair->second = loadShader(kind, filename);
|
try
|
||||||
|
{
|
||||||
|
pair->second = loadShader(kind, filename);
|
||||||
|
}
|
||||||
|
catch (std::exception& e)
|
||||||
|
{
|
||||||
|
printf("%s", e.what());
|
||||||
|
}
|
||||||
pair->first.unlock();
|
pair->first.unlock();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -272,6 +279,8 @@ VkShaderModule GEVulkanShaderManager::getShader(const std::string& filename)
|
|||||||
auto it = g_shaders.at(filename);
|
auto it = g_shaders.at(filename);
|
||||||
it->first.lock();
|
it->first.lock();
|
||||||
it->first.unlock();
|
it->first.unlock();
|
||||||
|
if (it->second == VK_NULL_HANDLE)
|
||||||
|
throw std::runtime_error(std::string("Missing shader ") + filename);
|
||||||
return it->second;
|
return it->second;
|
||||||
} // getShader
|
} // getShader
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user