diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2017-06-02 11:38:01 -0500 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2017-06-02 15:50:08 -0500 |
commit | 0df7299526db2b361fbe37d554f4b590b78b5b91 (patch) | |
tree | 8abee0da8457ee527623c45f1a2777aafdc29aa3 /src/lib/ecore_drm2/ecore_drm2_outputs.c | |
parent | df0595ebc0fb2de8940864748ea128925ae54ea6 (diff) |
ecore_drm2: Properly release buffers on output disable
Give back all buffers, and do it through the release mechanism that can
fire a callback into the engine.
Previously we just leaked one and left the rest.
Diffstat (limited to 'src/lib/ecore_drm2/ecore_drm2_outputs.c')
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_outputs.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index 60e4f8e7d8..b288679503 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c | |||
@@ -1247,8 +1247,15 @@ ecore_drm2_output_enabled_set(Ecore_Drm2_Output *output, Eina_Bool enabled) | |||
1247 | ecore_drm2_fb_flip(NULL, output); | 1247 | ecore_drm2_fb_flip(NULL, output); |
1248 | 1248 | ||
1249 | ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_OFF); | 1249 | ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_OFF); |
1250 | output->current.fb = NULL; | 1250 | |
1251 | /* output->next.fb = NULL; */ | 1251 | if (output->current.fb) |
1252 | _ecore_drm2_fb_buffer_release(output, &output->current); | ||
1253 | |||
1254 | if (output->next.fb) | ||
1255 | _ecore_drm2_fb_buffer_release(output, &output->next); | ||
1256 | |||
1257 | if (output->pending.fb) | ||
1258 | _ecore_drm2_fb_buffer_release(output, &output->pending); | ||
1252 | } | 1259 | } |
1253 | 1260 | ||
1254 | _output_event_send(output); | 1261 | _output_event_send(output); |