# WarmupAllShaders()

> Prewarms all shader variants of all Shaders currently in memory.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static void WarmupAllShaders()
```

### Remarks

For information on shader loading and prewarming, including a list of different prewarming techniques, see [Shader loading](/engine/6000.5/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-reduce-stalling/shader-loading.md).

While this method can be convenient, prewarming a large number of shader variants can result in long load times and high memory usage. If this is a problem, consider placing shader variants in a [ShaderVariantCollection](/engine/6000.5/script-reference/unityengine/shadervariantcollection.md) instead.

**Warning:** This method is fully supported on DX11 and OpenGL. On DX12, Vulkan, and Metal, the graphics driver might still need to perform work if the vertex layout and/or the render target setup is different from the data used to prewarm it. This can result in wasted work and GPU memory, and still leave visible stalls in your application. [ShaderWarmup](/engine/6000.5/script-reference/unityengine/experimental/rendering/shaderwarmup.md) is supported on all graphics APIs.

Additional Resources: [ShaderWarmup](/engine/6000.5/script-reference/unityengine/experimental/rendering/shaderwarmup.md), [ShaderVariantCollection.WarmUp](/engine/6000.5/script-reference/unityengine/shadervariantcollection/warmup.md), [Shader loading](/engine/6000.5/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-reduce-stalling/shader-loading.md)
