meetup.20261005 - tixl3d/tixl GitHub Wiki
TiXL Meetup 2026-10-05 / The Linux & Vulkan Port, Time & Beat Sync, Projector Calibration
A 4h23m TiXL developer meet-up: the first long look at the Linux port β SDL instead of WinForms, a thin facade carrying the old SharpDX calls to Vulkan 1.3, existing HLSL compiled through slang to SPIR-V, and 90 of 100 visual reference tests passing natively on Arch β then a community half on how bars and external clocks drive time, render-target economics, a photo-based projector calibration, and screen-space derivatives for anti-aliased field edges.
π new feature Β· π οΈ improvement Β· π operator Β· π walkthrough Β· π§ deep dive Β· πΏ showcase Β· π― planned Β· π¬ discussion Β· β οΈ heads-up
Chapters
- 0:00 π¬ Welcome: the release calendar and what v4.3 needs
- 4:05 π― Why the free time goes into the Linux port
- 9:06 β οΈ AbletonLinkSync only reaches the branch it feeds
- 14:33 π A title card (Text, FastBlur, LinearGradient, Steps)
- 17:48 π Output setup: a central output onto a display
- 22:12 π Two patches splitting one monitor
- 25:30 π― Panels in own windows, and a hot-standby machine
- 33:12 π§ Whiteboard: WinForms, SharpDX, ImGui and Bass
- 37:25 π SDL replaces WinForms; a facade onto Vulkan 1.3
- 40:07 π The player first: 90 of 100 visual tests pass
- 44:37 π HLSL survives: slang compiles it to SPIR-V
- 46:55 π― No TiXL 5 break, and what slang's strictness costs
- 52:06 π The linux-port branch, tag 4.4 and build actions
- 57:33 πΏ Live on Arch: dotnet build, 2s startup, tests
- 1:05:58 β οΈ NDI's license blocks packages; audio via PipeWire
- 1:09:56 πΏ The ImGui UI, image export and drag-and-drop work
- 1:12:12 π¬ How to help: crashes, shader errors, feature tests
- 1:16:40 β οΈ Wayland only, and SVG moving to Skia everywhere
- 1:22:45 π¬ Why Linux: Windows fatigue, plus Pi and ARM
- 1:35:21 π§ Time is bars, not seconds β and external clocks
- 1:38:24 π A clock from RadialPoints, with AnimValue kicks
- 1:42:42 π Seconds not bars: SetTime and SetPlaybackTime
- 1:54:47 π§ No route node: portals and pull-based evaluation
- 2:01:33 π¬ One voice per note, and C# delegates as the answer
- 2:10:25 π― PBR roadmap: reflections, cube maps, variations
- 2:13:49 π§ Why the renderer stays forward: MSAA, ΓΌber-shaders
- 2:19:00 πΏ A vibe-coded reroute point, Houdini-style
- 2:30:21 β οΈ A deleted central output leaves a ghost
- 2:42:39 π§ Focus-loss frame drops, and the performance graph
- 2:55:30 π οΈ Untick update on unused outputs; keystoning
- 3:02:22 π Tracing a reference photo and straightening it
- 3:08:13 πΏ Calibrating by dragging markers onto the wall
- 3:17:00 π οΈ Render targets by the pixel; tone mapping late
- 3:24:03 π The texture-info overlay and render-target wins
- 3:29:22 β οΈ A 0Γ0 source stretches DrawBillboards
- 3:38:22 π Layer2d snapping, RemapColor, publishing an input
- 3:46:56 π οΈ "Paste values", and Ctrl+F as a history list
- 3:53:13 π CustomDrawMesh: flat and lit mixed by a dot product
- 4:05:24 π A gradient from field distance, and alpha cutoff
- 4:09:34 π§ Screen-space derivatives: ddx, ddy and fwidth
- 4:14:00 πΏ fwidth as a smooth-step width β free anti-aliasing
- 4:22:23 π¬ Wrap-up: test Linux, test the output system
