diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-07 09:55:27 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-07 09:55:27 +0100 |
| commit | 9b205ffa49ed26a039285c9af923fc84870a7c88 (patch) | |
| tree | f99ab7a4a7e001f31683b333883d7589f457c3c9 /src/tests/offscreen_render_target.h | |
| parent | 3f67e4e079ab119dcdc063c56e8224e29a395601 (diff) | |
test(gpu): Add post-process helper utilities testing (Phase 2.2)
Created test_post_process_helper.cc to validate pipeline and bind group utilities:
- Tests create_post_process_pipeline() function
- Validates shader module creation
- Verifies bind group layout (3 bindings: sampler, texture, uniform)
- Confirms render pipeline creation with standard topology
- Tests pp_update_bind_group() function
- Creates bind groups with correct sampler/texture/uniform bindings
- Validates bind group update/replacement (releases old, creates new)
- Full integration test
- Combines pipeline + bind group setup
- Executes complete render pass with post-process effect
- Validates no WebGPU validation errors during rendering
Test infrastructure additions:
- Helper functions for creating post-process textures with TEXTURE_BINDING usage
- Helper for creating texture views
- Minimal valid post-process shader for smoke testing
- Uses gpu_init_color_attachment() for proper depthSlice handling (macOS)
Key technical details:
- Post-process textures require RENDER_ATTACHMENT + TEXTURE_BINDING + COPY_SRC usage
- Bind group layout: binding 0 (sampler), binding 1 (texture), binding 2 (uniform buffer)
- Render passes need depthSlice = WGPU_DEPTH_SLICE_UNDEFINED on non-Windows platforms
Added CMake target with dependencies:
- Links against gpu, 3d, audio, procedural, util libraries
- Minimal dependencies (no timeline/music generation needed)
Coverage: Validates core post-processing infrastructure used by all post-process effects
Zero binary size impact: All test code under #if !defined(STRIP_ALL)
Part of GPU Effects Test Infrastructure (Phase 2/3)
Phase 2 Complete: Effect classes + helper utilities tested
Next: Phase 3 (optional) - Individual effect render validation
Diffstat (limited to 'src/tests/offscreen_render_target.h')
0 files changed, 0 insertions, 0 deletions
