packages/docs/docs/open-gl.mdx
When rendering a video in Remotion, different GL renderer backends can be selected.
The following renderer backends are supported in Remotion:
<Step>1</Step> If you use WebGL/Three.js:
angle is recommendedangle-egl is recommendedswangle (default on Lambda)swangle is recommended. Rendering might be slow.<Step>2</Step> If you don't use WebGL/Three.js, the default renderer (<code>null</code> on local, <code>swangle</code> on Lambda) are the best choice.
In cases where a GPU could be beneficial for rendering, it can often make sense to use the <code>angle</code> renderer (<code>angle-egl</code> on Linux). An in-depth explanation when and how to use it is given in this article.
⚠️ Memory leaks are a known problem with <code>angle</code>. We recommend to split up long renders into multiple parts when rendering large videos, since sometimes renders can fail due to memory leaks.
Currently, GitHub Actions will fail when using <code>angle</code>, since Actions runners don't have a GPU.
The renderer backend can be set in different ways:
In getCompositions(), renderStill(), renderMedia(), renderFrames(), getCompositionsOnLambda(), renderStillOnLambda() and renderMediaOnLambda(), you can pass chromiumOptions.gl.
import { Config } from "@remotion/cli/config";
// ---cut---
Config.setChromiumOpenGlRenderer("angle");
:::note The config file only applies to CLI commands. :::
:::note
Prior to v3.3.39, the option was called Config.Puppeteer.setChromiumOpenGlRenderer().
:::
Pass --gl=[angle,swangle,...] in one of the following commands: remotion render, remotion compositions, remotion still, remotion lambda render, remotion lambda still, remotion lambda compositions.