diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-08-25 12:56:43 +0100 |
---|---|---|
committer | Owain G. Ainsworth <oga@openbsd.org> | 2010-09-12 04:52:11 +0100 |
commit | 56f3afcc7b7b11b7eeabe197176a74892449221d (patch) | |
tree | 630c02bdcb8958e9f7b09e66603429342a561f4d /man | |
parent | de486ee8e4295d5d827692b26c5c12b7a26c9d01 (diff) |
Enable a shadow buffer and disable GPU acceleration.
An attempt to workaround the incoherency in gen2 chipsets, we avoid
using dynamic reallocation as much as possible.
The first step is to disable allocation of pixmaps using GEM and simply
create them in system memory without a backing buffer object. This
forces all rendering to use S/W fallbacks.
The second step is to allocate a shadow front buffer and assign that to
the Screen pixmap. This ensure that the front buffer remains in the GTT
and pinned for scanout. The shadow buffer will be rendered to in the
normal fashion via the Screen pixmap, and be marked dirty. In the block
handler, the dirty shadow buffer is then blitted (using the GPU) over
the front buffer. This should completely avoid having to move pages
around in the GTT and avoid incurring the wrath of those early chipsets.
Secondly, performance should be reasonable as we avoid the ping-pong
caused by the small aperture and weak GPU forcing software fallbacks.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
(cherry-picked from commit 2b96c18165d713cd6781dbf217ec33e11cc961bc)
Also pulled in the following commit:
commit ae160d7fbfc79e78dad8702efcc55d9c0c25ff67
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Sep 10 13:19:12 2010 +0100
shadow: Simply modify the Screen pixmap header
This is a slightly less risky strategy than having to remember to update
all pointers to the old Screen pixmap.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'man')
-rw-r--r-- | man/intel.man | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/man/intel.man b/man/intel.man index 1e8b3605..e11ced17 100644 --- a/man/intel.man +++ b/man/intel.man @@ -204,6 +204,20 @@ i.e. perform synchronous rendering. .IP Default: Disabled .TP +.BI "Option \*qShadow\*q \*q" boolean \*q +This option controls the use of GPU acceleration and placement of auxiliary +buffers in memory. Enabling the Shadow will disable all use of the GPU for +RENDER acceleration and force software-fallbacks for all but updating the +scan-out buffer. Hardware overlay is still supported so Xv will continue to +playback videos using the GPU, but GL will be forced to use software +rasterisation as well. This is a last resort measure for systems with +crippling bugs, such as early 8xx chipsets. It is still hoped that we will +find a workaround to enable as much hardware acceleration on those +architectures as is possible, but until then, using a shadow buffer should +maintain system stability. +.IP +Default: Disabled +.TP .BI "Option \*qSwapbuffersWait\*q \*q" boolean \*q This option controls the behavior of glXSwapBuffers and glXCopySubBufferMESA calls by GL applications. If enabled, the calls will avoid tearing by making |