summaryrefslogtreecommitdiff
path: root/src/sna/sna_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/sna_driver.c')
-rw-r--r--src/sna/sna_driver.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 4f8895f1..d810b262 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -459,7 +459,18 @@ static bool enable_tear_free(struct sna *sna)
if (sna->flags & SNA_LINEAR_FB)
return false;
- /* Under certain conditions, we should enable TearFree by default,
+ /*
+ * On recent HW, where the display surfaces are in a seperate GTT
+ * to userspace, there is much less contention on global resources
+ * and also we can assume there is much more memory bandwidth
+ * available (i.e. gen8+). This HW should rarely be under such
+ * constaints as to need to disable TearFree, so enable by default.
+ */
+ if (sna->kgem.has_full_ppgtt)
+ return true;
+
+ /*
+ * Under certain conditions, we should enable TearFree by default,
* for example when the hardware requires pageflipping to run within
* its power/performance budget.
*/