diff options
author | Christopher Michael <cp.michael@samsung.com> | 2019-01-02 11:05:07 -0500 |
---|---|---|
committer | Derek Foreman <derek.foreman.samsung@gmail.com> | 2019-01-17 09:37:33 -0600 |
commit | 8079d6d38a455dc548482353ff739cac82fdfc23 (patch) | |
tree | 8b010a20fa147a3a43ceaec34b44e09ae2a671e1 /src/lib/ecore_drm2 | |
parent | 1b7129cea0d90f76a21bd6b4e40d1528141e087f (diff) |
ecore-drm2: Pass output as data to drmModePageFlip and drmModeAtomicCommit
In order to support per-output ticking, the drmModePageFlip and
drmModeAtomicCommit functions need to pass the actual Output as data
to the pageflip callback so that the pageflip callback function can
pass the proper rectangle to ecore_evas_animator_tick
Differential Revision: https://phab.enlightenment.org/D7678
Diffstat (limited to 'src/lib/ecore_drm2')
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_fb.c | 6 | ||||
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_outputs.c | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c index 4e26fd765a..33c0e27570 100644 --- a/src/lib/ecore_drm2/ecore_drm2_fb.c +++ b/src/lib/ecore_drm2/ecore_drm2_fb.c | |||
@@ -411,7 +411,7 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) | |||
411 | } | 411 | } |
412 | 412 | ||
413 | ret = | 413 | ret = |
414 | sym_drmModeAtomicCommit(output->fd, req, flags, NULL); | 414 | sym_drmModeAtomicCommit(output->fd, req, flags, output); |
415 | if (ret < 0) goto err; | 415 | if (ret < 0) goto err; |
416 | 416 | ||
417 | /* clear any previous request */ | 417 | /* clear any previous request */ |
@@ -447,7 +447,7 @@ _fb_atomic_flip(Ecore_Drm2_Output *output) | |||
447 | 447 | ||
448 | res = | 448 | res = |
449 | sym_drmModeAtomicCommit(output->fd, output->prep.atomic_req, flags, | 449 | sym_drmModeAtomicCommit(output->fd, output->prep.atomic_req, flags, |
450 | output->user_data); | 450 | output); |
451 | if (res < 0) | 451 | if (res < 0) |
452 | { | 452 | { |
453 | ERR("Failed Atomic Commit: %m"); | 453 | ERR("Failed Atomic Commit: %m"); |
@@ -499,7 +499,7 @@ _fb_flip(Ecore_Drm2_Output *output) | |||
499 | static Eina_Bool bugged_about_bug = EINA_FALSE; | 499 | static Eina_Bool bugged_about_bug = EINA_FALSE; |
500 | repeat = EINA_FALSE; | 500 | repeat = EINA_FALSE; |
501 | ret = sym_drmModePageFlip(fb->fd, output->crtc_id, fb->id, | 501 | ret = sym_drmModePageFlip(fb->fd, output->crtc_id, fb->id, |
502 | DRM_MODE_PAGE_FLIP_EVENT, output->user_data); | 502 | DRM_MODE_PAGE_FLIP_EVENT, output); |
503 | /* Some drivers (RPI - looking at you) are broken and produce | 503 | /* Some drivers (RPI - looking at you) are broken and produce |
504 | * flip events before they are ready for another flip, so be | 504 | * flip events before they are ready for another flip, so be |
505 | * a little robust in the face of badness and try a few times | 505 | * a little robust in the face of badness and try a few times |
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index e39f26a6da..928a16c32d 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c | |||
@@ -1291,7 +1291,7 @@ _output_mode_atomic_set(Ecore_Drm2_Output *output, Ecore_Drm2_Output_Mode *mode) | |||
1291 | } | 1291 | } |
1292 | 1292 | ||
1293 | ret = sym_drmModeAtomicCommit(output->fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, | 1293 | ret = sym_drmModeAtomicCommit(output->fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, |
1294 | output->user_data); | 1294 | output); |
1295 | if (ret < 0) | 1295 | if (ret < 0) |
1296 | { | 1296 | { |
1297 | ERR("Failed to commit atomic Mode: %m"); | 1297 | ERR("Failed to commit atomic Mode: %m"); |
@@ -1538,7 +1538,7 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, int rotation) | |||
1538 | if (res < 0) goto err; | 1538 | if (res < 0) goto err; |
1539 | 1539 | ||
1540 | res = sym_drmModeAtomicCommit(output->fd, req, flags, | 1540 | res = sym_drmModeAtomicCommit(output->fd, req, flags, |
1541 | output->user_data); | 1541 | output); |
1542 | if (res < 0) | 1542 | if (res < 0) |
1543 | goto err; | 1543 | goto err; |
1544 | else | 1544 | else |