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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions