summaryrefslogtreecommitdiff
path: root/src/drmmode_display.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-05-18 18:01:05 -0700
committerEric Anholt <eric@anholt.net>2009-05-19 10:09:41 -0700
commit09beee378cecd1079e7a9fa6eee8f084d680d37e (patch)
tree079c53d1e96e60e89f496bd98871145dbfb84e8f /src/drmmode_display.c
parent34660fd2df5d61b77ed7041d32ac29053fc94f5a (diff)
Don't do GTT maps on objects bigger than half the available aperture size.
The basic problem is that software fallbacks will do single instructions that copy from one GTT-mapped BO into another GTT-mapped BO. If we can't get both of them bound simultanously, we fault one in, retry the instruction, fault the other in (kicking out #1), retry the instruction, fault #1 back in (kicking out #2), etc. Note that we'll still get into a nasty spot if you do a composite operation with a mask where all 3 are big-but-less-than-half-available-aperture, where you'll thrash. It at least means you'll make progress, though, since each instruction will only be operating on two BOs at at time, and the situation seems unlikely. Bug #20152 (3/3)
Diffstat (limited to 'src/drmmode_display.c')
-rw-r--r--src/drmmode_display.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 7df7b6fb..24e0e269 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -232,6 +232,8 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
drmmode_output_dpms(output, DPMSModeOn);
}
+ i830_set_max_gtt_map_size(pScrn);
+
done:
if (!ret) {
crtc->x = saved_x;