bevyengine / bevyengine/bevy

AssetUsageRender MAIN_WORLD and RENDER_WORLD is confusing and not explicit and overlapping with MainWorld Resource

Open
#22,790 2 comments 0 reactions 0 assignees View on GitHub
A-Assets A-Rendering C-Docs C-Usability S-Needs-Design
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

Greetings, dear reader!

Was looking at CPU rendering example and the line:
`RenderAssetUsages::MAIN_WORLD | RenderAssetUsages::RENDER_WORLD`

is confusing. MAIN_WORLD feels so weird to say "this is loaded on CPU and RAM" and "RENDER_WORLD" is "loaded on GPU and VRAM" as per: [DOCS: struct.RenderAssetUsage](https://docs.rs/bevy/latest/bevy/asset/struct.RenderAssetUsages.html)

It gives me the feeling MAIN_WORLD is just..logic? processing? and no rendering yet it can also do rendering..so main and render world both..render? not just render_world as per its name?

And when a friend told me "do it in main world" I was given this the resource on google over the bit flag. Which made me confused "why does state of application help me render?" as per: [DOCS: struct.MainWorld](https://docs.rs/bevy/latest/bevy/render/struct.MainWorld.html)

I propose a rename for the constants to something more intuitive, perhaps `CPU_PROCESSING` AND `GPU_PROCESSING` for example. So its more intutive as "i want this cpu and ram or GPU and VRAM"

Thank you!

Contributor guide

Open the contributing guide

Research direction

Start with the CPU rendering example and compare the RenderAssetUsages documentation with the linked MainWorld documentation. Trace how MAIN_WORLD and RENDER_WORLD are described and used, then establish terminology before updating the API and its documentation consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics, game-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.