Sharding #665

Merged
SakulFlee merged 20 commits from sharding into main 2026-07-04 19:55:26 +02:00
Owner
No description provided.
- Duplicated Runtime/ as Runtime_Rayon/ for async→rayon migration work
- Updated workspace Cargo.toml: Runtime_Rayon replaces Runtime in members
- Updated all 5 examples to depend on ../../Runtime_Rayon
- Runtime/ kept untouched as a reference copy
- Added [workspace.dependencies] to root Cargo.toml with all shared deps
- Runtime_Rayon/Cargo.toml: all deps use { workspace = true }
- Crates/ecs/Cargo.toml: shared deps use { workspace = true }
- Examples/roll_camera/Cargo.toml: async-trait uses { workspace = true }
Converted App, Element, StandardApp, AppRuntime, Importer, Renderer, World, examples to sync. Replaced async-std/futures/pollster/smol with rayon ThreadPool + mpsc channel. Removed all async_trait usage.
- Move cache, logging, macros, mip_level, or, quaternion to Crates/orbital_core/
- Fix macro paths to use ::winit:: (absolute crate path)
- Add winit as direct dep to all examples
- Runtime_Rayon re-exports from orbital_core via pub use
- Move app/input/ module to Crates/orbital_input/
- Fix state.rs internal reference (super:: -> crate::)
- Fix event.rs doc comment referencing crate::app::App
- Runtime_Rayon re-exports via pub use orbital_input as input
- Feature gate gamepad_input passes through to orbital_input
- Extract make_world_bind_group_layout from World into a free function
  in resources/mod.rs
- MaterialShader calls the free function instead of World:: method
- World::make_world_bind_group_layout now delegates to the free function
- Prepares resources module for independent extraction
- Move shader_preprocessor/ to Crates/orbital_shader_preprocessor/
- Runtime_Rayon re-exports via pub use orbital_shader_preprocessor as shader_preprocessor
- Pre-requisite for extracting resources (which depends on it)
- Move resources/ to Crates/orbital_resources/ (42 source files + 6 WGSL shaders)
- Remove test files that depended on wgpu_test_adapter (re-add later as integration tests)
- Fix cross-crate references: cache, mip_level now from orbital_core; shader_preprocessor now from orbital_shader_preprocessor
- Remove dead easy_gltf conversion gated by non-existent feature
- Runtime_Rayon re-exports via pub use orbital_resources as resources
- Move importer/ to Crates/orbital_importer_gltf/
- Fix crate::resources -> orbital_resources, crate::quaternion -> orbital_core::quaternion
- Runtime_Rayon re-exports via pub use orbital_importer_gltf as importer
- Create new  crate under  containing:
  -  trait, ,
  - Event system (, , )
  - Message system (, , , )
  -  (moved from )
- Update  Cargo.toml: add  dependency (fix TOML table ordering)
- Update : replace  with
- Update : replace  with
- Remove old  directory and
- Create new orbital_camera_controller crate under Crates/orbital_camera_controller/
- Contains: CameraController, CameraControllerDescriptor, movement/rotation/input types
- Update Runtime_Rayon: replace pub mod camera_controller with pub use orbital_camera_controller as camera_controller
- Remove old Runtime_Rayon/src/camera_controller/ directory
- Create new orbital_renderer crate under Crates/orbital_renderer/
- Contains: Renderer struct with sky box and model rendering
- Depends on: orbital_resources, wgpu, cgmath
- Update Runtime_Rayon: replace pub mod renderer with pub use orbital_renderer as renderer
- Remove old Runtime_Rayon/src/renderer/ directory
- Create new orbital_world crate under Crates/orbital_world/
- Contains: World, ModelStore, CameraStore, EnvironmentStore, LightStore, StoreError
- Depends on: orbital_core, orbital_element, orbital_importer_gltf, orbital_resources
- Update Runtime_Rayon: replace pub mod world with pub use orbital_world as world
- Remove old Runtime_Rayon/src/world/ directory
- Create new orbital_app crate under Crates/orbital_app/
- Contains: App trait, AppRuntime, StandardApp, AppContext, AppSettings, Timer, AppState, RuntimeEvent
- Depends on: orbital_element, orbital_input, orbital_renderer, orbital_world, orbital_core
- Update Runtime_Rayon: replace pub mod app with pub use orbital_app as app
- Remove Runtime_Rayon/src/app/ directory
- Remove stale files from earlier extractions (cache/, logging/, macros/, mip_level.rs, or.rs, quaternion.rs)
- Move Runtime_Rayon/ to Crates/orbital/
- Update workspace members in root Cargo.toml (remove Runtime_Rayon)
- Update example dependency paths from ../../Runtime_Rayon to ../../Crates/orbital
- Fix orbital umbrella crate's internal path dependencies (../Crates/ -> ../)
- Fix build.rs asset paths (../ -> ../../)
- All 8 ModelStore unit tests pass
- Add lto = "thin" and codegen-units = 16 to [profile.dev]
- Cross-crate inlining was disabled at default lto = false with
  256 codegen units per crate, causing massive performance
  regression after splitting into 11 sub-crates
- Add [features] section to orbital_app/Cargo.toml with
  gamepad_input and standard_app_detect_no_more_elements
- Propagate both features from the umbrella crate (orbital)
- Without this, #[cfg(feature = ...)] guards inside orbital_app
  were always evaluating to false
auto_request_redraw and gamepad_input_poll features were defined in the umbrella crate but never propagated to orbital_app. The cfg guards in runtime.rs always evaluated to false, so request_redraw() was never called after rendering — the render loop halted and FPS dropped from 60+ to effectively zero.
- Prefix all unused variables with _ across 5 crates
- Add #[allow(dead_code)] to generate_specular_mip_maps and
  compute_tangent_frame (unused but kept for future use)
- Gate Duration/Instant import behind the feature that uses it
- Remove redundant use orbital_input::InputState that shadowed glob re-export
- Remove Runtime/ (untouched async reference copy, no longer needed)
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
SakulFlee/Orbital!665
No description provided.