From 9bb5fd64776ac8a7e4b012ac2de340ddfa09a2c9 Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 9 Feb 2026 14:28:46 +0100 Subject: feat: GPU procedural Phase 4 - texture composition Multi-input composite shaders with sampler support. - Dynamic bind group layouts (N input textures + 1 sampler) - dispatch_composite() for multi-input compute dispatch - create_gpu_composite_texture() API - gen_blend.wgsl and gen_mask.wgsl shaders Guarded with #if !defined(STRIP_GPU_COMPOSITE) for easy removal. Tests: - Blend two noise textures - Mask noise with grid - Multi-stage composite (composite of composites) Size: ~830 bytes (2 shaders + dispatch logic) handoff(Claude): GPU procedural Phase 4 complete --- assets/final/demo_assets.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'assets/final/demo_assets.txt') diff --git a/assets/final/demo_assets.txt b/assets/final/demo_assets.txt index 0f7c267..819c9c9 100644 --- a/assets/final/demo_assets.txt +++ b/assets/final/demo_assets.txt @@ -55,6 +55,8 @@ SHADER_VIGNETTE, NONE, shaders/vignette.wgsl, "Vignette Shader" SHADER_COMPUTE_GEN_NOISE, NONE, shaders/compute/gen_noise.wgsl, "GPU Noise Compute Shader" SHADER_COMPUTE_GEN_PERLIN, NONE, shaders/compute/gen_perlin.wgsl, "GPU Perlin Noise Compute Shader" SHADER_COMPUTE_GEN_GRID, NONE, shaders/compute/gen_grid.wgsl, "GPU Grid Compute Shader" +SHADER_COMPUTE_GEN_BLEND, NONE, shaders/compute/gen_blend.wgsl, "GPU Blend Composite Shader" +SHADER_COMPUTE_GEN_MASK, NONE, shaders/compute/gen_mask.wgsl, "GPU Mask Composite Shader" CIRCLE_MASK_COMPUTE_SHADER, NONE, shaders/circle_mask_compute.wgsl, "Circle mask compute shader" CIRCLE_MASK_RENDER_SHADER, NONE, shaders/circle_mask_render.wgsl, "Circle mask render shader" MASKED_CUBE_SHADER, NONE, shaders/masked_cube.wgsl, "Masked cube shader" -- cgit v1.2.3