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 wgpu to 0.19 #3824

Merged
merged 37 commits into from
Jan 19, 2024
Merged

Update wgpu to 0.19 #3824

merged 37 commits into from
Jan 19, 2024

Conversation

emilk
Copy link
Owner

@emilk emilk commented Jan 15, 2024

Cargo.toml Outdated Show resolved Hide resolved
egui_demo_app_3.exe Outdated Show resolved Hide resolved
crates/egui_demo_app/Cargo.toml Show resolved Hide resolved
@emilk
Copy link
Owner Author

emilk commented Jan 15, 2024

We should show what backend (WebGPU or WebGL) is being used in the egui_demo_app GUI

@emilk emilk mentioned this pull request Jan 15, 2024
crates/eframe/Cargo.toml Outdated Show resolved Hide resolved
@emilk
Copy link
Owner Author

emilk commented Jan 18, 2024

glutin is locked at raw-window-handle 0.5, and wgpu at raw-window-handle 0.6. This is hell.

@torokati44
Copy link
Contributor

Is it still with rwh 0.6's anecdotal ability to coexist with 0.5, and convert between handles of the two versions? :/

@emilk emilk added eframe Relates to epi and eframe egui-wgpu labels Jan 18, 2024
@emilk emilk marked this pull request as ready for review January 18, 2024 13:47
@emilk
Copy link
Owner Author

emilk commented Jan 18, 2024

@Wumpf I only see the WebGL in the list of available adapters (from instance.enumerate_adapters(wgpu::Backends::all())) even in my chromium browser supporting WebGPU.

@Wumpf
Copy link
Collaborator

Wumpf commented Jan 18, 2024

enumerate_adapters is too late. WebGPU is unfortunately the anomaly where the instance has to decide whether it picks WebGPU. So now the question ofc why that one is not seeing WebGPU. For that it's important to specify the right parameters for instance creation. I can have a look

@Wumpf
Copy link
Collaborator

Wumpf commented Jan 18, 2024

@emilk after I finished writing the last comment I rememberd a weird anomaly I saw when testing this pr originally. Had to first double check again to confirm this. When you open the website on chrome via http://0.0.0.0:8888/ it will not work - in fact it doesn't even work from the javascript console then, you'll find that navigator.gpu is always undefined. If you however go to http://localhost:8888/ (which arguably makes more sense) it works just fine for me. Can you confirm?

@emilk
Copy link
Owner Author

emilk commented Jan 18, 2024

Yup, that was it 🤦 so weird

@emilk emilk merged commit b766a48 into master Jan 19, 2024
35 checks passed
@emilk emilk deleted the wgpu-update branch January 19, 2024 09:14

# Use this to build wgpu with WebGL support on the Web *instead* of using WebGPU.
#wgpu = { version = "0.18.0", features = ["webgl"] }
wgpu = { version = "0.19", features = [
Copy link
Contributor

Choose a reason for hiding this comment

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

I know this has already landed, but this really should be no-default-features at least for egui-wgpu

Copy link
Owner Author

Choose a reason for hiding this comment

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

Will fix!

Copy link
Owner Author

Choose a reason for hiding this comment

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

Here we go: #3875

emilk added a commit to rerun-io/rerun that referenced this pull request Jan 23, 2024
### What
This is so we can test things out before the next release, and also get
in some new egui features for the plot aggregator and drag-and-drop.

* Closes #4716
* Closes #4794

### TODO
* [x] Fix hovering ListItems in blueprint panel

### wgpu changelog
https://github.com/gfx-rs/wgpu/blob/trunk/CHANGELOG.md#v0190-2024-01-17

### relevant egui changelog (so far)

#### eframe
* Keep `ViewportInfo::maximized` and `minimized` up-to-date on Windows
[#3831](emilk/egui#3831) (thanks
[@rustbasic](https://github.com/rustbasic)!)
* Update wgpu to 0.19 [#3824](emilk/egui#3824)
* Fix: handle `IconData::default()` without crashing
[#3842](emilk/egui#3842)

#### egui_extras
* Fix unwraps in SVG scaling
[#3826](emilk/egui#3826) (thanks
[@amPerl](https://github.com/amPerl)!)
* Update to ehttp 0.4 [#3834](emilk/egui#3834)

#### egui_plot
* Make `egui_plot::PlotMemory` public
[#3871](emilk/egui#3871)

#### egui
* Selectable text in Labels
[#3814](emilk/egui#3814)
* `ComboBox`: add builder method for height
[#3001](emilk/egui#3001) (thanks
[@hinto-janai](https://github.com/hinto-janai)!)
* Add keys `?`, `/`, `|`
[#3820](emilk/egui#3820)
* Fix clickable widgets blocking scrolling on touch screens
[#3815](emilk/egui#3815) (thanks
[@lucasmerlin](https://github.com/lucasmerlin)!)
* Fix `stable_dt` [#3832](emilk/egui#3832)
* Bug Fix : `Response::is_pointer_button_down_on` is now false the frame
the button is released [#3833](emilk/egui#3833)
(thanks [@rustbasic](https://github.com/rustbasic)!)
* Use runtime knowledge of OS for OS-specific text editing
[#3840](emilk/egui#3840)
* Refactor: move text selection logic to own module
[#3843](emilk/egui#3843)
* Fix: dragging to above/below a `TextEdit` or `Label` will select text
to begin/end [#3858](emilk/egui#3858)
* Add `Response::contains_pointer`
[#3859](emilk/egui#3859)
* Always set `response.hovered` to false when dragging another widget
[#3860](emilk/egui#3860)
* Add `Align2::anchor_size`
[#3863](emilk/egui#3863)
* Add `Context::debug_text`
[#3864](emilk/egui#3864)

#### epaint
* Add `Align2::anchor_size`
[#3863](emilk/egui#3863)

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using newly built examples:
[app.rerun.io](https://app.rerun.io/pr/4885/index.html)
* Using examples from latest `main` build:
[app.rerun.io](https://app.rerun.io/pr/4885/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[app.rerun.io](https://app.rerun.io/pr/4885/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

- [PR Build Summary](https://build.rerun.io/pr/4885)
- [Docs
preview](https://rerun.io/preview/eb1bce846c3adb29b99d04018b002475994ad213/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/eb1bce846c3adb29b99d04018b002475994ad213/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

---------

Co-authored-by: Andreas Reich <r_andreas2@web.de>
white-axe added a commit to white-axe/Luminol that referenced this pull request Jan 31, 2024
white-axe added a commit to Astrabit-ST/Luminol that referenced this pull request Jan 31, 2024
* feat: wasm32 autobuild now builds webgl fallback binary as well

* feat: add feature detection for secure context and Firefox private browsing

* fix: fix panic when `handle.requestPermission()` method doesn't exist

* fix: use `__FILE_SYSTEM_TOOLS__.parseHandle` if it exists

* fix: update the trunk URL in the build workflow

* fix: fix `request_permission` binding being broken in Chromium

* merge: update eframe and egui-wgpu from 0.24.1 to 0.25.0

* chore: update egui, catppuccin-egui and other egui-related crates

* chore: fix update-induced compilation errors

* chore: clippy

* merge: update wgpu to 0.19

Based on emilk/egui#3824

* chore: fix more update-induced errors

* chore: remove DX12 push constants workaround (fixed in wgpu 0.19)

* feat: web build now has WebGPU and WebGL support in one binary

* fix: make eframe's secure context check use worker context

* chore: write upstream eframe and egui-wgpu version as 0.25.0

Chances are when the wgpu update changes land into a stable release of
egui, they're going to use a squash merge, so we have no choice but to
use commits from the egui master branch as the base commits for merges.

* chore: update Trunk to latest version

* chore: remove unnecessary dependency on glow

* chore: remove assets/webgpu-test-worker.js

* refactor: use relative public path

This allows easily serving Luminol web builds under any path (e.g.
https://example.com/luminol/ instead of https://example.com/).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
eframe Relates to epi and eframe egui-wgpu
Projects
None yet
Development

Successfully merging this pull request may close these issues.

WebGPU build broken
6 participants