diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2016-09-08 17:56:24 +0900 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2016-09-09 19:03:24 +0900 |
commit | d6feed2cd78fe879aba4860a6d9bc2e388b9f135 (patch) | |
tree | fe367e513aee7bf2b5126523bd94371afed7b80a /src/drmmode_display.h | |
parent | 4927b84ec84bc0cb5055686cca6be54390f82803 (diff) |
Synchronize scanout pixmaps for TearFree
Copy the damaged areas which are still valid in the other scanout pixmap
from there, then only copy the remaining damaged area from the screen
pixmap.
This is slightly more efficient (only needs one Damage record instead of
two, and only needs to copy each screen update across PCIe once with
ShadowPrimary and a discrete GPU), and will be significantly more
efficient for PRIME with the following change.
(Ported from radeon commit eda1f3df6aaed683036369fe8820da4dac3c2ae2)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/drmmode_display.h')
-rw-r--r-- | src/drmmode_display.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/drmmode_display.h b/src/drmmode_display.h index e739382..6c5542c 100644 --- a/src/drmmode_display.h +++ b/src/drmmode_display.h @@ -73,7 +73,6 @@ typedef struct { struct drmmode_scanout { struct amdgpu_buffer *bo; PixmapPtr pixmap; - DamagePtr damage; unsigned fb_id; int width, height; }; @@ -85,6 +84,8 @@ typedef struct { struct amdgpu_buffer *cursor_buffer; struct drmmode_scanout rotate; struct drmmode_scanout scanout[2]; + DamagePtr scanout_damage; + RegionRec scanout_last_region; unsigned scanout_id; Bool scanout_update_pending; int dpms_mode; |