Skip to content

Conversation

@daniel86
Copy link
Owner

@daniel86 daniel86 commented Dec 26, 2025

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.

Copy link

Copilot AI left a 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.

@github-actions
Copy link

✅ Compilation - SUCCESS! ✅

@github-actions
Copy link

github-actions bot commented Dec 26, 2025

Test Results

1 tests  ±0   1 ✅ ±0   0s ⏱️ ±0s
1 suites ±0   0 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit 73e7e66. ± Comparison against base commit 938715f.

♻️ This comment has been updated with latest results.

@daniel86 daniel86 merged commit d2116f1 into dev Dec 26, 2025
2 checks passed
@daniel86 daniel86 deleted the vbo branch December 26, 2025 23:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants