mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-17 06:46:39 -04:00
Merge branch 'parent_renderer' into 'master'
backend/drm: always create multigpu renderers for primary device See merge request wlroots/wlroots!4556
This commit is contained in:
commit
bc946ced77
1 changed files with 14 additions and 20 deletions
|
|
@ -53,9 +53,7 @@ static void backend_destroy(struct wlr_backend *backend) {
|
||||||
wl_list_remove(&drm->dev_change.link);
|
wl_list_remove(&drm->dev_change.link);
|
||||||
wl_list_remove(&drm->dev_remove.link);
|
wl_list_remove(&drm->dev_remove.link);
|
||||||
|
|
||||||
if (drm->parent) {
|
|
||||||
finish_drm_renderer(&drm->mgpu_renderer);
|
finish_drm_renderer(&drm->mgpu_renderer);
|
||||||
}
|
|
||||||
|
|
||||||
finish_drm_resources(drm);
|
finish_drm_resources(drm);
|
||||||
|
|
||||||
|
|
@ -224,7 +222,6 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session,
|
||||||
goto error_event;
|
goto error_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (drm->parent) {
|
|
||||||
if (!init_drm_renderer(drm, &drm->mgpu_renderer)) {
|
if (!init_drm_renderer(drm, &drm->mgpu_renderer)) {
|
||||||
wlr_log(WLR_ERROR, "Failed to initialize renderer");
|
wlr_log(WLR_ERROR, "Failed to initialize renderer");
|
||||||
goto error_resources;
|
goto error_resources;
|
||||||
|
|
@ -235,11 +232,10 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session,
|
||||||
struct wlr_renderer *renderer = drm->mgpu_renderer.wlr_rend;
|
struct wlr_renderer *renderer = drm->mgpu_renderer.wlr_rend;
|
||||||
const struct wlr_drm_format_set *texture_formats =
|
const struct wlr_drm_format_set *texture_formats =
|
||||||
wlr_renderer_get_dmabuf_texture_formats(renderer);
|
wlr_renderer_get_dmabuf_texture_formats(renderer);
|
||||||
if (texture_formats == NULL) {
|
// Some configurations (alpine CI job) will have a renderer here that does not
|
||||||
wlr_log(WLR_ERROR, "Failed to query renderer texture formats");
|
// support dmabuf formats. We don't want to fail creation of the drm backend
|
||||||
goto error_mgpu_renderer;
|
// as a result of this, we simply don't populate the format set in that case.
|
||||||
}
|
if (texture_formats) {
|
||||||
|
|
||||||
// Forbid implicit modifiers, because their meaning changes from one
|
// Forbid implicit modifiers, because their meaning changes from one
|
||||||
// GPU to another.
|
// GPU to another.
|
||||||
for (size_t i = 0; i < texture_formats->len; i++) {
|
for (size_t i = 0; i < texture_formats->len; i++) {
|
||||||
|
|
@ -259,8 +255,6 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session,
|
||||||
|
|
||||||
return &drm->backend;
|
return &drm->backend;
|
||||||
|
|
||||||
error_mgpu_renderer:
|
|
||||||
finish_drm_renderer(&drm->mgpu_renderer);
|
|
||||||
error_resources:
|
error_resources:
|
||||||
finish_drm_resources(drm);
|
finish_drm_resources(drm);
|
||||||
error_event:
|
error_event:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue