Enerccio / ewlc

Wayland compositor library - extended
MIT License
20 stars 3 forks source link

Support multiple "cards" #19

Closed Enerccio closed 7 years ago

Enerccio commented 7 years ago

Issue by Cloudef Wednesday Mar 04, 2015 at 17:00 GMT Originally opened as https://github.com/Cloudef/wlc/issues/11


Currently wlc is hardcoded to card0, but multiple cards is possiblity and even render nodes. It should also be possible to have outputs tied to cards instead of whole drm system, this would allow multiple GPUs used with multiple outputs.

Enerccio commented 7 years ago

Comment by onny Wednesday Mar 25, 2015 at 16:51 GMT


I wonder how xwayland applications would behave in this scenario? Is there something like multi-gpu support for xwayland?!

Enerccio commented 7 years ago

Comment by Cloudef Wednesday Mar 25, 2015 at 17:22 GMT


Good question. I have no idea and it should be tested. We may need to open xwayland for each GPU.

Edit: Though this obviously does not work since we can't have output specific env variable for DISPLAY heh.

Enerccio commented 7 years ago

Comment by Cloudef Sunday Mar 29, 2015 at 10:39 GMT


We should also autodetect primary card here, instead of assuming card0.

Enerccio commented 7 years ago

Comment by onny Tuesday May 12, 2015 at 14:23 GMT


This info might be related: Wayland On Mesa Now Supports DRI_PRIME, Render Nodes https://phoronix.com/scan.php?page=news_item&px=Wayland-DRI-PRIME-Mesa-Nodes

Enerccio commented 7 years ago

Comment by CodeOneTwo Thursday Jun 02, 2016 at 08:59 GMT


Can anyone provide a little insight on what is needed to support DRI_PRIME in wlc. I have a Docking Station for the Dell XPS (displaylink) that shows up as a second GPU in X11.

Enerccio commented 7 years ago

Comment by Cloudef Thursday Jun 02, 2016 at 09:38 GMT


Prime needs basically drm backend instance for each card. Same kind of thing is needed to support multiple displays on different GPU's. All the dirty work regarding support between GPUs should be handled by mesa as far I understand. That is copying rendered buffer to another GPU so it can push it to the display controller. This has bit of cost though, this is unavoidable with hybrid GPUs I guess, but with multi GPU + multi display setup, as long as you keep the buffer on the connected display controller there is no overhead.