mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-07 13:08:04 +02:00
renderer-gl: Change init/destroy step for recovery
When recovering the renderer, skip non-GL steps in gl_renderer_destroy() and gl_renderer_display_create() Signed-off-by: Trigger Huang <Trigger.Huang@amd.com>
This commit is contained in:
parent
bdb78b2af6
commit
64713ca283
1 changed files with 16 additions and 1 deletions
|
|
@ -5147,6 +5147,13 @@ gl_renderer_destroy_context(struct weston_compositor *ec)
|
|||
EGL_NO_SURFACE, EGL_NO_SURFACE,
|
||||
EGL_NO_CONTEXT);
|
||||
|
||||
if (gr->recovering && gr->drm_device) {
|
||||
weston_dmabuf_feedback_destroy(ec->default_dmabuf_feedback);
|
||||
ec->default_dmabuf_feedback = NULL;
|
||||
weston_dmabuf_feedback_format_table_destroy(ec->dmabuf_feedback_format_table);
|
||||
ec->dmabuf_feedback_format_table = NULL;
|
||||
}
|
||||
|
||||
wl_list_for_each_safe(format, next_format, &gr->dmabuf_formats, link)
|
||||
dmabuf_format_destroy(format);
|
||||
|
||||
|
|
@ -5169,6 +5176,11 @@ gl_renderer_destroy(struct weston_compositor *ec)
|
|||
{
|
||||
struct gl_renderer *gr = get_renderer(ec);
|
||||
|
||||
if (gr->recovering) {
|
||||
gl_renderer_destroy_context(ec);
|
||||
return;
|
||||
}
|
||||
|
||||
wl_signal_emit(&gr->destroy_signal, gr);
|
||||
|
||||
gl_renderer_destroy_context(ec);
|
||||
|
|
@ -5344,11 +5356,14 @@ static int
|
|||
gl_renderer_display_create(struct weston_compositor *ec,
|
||||
const struct gl_renderer_display_options *options)
|
||||
{
|
||||
struct gl_renderer *gr;
|
||||
struct gl_renderer *gr = get_renderer(ec);
|
||||
const struct pixel_format_info *info;
|
||||
int nformats, i, j;
|
||||
bool supported;
|
||||
|
||||
if (gr && gr->recovering)
|
||||
return gl_renderer_init_context(ec, options);
|
||||
|
||||
gr = zalloc(sizeof *gr);
|
||||
if (gr == NULL)
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue