Skip to content

Interest in upstreaming re_renderer changes from a downstream fork (browser WGSL fixes, atomics-wasm, WebGL2 picking, optional crates)? #12893

Description

@virtualritz

Hello — asking before writing PRs, so I don't send you work you don't want.

We build a node-based 3D modeller (Akatela) on re_renderer, and have carried a fork for a while (~23 commits on top of main, plus merges). Some of it is clearly ours and belongs nowhere near upstream; some looks like it fixes things you'd hit too. I'd rather ask which, if any, you want than open a pile of PRs.

Probably useful to you -- portability and build-shape fixes, no behaviour change:

  1. Browser WGSL strictness (3 small shader fixes): add return after discard in the mesh picking layer; replace a trailing if/else-return pattern; use var + trailing return in camera_ray_to_world_pos. Some browsers' WGSL front-ends reject the current forms.
  2. Multi-threaded (atomics) wasm support -- plus making re_web::fs optional so atomics-wasm builds at all, and silencing dead-code warnings the atomics config produces in the error tracker.
  3. WebGL2-compatible mesh selection via the Limited device tier, for machines where WebGPU is unavailable or falls back to a software adapter.
  4. re_video/re_byte_size/re_tuid behind feature flags, for consumers that only want the renderer.
  5. Relaxing the wasm-bindgen =0.2.108 pin to 0.2.
  6. Slope-scaled depth bias for overlay lines and points.

Ours, and I'd expect you to say no -- listing for completeness: matcap shading (including an use_matcap == 0 albedo-at-corner-UV path), external depth-texture sharing with premultiplied compositing and depth-only/picking-only mesh modes, per-face element_id picking with a selection SSBO and hover/selection tinting, a wireframe selection cue, and a glam 0.33 bump (you're on 0.30, so that one is a fork artefact, not a proposal).

Questions

  • Is any of group 1–6 worth a PR? I'd send them separately and small, each rebased on current main.
  • For the WGSL fixes specifically: would you want them as-is, or do you have a preferred idiom for shaders that must pass every browser front-end?
  • If the answer is "none of it", that's a genuinely fine answer and saves us both time -- I'll keep them downstream and stop wondering.

Happy to provide the diffs or a branch for anything you want to look at first.

Metadata

Metadata

Assignees

Labels

❓ questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions