-
Notifications
You must be signed in to change notification settings - Fork 2
Uniform ring size in staging system #81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces uniform ring buffer sizes across the staging system to reduce fence synchronization overhead, and modernizes the codebase by converting preprocessor macros to constexpr variables. The main improvements include better GPU-CPU synchronization management, improved code maintainability, and various bug fixes.
Key Changes
- Implemented uniform ring buffer sizing in the staging system with a single shared fence for all arenas when enabled
- Converted preprocessor defines to namespace-scoped
constexprvariables in boids-gpu.cpp, staging-buffer.cpp, and staged-buffer.cpp - Fixed uninitialized variable issues and removed dead code across multiple files
Reviewed changes
Copilot reviewed 58 out of 58 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| regen/memory/staging-system.h/cpp | Core implementation of uniform ring buffer sizing with shared fence management and buffer rotation support |
| regen/memory/staging-buffer.h/cpp | Converted preprocessor macros to constexpr and refactored conditional compilation logic |
| regen/memory/staged-buffer.h/cpp | Converted preprocessor macros to constexpr; fixed documentation and initialization |
| regen/simulation/boids-gpu.cpp | Converted debug macros to namespace constexpr bools and updated to use if constexpr |
| regen/objects/volume.glsl | Added look-ahead logic for better maximum detection in ray-casting; updated stepSize validation |
| regen/shapes/* | Removed unused member variables and functions; fixed uninitialized variables |
| regen/scene/scene.cpp | Added validation to ensure viewport dimensions are at least 2x2 and divisible by 2 |
| regen/shader/* | Code cleanup including removal of unused methods and style improvements |
| regen/av/* | Improved error messages and code organization; added deleted copy constructors |
| regen/gl/* | Header cleanup and minor refactoring improvements |
| regen/compute/* | Fixed array initialization syntax |
| regen/objects/assimp-importer.cpp | Changed from double to float precision for trigonometric functions |
| applications/* | Updated to use new rotateBuffers API and improved window size validation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
✅ Compilation - SUCCESS! ✅ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 58 out of 58 changed files in this pull request and generated 14 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This PR introduces uniform ring buffer sizes across the staging system to reduce fence synchronization overhead, and modernizes the codebase by converting preprocessor macros to
constexprvariables. The main improvements include better GPU-CPU synchronization management, improved code maintainability, and various bug fixes.Key Changes
constexprvariables in boids-gpu.cpp, staging-buffer.cpp, and staged-buffer.cpp