shaders: Allow shader notify when async shaders is disabled
This commit is contained in:
parent
a0365217f5
commit
fcff19e0fa
|
@ -430,10 +430,10 @@ std::unique_ptr<GraphicsPipeline> ShaderCache::CreateGraphicsPipeline(
|
||||||
previous_program = &program;
|
previous_program = &program;
|
||||||
}
|
}
|
||||||
auto* const thread_worker{build_in_parallel ? workers.get() : nullptr};
|
auto* const thread_worker{build_in_parallel ? workers.get() : nullptr};
|
||||||
VideoCore::ShaderNotify* const notify{build_in_parallel ? &shader_notify : nullptr};
|
return std::make_unique<GraphicsPipeline>(device, texture_cache, buffer_cache, gpu_memory,
|
||||||
return std::make_unique<GraphicsPipeline>(
|
maxwell3d, program_manager, state_tracker,
|
||||||
device, texture_cache, buffer_cache, gpu_memory, maxwell3d, program_manager, state_tracker,
|
thread_worker, &shader_notify, sources, infos,
|
||||||
thread_worker, notify, sources, infos, key.xfb_enabled != 0 ? &key.xfb_state : nullptr);
|
key.xfb_enabled != 0 ? &key.xfb_state : nullptr);
|
||||||
|
|
||||||
} catch (Shader::Exception& exception) {
|
} catch (Shader::Exception& exception) {
|
||||||
LOG_ERROR(Render_OpenGL, "{}", exception.what());
|
LOG_ERROR(Render_OpenGL, "{}", exception.what());
|
||||||
|
|
|
@ -529,11 +529,10 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
|
||||||
previous_stage = &program;
|
previous_stage = &program;
|
||||||
}
|
}
|
||||||
Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr};
|
Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr};
|
||||||
VideoCore::ShaderNotify* const notify{build_in_parallel ? &shader_notify : nullptr};
|
return std::make_unique<GraphicsPipeline>(
|
||||||
return std::make_unique<GraphicsPipeline>(maxwell3d, gpu_memory, scheduler, buffer_cache,
|
maxwell3d, gpu_memory, scheduler, buffer_cache, texture_cache, &shader_notify, device,
|
||||||
texture_cache, notify, device, descriptor_pool,
|
descriptor_pool, update_descriptor_queue, thread_worker, render_pass_cache, key,
|
||||||
update_descriptor_queue, thread_worker,
|
std::move(modules), infos);
|
||||||
render_pass_cache, key, std::move(modules), infos);
|
|
||||||
|
|
||||||
} catch (const Shader::Exception& exception) {
|
} catch (const Shader::Exception& exception) {
|
||||||
LOG_ERROR(Render_Vulkan, "{}", exception.what());
|
LOG_ERROR(Render_Vulkan, "{}", exception.what());
|
||||||
|
@ -596,9 +595,8 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
|
||||||
spv_module.SetObjectNameEXT(name.c_str());
|
spv_module.SetObjectNameEXT(name.c_str());
|
||||||
}
|
}
|
||||||
Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr};
|
Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr};
|
||||||
VideoCore::ShaderNotify* const notify{build_in_parallel ? &shader_notify : nullptr};
|
|
||||||
return std::make_unique<ComputePipeline>(device, descriptor_pool, update_descriptor_queue,
|
return std::make_unique<ComputePipeline>(device, descriptor_pool, update_descriptor_queue,
|
||||||
thread_worker, notify, program.info,
|
thread_worker, &shader_notify, program.info,
|
||||||
std::move(spv_module));
|
std::move(spv_module));
|
||||||
|
|
||||||
} catch (const Shader::Exception& exception) {
|
} catch (const Shader::Exception& exception) {
|
||||||
|
|
Loading…
Reference in New Issue