<feed xmlns='http://www.w3.org/2005/Atom'>
<title>demo.git/src/shaders, branch main</title>
<subtitle>Vide-coded 64k demo system</subtitle>
<id>https://git.taar-o.com/demo.git/atom?h=main</id>
<link rel='self' href='https://git.taar-o.com/demo.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/'/>
<updated>2026-05-21T06:00:45Z</updated>
<entry>
<title>fix: audio &amp; effects cleanup — dead code removal, simplifications</title>
<updated>2026-05-21T06:00:45Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-05-20T21:12:08Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=cca9db73a325b1da7492b18d7097c9235f91b688'/>
<id>urn:sha1:cca9db73a325b1da7492b18d7097c9235f91b688</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: code review cleanup — bugs, dead code, factorization (-167 lines)</title>
<updated>2026-05-20T20:44:44Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-05-20T20:44:44Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=5d20c892dedce7bc7486acbd72fbd35da69e413e'/>
<id>urn:sha1:5d20c892dedce7bc7486acbd72fbd35da69e413e</id>
<content type='text'>
Bugs:
- B1: fix dead tempo debug (prev_tempo captured after assignment)
- B2: fix ReloadAssetsFromFile leak for disk-loaded assets; simplify DropAsset
- B3: fix get_free_pool_slot leak (unregister synth + free data on reuse)
- B4: volatile -&gt; std::atomic with acquire/release in miniaudio_backend, synth
- B5: fix unaligned reads in scene_loader (memcpy-based read_f32/read_u32)
- B6: fix shader module + BGL + pipeline layout leaks in gpu.cc, pipeline_builder

Dead code:
- D1: remove unused particle_defs.h
- D3: remove create_post_process_pipeline_simple (zero callers)
- D4: remove empty gpu_draw()
- D5: remove write-only Hybrid3D::initialized_
- D6: remove legacy pending buffer path in audio.cc

Factorization:
- F1: Effect::run_fullscreen_pass() replaces boilerplate in 5 effects
- F2: particle_common.wgsl snippet, #include in 3 WGSL shaders
- F3: gpu_create_shader_module() helper, used in 3 call sites
- F5: get_world_aabb() shared between bvh.cc and physics.cc
- F6: samples_to_seconds() replaces 6 inline expressions
- F7: gpu_create_linear/nearest_sampler use SamplerCache; add nearest() preset

37/37 tests passing.

handoff(Claude): code review batch — all items verified, no regressions.
</content>
</entry>
<entry>
<title>feat(shaders): add ray_sphere snippet, use in gbuf_raster impostor</title>
<updated>2026-03-22T19:28:48Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-22T19:28:48Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=ce22f79c55e68f9fa496a47a528a6978b89e1261'/>
<id>urn:sha1:ce22f79c55e68f9fa496a47a528a6978b89e1261</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor(shaders): extract oct-normal encode/decode into math/normal snippet</title>
<updated>2026-03-22T19:10:53Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-22T19:10:53Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=aa5c8e6730b03ea901ead59bc7cb1c31dac62012'/>
<id>urn:sha1:aa5c8e6730b03ea901ead59bc7cb1c31dac62012</id>
<content type='text'>
New src/shaders/math/normal.wgsl: oct_encode, oct_decode, oct_encode_unorm,
oct_decode_unorm. Registered in InitShaderComposer as "math/normal".
Removed inline copies from gbuf_raster.wgsl and gbuf_pack.wgsl.
18/18 tests passing.
</content>
</entry>
<entry>
<title>make the heptagon effect more interesting</title>
<updated>2026-03-21T07:13:37Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-21T07:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=4d055080d2ab4b674d5f0fd611ea051e87454a31'/>
<id>urn:sha1:4d055080d2ab4b674d5f0fd611ea051e87454a31</id>
<content type='text'>
</content>
</entry>
<entry>
<title>factorize render_ntsc()</title>
<updated>2026-03-11T06:13:22Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-11T06:13:22Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=f700a081d9a5315ef583ffca2a2c626878ca2945'/>
<id>urn:sha1:f700a081d9a5315ef583ffca2a2c626878ca2945</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(effects): particle sync and heptagon SDF bugs</title>
<updated>2026-03-10T22:04:13Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-10T22:04:13Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=3ead818d35df56e6efbe3397967befba8d4bdb5d'/>
<id>urn:sha1:3ead818d35df56e6efbe3397967befba8d4bdb5d</id>
<content type='text'>
- particles: stagger respawn y by golden-ratio index offset to break
  per-row synchronization (100 particles per row fell in lock-step)
- heptagon: fix swapped atan2(x,y)-&gt;atan2(y,x) and WGSL % truncation
  for negative angles (broke SDF for entire lower half of shape)

handoff(Gemini): heptagon now correct; particles desynchronized

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>change dither_c64() signature to take 'dimension' directly</title>
<updated>2026-03-10T20:47:56Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-10T20:47:56Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=58112b4fbc95d188ce2c001f84a810b2c57fe3c2'/>
<id>urn:sha1:58112b4fbc95d188ce2c001f84a810b2c57fe3c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ntsc: factor common code into snippet; add RGB and YIQ input variants</title>
<updated>2026-03-10T19:42:32Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-10T19:42:32Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=3547424b8c5f3884f84d16fb3f08b47965d62428'/>
<id>urn:sha1:3547424b8c5f3884f84d16fb3f08b47965d62428</id>
<content type='text'>
- Extract shared NTSC logic into render/ntsc_common.wgsl snippet
- sample_ntsc_signal() hook decouples input format from processing
- ntsc_rgb.wgsl: RGB input (converts via rgba_to_luma_chroma_phase)
- ntsc_yiq.wgsl: YIQ passthrough for RotatingCube output
- Add NtscYiq WgslEffect thin wrapper; register both in tests

handoff(Claude): NTSC refactor complete; NtscYiq ready for timeline use with RotatingCube.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>rotating_cube: use VSOut, and store to yiq</title>
<updated>2026-03-10T08:33:41Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-03-10T08:33:41Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=7ca40818e3d0401f97efae6fe876038df4f5bd00'/>
<id>urn:sha1:7ca40818e3d0401f97efae6fe876038df4f5bd00</id>
<content type='text'>
</content>
</entry>
</feed>
