Skip to content

v3.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Oct 15:22
49bf4b2

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 TouchEngine link in its folder gets an engine running that TouchDesigner version.
  • To tune the pool, put an FFGLTouchEngine.ini next 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 WarmEngines and MaxIdleEngines on smaller cards.
  • Windows needs the GL_EXT_memory_object_win32 and GL_EXT_win32_keyed_mutex OpenGL 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