-
Notifications
You must be signed in to change notification settings - Fork 2
Integrated VBOs with staging system #75
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 integrates Vertex Buffer Objects (VBOs) with a new staging system, fundamentally refactoring how vertex data is managed in the rendering pipeline. The changes migrate from transform feedback-based particle updates to compute shader-based updates, and unify buffer management through a staged buffer architecture.
Key Changes:
- Refactored VBO to extend StagedBuffer instead of BufferObject, enabling unified buffer management
- Migrated particle and weather systems from transform feedback to compute shaders
- Renamed buffer-related methods for consistency (stride→vertexStride, buffer→mainBuffer, etc.)
- Simplified buffer memory layout enums by removing INTERLEAVED and SHARED variants
- Enhanced error handling with boolean return values for resize operations
Reviewed changes
Copilot reviewed 53 out of 53 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| regen/shader/shader-input.h/cpp | Renamed methods and added staged buffer support; core API changes for buffer management |
| regen/memory/vbo.h/cpp | Major refactoring: VBO now extends StagedBuffer; removed interleaved/sequential allocation logic |
| regen/memory/vertex-buffer.h/cpp | Deleted files - functionality merged into VBO and StagedBuffer |
| regen/memory/buffer-enums.h/cpp | Removed VERTEX_LAYOUT enum; added BufferComputeMode and PACKED_BASE_ALIGNMENT constant |
| regen/memory/client-buffer.cpp | Improved error handling and fixed resize logic for segmented buffers |
| regen/objects/mesh.h/cpp | Updated to use new VBO API; changed vaoAttributes_ from list to vector |
| regen/objects/particles.cpp | Migrated from transform feedback to compute shader-based particle updates |
| regen/shader/regen/weather/*.glsl | Converted particle update shaders from vertex shaders to compute shaders |
| regen/shader/regen/particles/emitter.glsl | Converted particle emitter from vertex shader to compute shader |
| regen/animation/mesh-animation.cpp | Refactored to use compute shaders for mesh interpolation |
| applications/scene-display/examples/*.xml | Updated particle configurations to specify std430 layout |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
✅ Compilation - SUCCESS! ✅ |
This PR integrates Vertex Buffer Objects (VBOs) with a new staging system, fundamentally refactoring how vertex data is managed in the rendering pipeline. The changes migrate from transform feedback-based particle updates to compute shader-based updates, and unify buffer management through a staged buffer architecture.