summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2018-06-15 18:27:46 +0200
committerMichel Dänzer <michel@daenzer.net>2018-07-09 18:27:13 +0200
commit90b94d40449f665f2d12874598062a5e5e5b64cd (patch)
tree6f46c8964873a5ea4c823955252b2dcdb199efbb /src
parent5da2bf43e64f2d702fe05016263f617c10f8f134 (diff)
Move flush from radeon_scanout_do_update to its callers
No functional change intended. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src')
-rw-r--r--src/drmmode_display.c2
-rw-r--r--src/radeon_kms.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index c7bec59c..54b09730 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -785,6 +785,7 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
radeon_scanout_do_update(crtc, scanout_id,
screen->GetWindowPixmap(screen->root),
*box);
+ radeon_cs_flush_indirect(scrn);
radeon_bo_wait(drmmode_crtc->scanout[scanout_id].bo);
}
}
@@ -3225,6 +3226,7 @@ Bool radeon_do_pageflip(ScrnInfoPtr scrn, ClientPtr client,
radeon_scanout_do_update(crtc, scanout_id, new_front,
extents);
+ radeon_cs_flush_indirect(crtc->scrn);
drmmode_crtc_wait_pending_event(drmmode_crtc, pRADEONEnt->fd,
drmmode_crtc->scanout_update_pending);
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 7ff66bf3..8579aaf8 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -985,8 +985,6 @@ radeon_scanout_do_update(xf86CrtcPtr xf86_crtc, int scanout_id,
FreeScratchGC(gc);
}
- radeon_cs_flush_indirect(scrn);
-
info->accel_state->force = force;
return TRUE;
@@ -1013,8 +1011,10 @@ radeon_scanout_update_handler(xf86CrtcPtr crtc, uint32_t frame, uint64_t usec,
drmmode_crtc->dpms_mode == DPMSModeOn) {
if (radeon_scanout_do_update(crtc, drmmode_crtc->scanout_id,
screen->GetWindowPixmap(screen->root),
- region->extents))
+ region->extents)) {
+ radeon_cs_flush_indirect(crtc->scrn);
RegionEmpty(region);
+ }
}
radeon_scanout_update_abort(crtc, event_data);
@@ -1096,6 +1096,8 @@ radeon_scanout_flip(ScreenPtr pScreen, RADEONInfoPtr info,
pScreen->GetWindowPixmap(pScreen->root),
region->extents))
return;
+
+ radeon_cs_flush_indirect(scrn);
RegionEmpty(region);
drm_queue_seq = radeon_drm_queue_alloc(xf86_crtc,