mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 11:38:05 +02:00
frontends/dri: only release pipe when screen init fails
the caller (driCreateNewScreen3) will always call dri_destroy_screen()
when these functions return failure, so releasing the screen
is always wrong
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29021>
(cherry picked from commit a1225e81c9)
This commit is contained in:
parent
6d23f70e79
commit
254b300f6b
4 changed files with 7 additions and 7 deletions
|
|
@ -514,7 +514,7 @@
|
|||
"description": "frontends/dri: only release pipe when screen init fails",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -2385,7 +2385,7 @@ dri2_init_screen(struct dri_screen *screen)
|
|||
pscreen = pipe_loader_create_screen(screen->dev);
|
||||
|
||||
if (!pscreen)
|
||||
goto fail;
|
||||
return NULL;
|
||||
|
||||
dri_init_options(screen);
|
||||
screen->throttle = pscreen->get_param(pscreen, PIPE_CAP_THROTTLE);
|
||||
|
|
@ -2419,7 +2419,7 @@ dri2_init_screen(struct dri_screen *screen)
|
|||
return configs;
|
||||
|
||||
fail:
|
||||
dri_release_screen(screen);
|
||||
pipe_loader_release(&screen->dev, 1);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -565,7 +565,7 @@ drisw_init_screen(struct dri_screen *screen)
|
|||
pscreen = pipe_loader_create_screen(screen->dev);
|
||||
|
||||
if (!pscreen)
|
||||
goto fail;
|
||||
return NULL;
|
||||
|
||||
dri_init_options(screen);
|
||||
configs = dri_init_screen(screen, pscreen);
|
||||
|
|
@ -593,7 +593,7 @@ drisw_init_screen(struct dri_screen *screen)
|
|||
|
||||
return configs;
|
||||
fail:
|
||||
dri_release_screen(screen);
|
||||
pipe_loader_release(&screen->dev, 1);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ kopper_init_screen(struct dri_screen *screen)
|
|||
pscreen = pipe_loader_create_screen(screen->dev);
|
||||
|
||||
if (!pscreen)
|
||||
goto fail;
|
||||
return NULL;
|
||||
|
||||
dri_init_options(screen);
|
||||
screen->unwrapped_screen = trace_screen_unwrap(pscreen);
|
||||
|
|
@ -167,7 +167,7 @@ kopper_init_screen(struct dri_screen *screen)
|
|||
|
||||
return configs;
|
||||
fail:
|
||||
dri_release_screen(screen);
|
||||
pipe_loader_release(&screen->dev, 1);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue