Merge branch 'renderer-drm-devid' into 'master'

render: replace wlr_renderer_get_drm_fd() with drm_dev_id

See merge request wlroots/wlroots!4368
This commit is contained in:
Simon Ser 2024-08-04 06:57:04 +00:00
commit 779f37e846
15 changed files with 177 additions and 225 deletions

View file

@ -201,15 +201,14 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) {
struct wlr_drm *wlr_drm_create(struct wl_display *display,
struct wlr_renderer *renderer) {
int drm_fd = wlr_renderer_get_drm_fd(renderer);
if (drm_fd < 0) {
wlr_log(WLR_ERROR, "Failed to get DRM FD from renderer");
if (renderer->drm_dev_id == NULL) {
wlr_log(WLR_ERROR, "Failed to get DRM device from renderer");
return NULL;
}
drmDevice *dev = NULL;
if (drmGetDevice2(drm_fd, 0, &dev) != 0) {
wlr_log(WLR_ERROR, "drmGetDevice2 failed");
if (drmGetDeviceFromDevId(*renderer->drm_dev_id, 0, &dev) != 0) {
wlr_log(WLR_ERROR, "drmGetDeviceFromDevId failed");
return NULL;
}

View file

@ -1087,16 +1087,11 @@ bool wlr_linux_dmabuf_feedback_v1_init_with_options(struct wlr_linux_dmabuf_feed
*feedback = (struct wlr_linux_dmabuf_feedback_v1){0};
int renderer_drm_fd = wlr_renderer_get_drm_fd(options->main_renderer);
if (renderer_drm_fd < 0) {
wlr_log(WLR_ERROR, "Failed to get renderer DRM FD");
goto error;
}
dev_t renderer_dev;
if (!devid_from_fd(renderer_drm_fd, &renderer_dev)) {
if (options->main_renderer->drm_dev_id == NULL) {
goto error;
}
dev_t renderer_dev = *options->main_renderer->drm_dev_id;
feedback->main_device = renderer_dev;
const struct wlr_drm_format_set *renderer_formats =