Comments (5)
Thanks for reporting this. The intent behind separating surface and device creation is to support multiple windows (which may come and go, particularly in UI contexts) that can share resources on a single device. If the current design is failing on dual GPU setups, itβs definitely something that we need to address even if that makes the API less pleasant.
I am curious about the error message. Is it general surface incompatibility or is the format (we unconditionally choose Bgra8Unorm) incompatible?
from vello.
The error message is Error in Surface::configure: surface does not support the adapter's queue family
, so it seems not to be pixel format, but idk how to check.
from vello.
IMO it would be good to have error handling at surface creation time, to request an adapter that is compatible with the new surface if the current adapter is not, and then continue using both adapters for their respective surfaces. This means that if I have 2 cards with 1 display each then my app can draw to surfaces on both displays simultaneously without incompatibility issues, which might not be possible if vello only keeps one adapter around. Helpfully, it also solves the original problem :P
Here's hoping it's not too hard to add multi-adapter support?
from vello.
Just a little note, I had a similar report recently, and while at first glance use of a compatible_surface
to ensure compatibility may appear a good idea, my conclusion was that this only really does anything for users with multiple GPUs (in the reporter's case, Intel iGPU + NVidia discrete graphics). The better solution, for a general purpose GUI, is to make the surface compatible with as many adapters as possible (including old Intel iGPUs).
from vello.
Looks like you did that by using the fifo present mode, but vello was already using that before my change, and still didn't work.
FWIW if I "remove" my nvidia vulkan driver, vello works fine (albeit very slowly) regardless of Wayland, X11, #227 or no #227. Maybe that's the bigger problem - wgpu is selecting the nvidia driver very aggressively. Even with PowerPreference::LowPower
I can't get it to ignore the nvidia device.
from vello.
Related Issues (20)
- Snapshot testing
- Add basic tests HOT 3
- Serde support for re-exported Peniko types HOT 1
- Rendering issue when clipping and stroking the same path HOT 5
- How: `scene.append_with_opacity(scene)` HOT 3
- IOS app crash 0.2.1 HOT 1
- Drop shadows HOT 2
- Corruption issue with clipping HOT 4
- Clips cause compute shaders to take 10 seconds and results in corruption
- Infinitesimal stroked bezier fills whole tile HOT 4
- Examples don't run on Raspberry Pi 4 HOT 12
- Vello image rendering artifacts? HOT 3
- High GPU usage and Slow Framerate on Integrated Graphics. HOT 12
- Ability to directly use a wgpu::Texture instead of a peniko::Image. HOT 2
- Zero-width stroke acts as fill HOT 4
- Better API for already GPU-resident images HOT 2
- Add an API to reserve a scene HOT 2
- Stack of scaled layers breaks at certain window size HOT 3
- Incorrect COLR Emoji Rendering
- Sparse strip path rendering HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vello.