Repository navigation
Engine pool. Clips now share a pool of running TouchEngine instances instead of each starting its own. A new clip that finds an engine waiting shows output in under a second, where a cold start takes 10–16 s. A clip that takes an engine another clip just handed back is ready in about 50 ms.
- Each plugin, Source and FX, has its own pool. A clip takes an engine only once it has a tox loaded.
- When you close or clear a clip, its tox is unloaded and the engine goes back to the pool.
- A tox with a
TouchEnginelink in its folder gets an engine running that TouchDesigner version. - To tune the pool, put an
FFGLTouchEngine.ininext to the plugin:WarmEngines=1 ; started ahead of time for the next new clip MaxIdleEngines=2 ; unused engines kept at most IdleEvictSeconds=300 ; how long an unused extra engine is kept
This release also confirms the v3.0.0 teardown fix. Resolume Arena 7.20.1 quit cleanly with TouchEngine Source and FX clips running, with no crash and no TouchEngine processes left behind.
Known limits:
- Each engine uses about 1.3 GB of GPU memory, and every clip keeps its engine while it exists. Lower
WarmEnginesandMaxIdleEngineson smaller cards. - Windows needs the
GL_EXT_memory_object_win32andGL_EXT_win32_keyed_mutexOpenGL extensions. These have been tested on NVIDIA only. - macOS builds but hasn't been run with this release.
Install: copy FFGLTouchEngine.dll, FFGLTouchEngineFX.dll and TouchEngine.dll into your Resolume plugins folder.
What's Changed
- Hand out TouchEngine instances from a per-binary engine pool by @medcelerate in #36
Full Changelog: v3.0.0...v3.1.0