[PLACEHOLDER] Bevy Renderer Vendoring Epic #122

Open
opened 2025-12-17 04:11:26 +00:00 by siennathesane · 1 comment
siennathesane commented 2025-12-17 04:11:26 +00:00 (Migrated from github.com)

Description

In order to gain full control over the rendering pipeline for v2,
as a Marathon developer,
I need to vendor Bevy's rendering crates into the Marathon workspace to enable custom shaders, optimized asset loading, and mobile-specific optimizations.

This epic will be broken down into detailed phases and tasks as v2 approaches.

Scope (High-Level)

Phase 1: Vendor Core Rendering Crates

  • Identify required Bevy rendering crates
  • Vendor into Marathon workspace
  • Establish build integration
  • Update dependencies

Phase 2: Custom Asset Pipeline

  • Design asset loading strategy
  • Implement custom asset loaders
  • Optimize for mobile asset formats

Phase 3: Mobile Optimizations

  • iPad-specific rendering optimizations
  • Memory management for mobile
  • Performance profiling and tuning

Phase 4: Advanced Features

  • Custom lighting systems
  • Shadow rendering
  • Particle systems
  • Post-processing effects

Technical Notes

  • Dependencies: v0 and v1 complete
  • Estimated: 100+ points (requires detailed breakdown)
  • Critical for v2 asset loading and rendering
  • Vendoring approach confirmed (not forking)
  • Will follow same breakdown methodology as Spatial Audio and Agent Simulation epics

Additional Context

This epic will be broken down into detailed tasks closer to v2. The breakdown will include specific task sizing, WSJF prioritization, and technical implementation details following the same methodology used for previous epics.

## Description In order to gain full control over the rendering pipeline for v2, as a Marathon developer, I need to vendor Bevy's rendering crates into the Marathon workspace to enable custom shaders, optimized asset loading, and mobile-specific optimizations. This epic will be broken down into detailed phases and tasks as v2 approaches. ## Scope (High-Level) ### Phase 1: Vendor Core Rendering Crates - Identify required Bevy rendering crates - Vendor into Marathon workspace - Establish build integration - Update dependencies ### Phase 2: Custom Asset Pipeline - Design asset loading strategy - Implement custom asset loaders - Optimize for mobile asset formats ### Phase 3: Mobile Optimizations - iPad-specific rendering optimizations - Memory management for mobile - Performance profiling and tuning ### Phase 4: Advanced Features - Custom lighting systems - Shadow rendering - Particle systems - Post-processing effects ## Technical Notes - Dependencies: v0 and v1 complete - Estimated: 100+ points (requires detailed breakdown) - Critical for v2 asset loading and rendering - Vendoring approach confirmed (not forking) - Will follow same breakdown methodology as Spatial Audio and Agent Simulation epics ## Additional Context **This epic will be broken down into detailed tasks closer to v2.** The breakdown will include specific task sizing, WSJF prioritization, and technical implementation details following the same methodology used for previous epics.
siennathesane commented 2025-12-23 23:55:30 +00:00 (Migrated from github.com)

Phase 1: Vendor Core Rendering Crates - COMPLETE

Phase 1 of the Bevy Renderer Vendoring Epic has been successfully completed ahead of v2.

What Was Vendored

Successfully vendored all three core Bevy rendering crates from v0.17.2:

  • bevy_render - Core rendering engine (~15K LOC, 73 files)
  • bevy_core_pipeline - Rendering pipelines (~1.6K LOC, 26 files)
  • bevy_pbr - PBR materials and lighting system (~34.5K LOC, 51 files)
  • bevy_render_macros - Derive macros for rendering (merged into crates/macros/)

Integration Details

  • Location: crates/libmarathon/src/render/
  • Build Status: 0 compilation errors (reduced from 773 initial errors)
  • Testing: macOS smoke test passed
  • Source: Bevy v0.17.2 (commit 566358363126dd69f6e457e47f306c68f8041d2a)

Technical Achievements

  1. Preserved Bevy's internal module structure for easier upstream tracking
  2. Kept bevy_ecs, bevy_app, bevy_transform, etc. as external dependencies (not vendored)
  3. Fixed 535+ import path errors through systematic automation
  4. Resolved all macro path generation issues
  5. Updated dependencies (encase 0.10→0.11, added 4 new rendering dependencies)
  6. Created comprehensive re-export structure in render/mod.rs

Build Integration

The vendored rendering crates are now fully integrated into Marathon's build system:

  • All rendering types properly re-exported from libmarathon::render
  • Macro crate successfully merged and updated
  • App crate builds cleanly with vendored rendering
  • No breaking changes to existing app code

What's Next

Phase 1 provides the foundation for:

  • Phase 2: Custom Asset Pipeline (can now implement custom loaders)
  • Phase 3: Mobile Optimizations (can now add iPad-specific optimizations)
  • Phase 4: Advanced Features (can now add custom lighting, shadows, etc.)

See issue #2 for detailed Phase 1 implementation notes and next steps for renderer refactoring.

## ✅ Phase 1: Vendor Core Rendering Crates - COMPLETE Phase 1 of the Bevy Renderer Vendoring Epic has been successfully completed ahead of v2. ### What Was Vendored Successfully vendored all three core Bevy rendering crates from v0.17.2: - **bevy_render** - Core rendering engine (~15K LOC, 73 files) - **bevy_core_pipeline** - Rendering pipelines (~1.6K LOC, 26 files) - **bevy_pbr** - PBR materials and lighting system (~34.5K LOC, 51 files) - **bevy_render_macros** - Derive macros for rendering (merged into `crates/macros/`) ### Integration Details - **Location**: `crates/libmarathon/src/render/` - **Build Status**: ✅ 0 compilation errors (reduced from 773 initial errors) - **Testing**: ✅ macOS smoke test passed - **Source**: Bevy v0.17.2 (commit 566358363126dd69f6e457e47f306c68f8041d2a) ### Technical Achievements 1. Preserved Bevy's internal module structure for easier upstream tracking 2. Kept bevy_ecs, bevy_app, bevy_transform, etc. as external dependencies (not vendored) 3. Fixed 535+ import path errors through systematic automation 4. Resolved all macro path generation issues 5. Updated dependencies (encase 0.10→0.11, added 4 new rendering dependencies) 6. Created comprehensive re-export structure in `render/mod.rs` ### Build Integration The vendored rendering crates are now fully integrated into Marathon's build system: - All rendering types properly re-exported from `libmarathon::render` - Macro crate successfully merged and updated - App crate builds cleanly with vendored rendering - No breaking changes to existing app code ### What's Next Phase 1 provides the foundation for: - **Phase 2**: Custom Asset Pipeline (can now implement custom loaders) - **Phase 3**: Mobile Optimizations (can now add iPad-specific optimizations) - **Phase 4**: Advanced Features (can now add custom lighting, shadows, etc.) See issue #2 for detailed Phase 1 implementation notes and next steps for renderer refactoring.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: studio/marathon#122