diff --git a/.pick_status.json b/.pick_status.json index d82c468f992..61013006214 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1574,7 +1574,7 @@ "description": "loader: Report DRI_PRIME errors earlier", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "ea84b85887a147b38a2a168e37c3d1f19c94b1b3", "notes": null diff --git a/src/loader/loader.c b/src/loader/loader.c index 98bd9121220..947eb0b6772 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -583,21 +583,18 @@ bool loader_get_user_preferred_fd(int *fd_render_gpu, int *original_fd) log_(debug ? _LOADER_WARNING : _LOADER_INFO, "selected (%s)\n", devices[i]->nodes[DRM_NODE_RENDER]); fd = loader_open_device(devices[i]->nodes[DRM_NODE_RENDER]); + if (fd < 0) { + log_(debug ? _LOADER_WARNING : _LOADER_INFO, + "DRI_PRIME: failed to open '%s'\n", + devices[i]->nodes[DRM_NODE_RENDER]); + } break; } drmFreeDevices(devices, num_devices); - if (i == num_devices) + if (i == num_devices || fd < 0) goto err; - if (fd < 0) { - log_(debug ? _LOADER_WARNING : _LOADER_INFO, - "DRI_PRIME: failed to open '%s'\n", - devices[i]->nodes[DRM_NODE_RENDER]); - - goto err; - } - bool is_render_and_display_gpu_diff = !!strcmp(default_tag, prime.str); if (original_fd) { if (is_render_and_display_gpu_diff) {