set pipeline to queued when shader is not yet available (#12051)

# Objective

- Fixes #11977 - user defined shaders don't work in wasm
- After investigation, it won't work if the shader is not yet available
when compiling the pipeline on all platforms, for example if you load
many assets

## Solution

- Set the pipeline state to queued when it errs waiting for the shader
so that it's retried
This commit is contained in:
François 2024-02-23 08:14:09 +01:00
parent d62319be38
commit 5bf5d48759

View File

@ -895,7 +895,9 @@ impl PipelineCache {
CachedPipelineState::Err(err) => match err {
// Retry
PipelineCacheError::ShaderNotLoaded(_)
| PipelineCacheError::ShaderImportNotYetAvailable => {}
| PipelineCacheError::ShaderImportNotYetAvailable => {
cached_pipeline.state = CachedPipelineState::Queued;
}
// Shader could not be processed ... retrying won't help
PipelineCacheError::ProcessShaderError(err) => {