Framebolt

Updated August 17, 2026

Custom GLSL shaders in Framebolt: supported inputs and limits

Framebolt's shader path is a documented compatibility boundary: source is compiled to SPIR-V and MSL, validated by Metal, and rejected with a reason when the imported graph needs unsupported resources.

See the GLSL feature overview

Entry points and uniforms

  • Use the supported Image/Main entry point for the final frame.
  • Shared Common code is available to the supported pass graph.
  • Up to four dependency-ordered buffer passes can feed the final pass, including supported previous-frame feedback.
  • Time uniforms such as iTime drive animated backgrounds; recorded mouse data can drive iMouse or u_mouse.
  • Audio-aware shaders may use a live stereo mix or microphone input where the app's shader path exposes it.
Conceptual frame inputs
Image/Main  -> final frame
Common     -> shared declarations
Buffer A-D -> ordered current- or previous-frame inputs
iTime      -> still scrub or video timeline
iMouse     -> recorded or configured position

Import boundary

SupportedRejected with diagnostics
Exactly one Image/Main + CommonFragCoord external image, video, or cubemap annotations
Up to four ordered buffers with supported feedbackIncludes, VR entry points, or graphs above the 256 MB feedback limit
Live stereo-mix or microphone spectrum inputArbitrary external audio or media textures
GLSL → SPIR-V → MSL compilationSilent syntax substitution
Reusable validated presetsA broken render with silent fallback

Mouse and audio behavior

For recordings, Framebolt can save one relative mouse position per accepted frame and convert it to the shader's pixel-space convention during rendering. That is shader input data, not a visible cursor highlight. Audio input is available to the relevant shader path as a live stereo mix or microphone source; microphone input is not a narrated recording track.

Representative diagnostics

  • A graph above four buffers or the 256 MB feedback cache limit is rejected with a specific compatibility message.
  • A FragCoord shader requiring an external image, video, or cubemap annotation is rejected before Metal validation.
  • A compile or Metal validation failure reports the source boundary instead of silently substituting syntax.

Questions about custom shader reference

Getting started with Framebolt

Install Framebolt, grant the right macOS permission, capture your first region, paste it, and understand where raw files and edit data live.