mirror of
https://github.com/hyprwm/hyprlock.git
synced 2026-05-05 12:27:59 +02:00
Merge f6386bee38 into d099f87d36
This commit is contained in:
commit
5545989d87
1 changed files with 14 additions and 1 deletions
|
|
@ -94,8 +94,8 @@ static void handlePollTerminate(int sig) {
|
|||
static char* gbm_find_render_node(drmDevice* device) {
|
||||
drmDevice* devices[64];
|
||||
char* render_node = nullptr;
|
||||
|
||||
int n = drmGetDevices2(0, devices, sizeof(devices) / sizeof(devices[0]));
|
||||
|
||||
for (int i = 0; i < n; ++i) {
|
||||
drmDevice* dev = devices[i];
|
||||
if (device && !drmDevicesEqual(device, dev)) {
|
||||
|
|
@ -108,6 +108,19 @@ static char* gbm_find_render_node(drmDevice* device) {
|
|||
break;
|
||||
}
|
||||
|
||||
/* Select any available render node in case the device does not have one */
|
||||
if (!render_node) {
|
||||
for (int i = 0; i < n; ++i) {
|
||||
drmDevice* dev = devices[i];
|
||||
if (device && drmDevicesEqual(device, dev))
|
||||
continue; // skip the one we already tried
|
||||
if (dev->available_nodes & (1 << DRM_NODE_RENDER)) {
|
||||
render_node = strdup(dev->nodes[DRM_NODE_RENDER]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
drmFreeDevices(devices, n);
|
||||
return render_node;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue