Fix multithreaded rendering

This commit is contained in:
Georg Hagen
2024-05-28 22:18:33 +02:00
parent 8875a2d4ee
commit 7dd16c66b9
2 changed files with 2 additions and 1 deletions

View File

@@ -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);

View File

@@ -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()