summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2/ecore_drm2_outputs.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2019-02-17 13:33:25 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2019-02-21 09:52:31 +0000
commit39f224b3a65f10f3957d240582c63fafd7d2d524 (patch)
tree2583250cc2526461df674fe0b388cf4d3b30ecaa /src/lib/ecore_drm2/ecore_drm2_outputs.c
parent2c259edd9f6ed1d07e18eae0a2c6d0a8ce9bc6f3 (diff)
ecore drm2 - work around kms/drm bug seemingly when no flip event comes
so we request a flip so we can do vsync events. the flip event never comes. i am not sure why it never comes, but we ask and nothing arrives, and this basically halts all rendering in wayland compositor mode as we are syncing rendering to vsync (of course). put in a timeout of 0.05s (50ms) to try ask again if the event never comes and log the error. this is a pretty useful workaround becauswe having your entire display freeze is a ... bad thing. @fix
Diffstat (limited to 'src/lib/ecore_drm2/ecore_drm2_outputs.c')
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_outputs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index 557e33f5ab..a820f7d3f5 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -916,6 +916,8 @@ _output_destroy(Ecore_Drm2_Device *dev EINA_UNUSED, Ecore_Drm2_Output *output)
916 eina_stringshare_del(output->serial); 916 eina_stringshare_del(output->serial);
917 eina_stringshare_del(output->relative.to); 917 eina_stringshare_del(output->relative.to);
918 918
919 if (output->flip_timeout) ecore_timer_del(output->flip_timeout);
920
919 sym_drmModeFreeProperty(output->dpms); 921 sym_drmModeFreeProperty(output->dpms);
920 free(output->edid.blob); 922 free(output->edid.blob);
921 923