Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to wgpu 0.17 & latest egui #2980

Merged
merged 10 commits into from
Aug 16, 2023
Merged

Update to wgpu 0.17 & latest egui #2980

merged 10 commits into from
Aug 16, 2023

Conversation

Wumpf
Copy link
Member

@Wumpf Wumpf commented Aug 14, 2023

What

  • Depends on Improved wgpu callbacks emilk/egui#3253
    • allows for a bit nicer callback handling on our side. Still not amazing but quite a bit better I reckon (no more locks and additional ref counting on our side!). I was hoping to use the new, more flexible shared_paint_callback_resources to store ViewBuilder, but it can't be accessed without a handle to the eframe renderer.
      The end goal would be to get rid of re_renderer's per_frame_data_helper. This will likely be enabled with wgpu's "Arcanization" effort as this will eliminate wgpu::RenderPass's lifetime dependency. In that case we could store a Mutex<ViewBuilder> on ReRendererCallback 🤔
  • For the forseeable future we'll have to enable fragile-send-sync-non-atomic-wasm on wgpu (luckily egui itself no longer has this restriction). The problem is that a lot of our infrastructure is built around assuming Send/Sync whereas in actuality webgpu rendering resources can't be shared accross threads easily.
  • Had to (discover and) work around [glsl-out] Incorrect rounding for max-float constant expression gfx-rs/wgpu#4568

Checklist

Copy link
Member

@abey79 abey79 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very glad to have this! I'm hardly able to comment about the code, but I made a note of my new favourite egui commit :)

Cargo.toml Outdated Show resolved Hide resolved
@Wumpf Wumpf added ui concerns graphical user interface 🔺 re_renderer affects re_renderer itself dependencies concerning crates, pip packages etc labels Aug 15, 2023
@Wumpf
Copy link
Member Author

Wumpf commented Aug 15, 2023

Depends on emilk/egui#3260 now

@Wumpf Wumpf marked this pull request as ready for review August 15, 2023 18:15
@Wumpf
Copy link
Member Author

Wumpf commented Aug 16, 2023

Last commit fixes a Chrome only bug that Naga doesn't catch yet, see gfx-rs/naga#2439
With that this version runs fine with WebGPU & Chrome again :)

@Wumpf
Copy link
Member Author

Wumpf commented Aug 16, 2023

(note that this fix was unrelated to the update here; this is rather keeping up with Chrome / the spec)

@Wumpf
Copy link
Member Author

Wumpf commented Aug 16, 2023

ignoring failed pr body update ci

@Wumpf Wumpf merged commit a0ac010 into main Aug 16, 2023
22 of 24 checks passed
@Wumpf Wumpf deleted the andreas/update-wgpu branch August 16, 2023 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies concerning crates, pip packages etc 🔺 re_renderer affects re_renderer itself ui concerns graphical user interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants