summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ameerj2021-06-17 23:12:41 -0400
committerGravatar ameerj2021-07-22 21:51:38 -0400
commitfcff19e0fa3d21130bc7b6cd50a10db102b5d4d7 (patch)
tree9d80a256e72c2f51d86e2e5ecc2e64315553f12e
parenttexture_pass: Fix is_read image qualification (diff)
downloadyuzu-fcff19e0fa3d21130bc7b6cd50a10db102b5d4d7.tar.gz
yuzu-fcff19e0fa3d21130bc7b6cd50a10db102b5d4d7.tar.xz
yuzu-fcff19e0fa3d21130bc7b6cd50a10db102b5d4d7.zip
shaders: Allow shader notify when async shaders is disabled
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp8
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp12
2 files changed, 9 insertions, 11 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index b8b24dd3d..8aaadccc4 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -430,10 +430,10 @@ std::unique_ptr<GraphicsPipeline> ShaderCache::CreateGraphicsPipeline(
430 previous_program = &program; 430 previous_program = &program;
431 } 431 }
432 auto* const thread_worker{build_in_parallel ? workers.get() : nullptr}; 432 auto* const thread_worker{build_in_parallel ? workers.get() : nullptr};
433 VideoCore::ShaderNotify* const notify{build_in_parallel ? &shader_notify : nullptr}; 433 return std::make_unique<GraphicsPipeline>(device, texture_cache, buffer_cache, gpu_memory,
434 return std::make_unique<GraphicsPipeline>( 434 maxwell3d, program_manager, state_tracker,
435 device, texture_cache, buffer_cache, gpu_memory, maxwell3d, program_manager, state_tracker, 435 thread_worker, &shader_notify, sources, infos,
436 thread_worker, notify, sources, infos, key.xfb_enabled != 0 ? &key.xfb_state : nullptr); 436 key.xfb_enabled != 0 ? &key.xfb_state : nullptr);
437 437
438} catch (Shader::Exception& exception) { 438} catch (Shader::Exception& exception) {
439 LOG_ERROR(Render_OpenGL, "{}", exception.what()); 439 LOG_ERROR(Render_OpenGL, "{}", exception.what());
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index dc028306a..e83628c13 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -529,11 +529,10 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
529 previous_stage = &program; 529 previous_stage = &program;
530 } 530 }
531 Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr}; 531 Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr};
532 VideoCore::ShaderNotify* const notify{build_in_parallel ? &shader_notify : nullptr}; 532 return std::make_unique<GraphicsPipeline>(
533 return std::make_unique<GraphicsPipeline>(maxwell3d, gpu_memory, scheduler, buffer_cache, 533 maxwell3d, gpu_memory, scheduler, buffer_cache, texture_cache, &shader_notify, device,
534 texture_cache, notify, device, descriptor_pool, 534 descriptor_pool, update_descriptor_queue, thread_worker, render_pass_cache, key,
535 update_descriptor_queue, thread_worker, 535 std::move(modules), infos);
536 render_pass_cache, key, std::move(modules), infos);
537 536
538} catch (const Shader::Exception& exception) { 537} catch (const Shader::Exception& exception) {
539 LOG_ERROR(Render_Vulkan, "{}", exception.what()); 538 LOG_ERROR(Render_Vulkan, "{}", exception.what());
@@ -596,9 +595,8 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
596 spv_module.SetObjectNameEXT(name.c_str()); 595 spv_module.SetObjectNameEXT(name.c_str());
597 } 596 }
598 Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr}; 597 Common::ThreadWorker* const thread_worker{build_in_parallel ? &workers : nullptr};
599 VideoCore::ShaderNotify* const notify{build_in_parallel ? &shader_notify : nullptr};
600 return std::make_unique<ComputePipeline>(device, descriptor_pool, update_descriptor_queue, 598 return std::make_unique<ComputePipeline>(device, descriptor_pool, update_descriptor_queue,
601 thread_worker, notify, program.info, 599 thread_worker, &shader_notify, program.info,
602 std::move(spv_module)); 600 std::move(spv_module));
603 601
604} catch (const Shader::Exception& exception) { 602} catch (const Shader::Exception& exception) {