;; Test Fused Pipeline - Should be much faster than interpreted ;; ;; This uses the fused-pipeline primitive which compiles all effects ;; into a single CUDA kernel instead of interpreting them one by one. (stream "fused_pipeline_test" :fps 30 :width 1920 :height 1080 :seed 42 ;; Load primitives (require-primitives "streaming_gpu") (require-primitives "image") (require-primitives "math") ;; Define the effects pipeline (compiled to single CUDA kernel) (def effects-pipeline [{"op" "rotate" "angle" 0} {"op" "zoom" "amount" 1.0} {"op" "hue_shift" "degrees" 30} {"op" "ripple" "amplitude" 15 "frequency" 10 "decay" 2 "phase" 0 "center_x" 960 "center_y" 540} {"op" "brightness" "factor" 1.0}]) ;; Frame pipeline (frame (let [;; Create a gradient image r (+ 0.5 (* 0.5 (math:sin (* t 1)))) g (+ 0.5 (* 0.5 (math:sin (* t 1.3)))) b (+ 0.5 (* 0.5 (math:sin (* t 1.7)))) color [(* r 255) (* g 255) (* b 255)] base (image:make-image 1920 1080 color) ;; Dynamic parameters (change per frame) angle (* t 30) zoom (+ 1.0 (* 0.2 (math:sin (* t 0.5)))) phase (* t 2)] ;; Apply fused pipeline - all effects in ONE CUDA kernel! (streaming_gpu:fused-pipeline base effects-pipeline :rotate_angle angle :zoom_amount zoom :ripple_phase phase))))