mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
Merge branch 'match-platform-device' into 'master'
Draft: render: open platform device render node See merge request wlroots/wlroots!4372
This commit is contained in:
commit
e6d9aa5d62
8 changed files with 133 additions and 130 deletions
|
|
@ -214,15 +214,13 @@ struct wlr_drm *wlr_drm_create(struct wl_display *display,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
char *node_name = NULL;
|
||||
if (dev->available_nodes & (1 << DRM_NODE_RENDER)) {
|
||||
node_name = strdup(dev->nodes[DRM_NODE_RENDER]);
|
||||
} else {
|
||||
assert(dev->available_nodes & (1 << DRM_NODE_PRIMARY));
|
||||
wlr_log(WLR_DEBUG, "No DRM render node available, "
|
||||
"falling back to primary node '%s'", dev->nodes[DRM_NODE_PRIMARY]);
|
||||
node_name = strdup(dev->nodes[DRM_NODE_PRIMARY]);
|
||||
if (!(dev->available_nodes & (1 << DRM_NODE_RENDER))) {
|
||||
wlr_log(WLR_DEBUG, "No DRM render node available");
|
||||
drmFreeDevice(&dev);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *node_name = strdup(dev->nodes[DRM_NODE_RENDER]);
|
||||
drmFreeDevice(&dev);
|
||||
if (node_name == NULL) {
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -884,24 +884,20 @@ static bool set_default_feedback(struct wlr_linux_dmabuf_v1 *linux_dmabuf,
|
|||
goto error_compiled;
|
||||
}
|
||||
|
||||
const char *name = NULL;
|
||||
if (device->available_nodes & (1 << DRM_NODE_RENDER)) {
|
||||
name = device->nodes[DRM_NODE_RENDER];
|
||||
} else {
|
||||
// Likely a split display/render setup
|
||||
assert(device->available_nodes & (1 << DRM_NODE_PRIMARY));
|
||||
name = device->nodes[DRM_NODE_PRIMARY];
|
||||
wlr_log(WLR_DEBUG, "DRM device %s has no render node, "
|
||||
"falling back to primary node", name);
|
||||
}
|
||||
|
||||
int main_device_fd = open(name, O_RDWR | O_CLOEXEC);
|
||||
drmFreeDevice(&device);
|
||||
if (main_device_fd < 0) {
|
||||
wlr_log_errno(WLR_ERROR, "Failed to open DRM device %s", name);
|
||||
if (!(device->available_nodes & (1 << DRM_NODE_RENDER))) {
|
||||
wlr_log(WLR_DEBUG, "DRM device has no render node");
|
||||
goto error_compiled;
|
||||
}
|
||||
|
||||
const char *name = device->nodes[DRM_NODE_RENDER];
|
||||
int main_device_fd = open(name, O_RDWR | O_CLOEXEC);
|
||||
if (main_device_fd < 0) {
|
||||
wlr_log_errno(WLR_ERROR, "Failed to open DRM device %s", name);
|
||||
drmFreeDevice(&device);
|
||||
goto error_compiled;
|
||||
}
|
||||
drmFreeDevice(&device);
|
||||
|
||||
size_t tranches_len =
|
||||
feedback->tranches.size / sizeof(struct wlr_linux_dmabuf_feedback_v1_tranche);
|
||||
const struct wlr_linux_dmabuf_feedback_v1_tranche *tranches = feedback->tranches.data;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue