summaryrefslogtreecommitdiff
path: root/src/sna/sna.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-09-15 11:36:20 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-09-15 11:41:38 +0100
commitd470f0f520f6bd160ae4acef2b4b3c86afd8dbbd (patch)
tree1a6d94cdc2bdc352a4bd512f3ae781008b62877a /src/sna/sna.h
parent435fe185e335a147f5edb803561509e1f0cb4e70 (diff)
sna: Last ditch attempt to make extra large batches fit
If we have unfortunate fragmentation, e.g. a cursor is pinned in the middle of an aperture, we can struggle to fit large objects, especially fenced objects on gen2/gen3. We do have one last trick up our sleeves that we can try: disable all of the outputs and cursors and try submitting the batch in as pristine an aperture as we can arrange. We can only hope that the subsequent restoration of the outputs is more conducive to future batches (and so not lead us into continual flicker). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna.h')
-rw-r--r--src/sna/sna.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/sna/sna.h b/src/sna/sna.h
index ad74870a..04ee35c9 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -426,6 +426,8 @@ bool sna_mode_wants_tear_free(struct sna *sna);
void sna_mode_adjust_frame(struct sna *sna, int x, int y);
extern void sna_mode_discover(struct sna *sna);
extern void sna_mode_check(struct sna *sna);
+extern bool sna_mode_disable(struct sna *sna);
+extern void sna_mode_enable(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);