diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-06-09 08:58:15 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-06-09 14:57:57 +0100 |
commit | 3932e97057fca16615adaefbc1eb25a0d51a1d8b (patch) | |
tree | 34cfc923aadfba5599a4e6ff32b0ffe896de85c2 /src/sna/sna.h | |
parent | af3130cbba8375b9060a3a8cef5b03189d01c419 (diff) |
sna/dri2: Allow TearFree flipping to individual CRTC
Baby step. We first take advantage of TearFree to allow us to redirect a
single CRTC to the DRI2 frontbuffer and so allow a fullscreen game
covering a single monitor to avoid expensive blits when running in a
multi-monitor setup.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna.h')
-rw-r--r-- | src/sna/sna.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/sna/sna.h b/src/sna/sna.h index 31f80a0d..2238e803 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -291,6 +291,8 @@ struct sna { int max_crtc_width, max_crtc_height; RegionRec shadow_region; + struct list shadow_crtc; + bool shadow_dirty; unsigned num_real_crtc; unsigned num_real_output; @@ -424,6 +426,8 @@ extern void sna_mode_check(struct sna *sna); extern void sna_mode_reset(struct sna *sna); extern void sna_mode_wakeup(struct sna *sna); extern void sna_mode_redisplay(struct sna *sna); +extern void sna_shadow_set_crtc(struct sna *sna, xf86CrtcPtr crtc, struct kgem_bo *bo); +extern void sna_shadow_unset_crtc(struct sna *sna, xf86CrtcPtr crtc); extern void sna_pixmap_discard_shadow_damage(struct sna_pixmap *priv, RegionPtr region); extern void sna_mode_close(struct sna *sna); @@ -570,7 +574,8 @@ extern bool sna_crtc_set_sprite_rotation(xf86CrtcPtr crtc, uint32_t rotation); extern int sna_crtc_to_pipe(xf86CrtcPtr crtc); extern uint32_t sna_crtc_to_sprite(xf86CrtcPtr crtc); extern uint32_t sna_crtc_id(xf86CrtcPtr crtc); -extern int sna_crtc_is_on(xf86CrtcPtr crtc); +extern bool sna_crtc_is_on(xf86CrtcPtr crtc); +extern bool sna_crtc_is_transformed(xf86CrtcPtr crtc); CARD32 sna_format_for_depth(int depth); CARD32 sna_render_format_for_depth(int depth); @@ -688,6 +693,7 @@ sna_pixmap_undo_cow(struct sna *sna, struct sna_pixmap *priv, unsigned flags); #define MOVE_WHOLE_HINT 0x20 #define __MOVE_FORCE 0x40 #define __MOVE_DRI 0x80 +#define __MOVE_SCANOUT 0x100 struct sna_pixmap * sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int flags); |