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

Multiseat support with DRM lease #48

Open
garlett opened this issue Aug 12, 2024 · 4 comments
Open

Multiseat support with DRM lease #48

garlett opened this issue Aug 12, 2024 · 4 comments

Comments

@garlett
Copy link

garlett commented Aug 12, 2024

I am considering to patch aquamarine, to use drm lease from automotive linux drm lease manager.
I have a stub patch for wlroots commented on this issue. But I need help to adapt it on aquamarine.

Does hyprland pass the the current seat name to libseat? (yes: env?argument? no: where to patch?)

In my case, the udev enumeration will return no devices, because logind/elogind/seatd does not alocate it.
Do you think that on the beggining of scanGPUs, something like this works?

struct dlm_lease *lease = dlm_get_lease(getenv("DRM_LEASE"));
fd = dlm_lease_fd(lease);
fstat(fd, &s);
device = udev_device_new_from_devnum(  backend->session->udevHandle, 'c', s.st_rdev );

vecDevices.push_back( CSessionDevice::openIfKMS(backend->session, udev_device_get_devnode(device)) );
return vecDevices;

thx

@vaxerski
Copy link
Member

I am not very knowledgeable in the area, but for the seat question:

image

The seat name is automatic

@garlett
Copy link
Author

garlett commented Aug 13, 2024

code above on wlroots, but they have this wlr_seat_create too

Weston sets to 'seat0' when no arg --seat is passed, I tried to remove that and, hopping that env "XDG_SEAT" was used by logind, then the seat manager probably set to 'seat0' too.

the gpuscan bypass that I 'wrote', is supposed to get the leaseFD and create a udev device, then return the result of CSessionDevice::openIfKMS.

I was going to do this inside seatd, but it do not support multiseat yet.

About merge (with an #ifdef ), is it possible ? (at least until I can move to seatd)

@vaxerski
Copy link
Member

if you want to merge some code, make a MR and we'll discuss there. I am unsure I understand what you want to do

@garlett
Copy link
Author

garlett commented Aug 13, 2024

Sorry, its multiseat with more than one seat per gpu, it's working with weston.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants