mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-07 00:28:56 +00:00
ShaderCache: Fix several issues in background shader compiling
- In D3D, shaders could be compiled on the main thread, blocking startup. - Reduced the latency between a pipeline being requested and used in all backends in hybrid ubershader mode, when no shader stages were present. - Fixed a case where async compilation could cause the same UID to be appended multiple times to the UID cache. - Fix incorrect number of threads being used when immediately compile shaders was enabled.
This commit is contained in:
parent
6813c5e1e9
commit
517a977444
5 changed files with 104 additions and 112 deletions
|
@ -57,6 +57,12 @@ bool AsyncShaderCompiler::HasPendingWork()
|
|||
return !m_pending_work.empty() || m_busy_workers.load() != 0;
|
||||
}
|
||||
|
||||
bool AsyncShaderCompiler::HasCompletedWork()
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(m_completed_work_lock);
|
||||
return !m_completed_work.empty();
|
||||
}
|
||||
|
||||
void AsyncShaderCompiler::WaitUntilCompletion()
|
||||
{
|
||||
while (HasPendingWork())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue