Skip to content

[Audit][High] CollisionConfig.max_iterations is defined but never used in binary search #720

Description

@MichaelFisher1997

🔍 Module Scanned\n (automated audit scan)\n\n## 📝 Summary\nThe field is defined but never actually used in the collision resolution binary search. Instead, uses a hardcoded iterations limit, making the configuration option completely useless. Users cannot tune collision resolution quality/performance.\n\n## 📍 Location\n- File: \n- Function/Scope: (line 162) and (lines 86, 109, 127)\n\n## 🔴 Severity: High\n- High: Memory leaks, race conditions, incorrect rendering, broken features\n\n## 💥 Impact\nUsers who set in expecting better accuracy or performance will get neither - the binary search always uses 16 iterations regardless of configuration. This can cause:\n1. Entities moving at high speed to pass through thin walls if 16 iterations is insufficient\n2. Wasted CPU cycles when users want faster but less accurate collision detection\n3. Misleading API - the config field appears functional but is completely ignored\n\n## 🔎 Evidence\n\n\n## 🛠️ Proposed Fix\n1. Modify signature to accept as a parameter\n2. Replace hardcoded in the loop condition with the passed parameter\n3. Update calls in to pass to each call\n\n\n\nThen in :\n\n\n## ✅ Acceptance Criteria\n- [ ] is correctly passed to in all three axis resolution calls\n- [ ] The hardcoded in loop condition is replaced with the passed parameter\n- [ ] Unit tests verify collision resolution works correctly with different values\n- [ ] Zig 0.16.0 + SDL3 Dev Environment

Compiler: 0.16.0
assets/shaders/vulkan/debug_shadow.vert
assets/shaders/vulkan/lpv_propagate.comp
assets/shaders/vulkan/shadow.frag
assets/shaders/vulkan/sky.vert
assets/shaders/vulkan/ui.vert
assets/shaders/vulkan/depth_pyramid.comp
assets/shaders/vulkan/ssao.vert
assets/shaders/vulkan/ssao.frag
assets/shaders/vulkan/water.vert
assets/shaders/vulkan/lpv_inject.comp
assets/shaders/vulkan/water.frag
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/mesh.comp
assets/shaders/vulkan/terrain.frag
assets/shaders/vulkan/g_pass.frag
assets/shaders/vulkan/shadow.vert
assets/shaders/vulkan/ui_tex.vert
assets/shaders/vulkan/debug_shadow.frag
assets/shaders/vulkan/taa.vert
assets/shaders/vulkan/ui.frag
assets/shaders/vulkan/sky.frag
assets/shaders/vulkan/bloom_downsample.vert
assets/shaders/vulkan/bloom_upsample.vert
assets/shaders/vulkan/debug_shadow.vert
assets/shaders/vulkan/fxaa.vert
assets/shaders/vulkan/post_process.vert
assets/shaders/vulkan/shadow.vert
assets/shaders/vulkan/sky.vert
assets/shaders/vulkan/ssao.vert
assets/shaders/vulkan/taa.vert
assets/shaders/vulkan/terrain.vert
assets/shaders/vulkan/ui.vert
assets/shaders/vulkan/ui_tex.vert
assets/shaders/vulkan/water.vert
assets/shaders/vulkan/bloom_downsample.frag
assets/shaders/vulkan/bloom_upsample.frag
assets/shaders/vulkan/debug_shadow.frag
assets/shaders/vulkan/fxaa.frag
assets/shaders/vulkan/g_pass.frag
assets/shaders/vulkan/post_process.frag
assets/shaders/vulkan/shadow.frag
assets/shaders/vulkan/sky.frag
assets/shaders/vulkan/ssao.frag
assets/shaders/vulkan/ssao_blur.frag
assets/shaders/vulkan/taa.frag
assets/shaders/vulkan/terrain.frag
assets/shaders/vulkan/terrain_debug.frag
assets/shaders/vulkan/ui.frag
assets/shaders/vulkan/ui_tex.frag
assets/shaders/vulkan/water.frag
assets/shaders/vulkan/culling.comp
assets/shaders/vulkan/depth_pyramid.comp
assets/shaders/vulkan/lpv_inject.comp
assets/shaders/vulkan/lpv_propagate.comp
assets/shaders/vulkan/mesh.comp
assets/shaders/vulkan/ui_tex.frag
assets/shaders/vulkan/ssao_blur.frag
assets/shaders/vulkan/terrain.vert
assets/shaders/vulkan/taa.frag passes after the fix\n\n## 📚 References\n- - CollisionConfig definition\n- - Y-axis resolveAxis call\n- - X-axis resolveAxis call\n- - Z-axis resolveAxis call\n- - Hardcoded iteration limit

Metadata

Metadata

Assignees

No one assigned

    Labels

    automated-auditIssues found by automated opencode audit scansbugSomething isn't workingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions