Documentation is work in progress and not completeEditor
GPU Constraints and 3D

The Browser Rendering Environment

FlashFX renders entirely within a web browser. This means the rendering pipeline operates within the constraints of web graphics APIs rather than direct GPU access.

What This Means

Unlike desktop applications (After Effects, Cinema 4D, DaVinci Resolve) that communicate directly with the GPU via operating system drivers, FlashFX works through:

  • 1.WebGL 2.0 — the primary GPU API for compositing, shader effects, and 3D transforms
  • 2.Canvas 2D API — used for certain 2D compositing operations not exposed efficiently in WebGL
  • 3.CSS Compositing — used for UI-level effects but not for canvas content rendering

This creates a set of fundamental constraints that do not exist in desktop applications:

  • -No direct framebuffer access
  • -No shared memory between CPU and GPU
  • -Texture size limits enforced by the browser
  • -No multi-GPU support
  • -Shader compilation must occur at runtime within the browser sandbox

Why This Matters

Memory: GPU memory (VRAM) allocated to the browser tab is shared with all other browser graphics operations. The browser does not expose a way to query total available VRAM precisely — FlashFX uses heuristics to estimate available memory.

Framebuffer access: Operations that require reading back pixels from the GPU (certain blend modes, displacement maps, some filter compositing) are significantly more expensive in WebGL than in native applications because the GPU must pause, copy data, and transfer it to accessible memory.

Shader limits: WebGL imposes maximum sizes on shader programs (the GPU instructions used to compute effects). Very complex filter stacks may exceed these limits and must be broken into multiple rendering passes.