Fix multithreaded rendering
This commit is contained in:
@@ -345,6 +345,7 @@ namespace OpenVulkano::Vulkan
|
||||
VulkanShader* ResourceManager::CreateShader(Scene::Shader* shader)
|
||||
{
|
||||
const std::unique_lock lock(mutex);
|
||||
if (shader->renderShader) return static_cast<VulkanShader*>(shader->renderShader);
|
||||
VulkanShader* vkShader = new VulkanShader();
|
||||
vkShader->Init(context, shader, this);
|
||||
shaders.emplace_back(vkShader);
|
||||
|
||||
@@ -33,7 +33,6 @@ namespace OpenVulkano::Vulkan
|
||||
this->shader = shader;
|
||||
this->owner = owner;
|
||||
this->context = context;
|
||||
shader->renderShader = this;
|
||||
shaderModules.reserve(shader->shaderPrograms.size());
|
||||
shaderStageCreateInfo.resize(shader->shaderPrograms.size());
|
||||
int i = 0;
|
||||
@@ -45,6 +44,7 @@ namespace OpenVulkano::Vulkan
|
||||
i++;
|
||||
}
|
||||
BuildPipeline();
|
||||
shader->renderShader = this;
|
||||
}
|
||||
|
||||
void VulkanShader::BuildPipeline()
|
||||
|
||||
Reference in New Issue
Block a user