| Age | Commit message (Collapse) | Author |
|
Phase 3 complete:
- Verify 128x64 and 1024x512 textures work
- Confirms GpuProceduralParams width/height respected
docs: Add Phase 4 design (texture composition)
- Multi-input compute shaders (samplers)
- Composite generators (blend, mask, modulate)
- Asset dependency ordering
- ~830 bytes for 2 composite shaders
|
|
Comprehensive GPU procedural test coverage:
- Pipeline caching (reuse for same generator)
- All three generators (noise, perlin, grid)
- Multiple pipelines coexisting
|
|
Phase 1 implementation complete:
- GPU compute shader for noise generation (gen_noise.wgsl)
- TextureManager extensions: create_gpu_noise_texture(), dispatch_noise_compute()
- Asset packer PROC_GPU() syntax support with validation
- ShaderComposer integration for #include resolution
- Zero CPU memory overhead (GPU-only textures)
- Init-time and on-demand generation modes
Technical details:
- 8×8 workgroup size for 256×256 textures
- UniformBuffer for params (width, height, seed, frequency)
- Storage texture binding (rgba8unorm, write-only)
- Lazy pipeline compilation on first use
- ~300 bytes code (Phase 1)
Testing:
- New test: test_gpu_procedural.cc (passes)
- All 34 tests passing (100%)
Future phases:
- Phase 2: Add gen_perlin, gen_grid compute shaders
- Phase 3: Variable dimensions, async generation
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|