WIP: wgpu renderer #35
No reviewers
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: canary/canary-rs#35
Loading…
Reference in New Issue
No description provided.
Delete Branch "wgpu-renderer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR adds a dedicated wgpu renderer crate for Canary and replaces Magpie's glium-based windowing and rendering with wgpu + winit. Resolves #20.
This can't be merged yet because of winit/wgpu's poor behavior on Wayland + Nvidia. Because myself and the other current contributors are all Wayland + Nvidia users, this PR cannot be merged until this behavior is fixed. Here's what needs to be fixed:
Error in Surface::configure: parent device is lost
unless winit is forced to run in XWayland with an environment variable:WINIT_UNIX_BACKEND=x11
Error in Surface::configure: parent device is lost
or lock up and require a force quit when a window is continuously resized for more than a few secondsThese all seem to be wgpu<->winit swapchain issues. I do not know enough about the internals of Wayland or wgpu to figure out how to fix these, and we will most likely need to at the very least open issues on wgpu describing these issues in more depth and probably contribute to wgpu ourselves.
Clues about where to go from here:
I've tested vkcube on my computer and it suffers from the same issues. This isn't a wgpu problem; it's a Linux Nvidia driver error.
More non-wgpu-related examples in the wild:
Step 1:
From your project repository, check out a new branch and test the changes.Step 2:
Merge the changes and update on Forgejo.