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:
Stenzek
2018-03-11 14:24:45 +10:00
parent 6813c5e1e9
commit 517a977444
5 changed files with 104 additions and 112 deletions

View File

@ -72,7 +72,7 @@ private:
void CompileMissingPipelines();
void InvalidateCachedPipelines();
void ClearPipelineCaches();
void PrecompileUberShaders();
void QueueUberShaderPipelines();
// GX shader compiler methods
std::unique_ptr<AbstractShader> CompileVertexShader(const VertexShaderUid& uid) const;