summaryrefslogtreecommitdiff
path: root/src/i830_video.h
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2006-12-27 13:45:06 -0800
committerEric Anholt <eric@anholt.net>2006-12-27 13:54:22 -0800
commit46df75ccd4647ea033583130253a2a2218b34a20 (patch)
tree91d0bc85a384b8c428b50d71ee283a0772c3d8b9 /src/i830_video.h
parent84915ac8afeb4bbc03df8f94ab3ba351788d6501 (diff)
Bug #7524: Major improvements to EXA/XAA static memory allocation.
With this, we no longer allocate XV through the XF86 linear allocator in the EXA case. We also no longer allocate extra space for the XF86 2D allocator that we don't use in EXA mode, or space for the EXA allocator in XAA mode. The EXA offscreen allocator now gets enough space for several screenfuls of pixmaps plus one 1920x1088 movie. A large duplicated section of code for allocating each framebuffer in the old dual-screen mode was also factored out.
Diffstat (limited to 'src/i830_video.h')
-rw-r--r--src/i830_video.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/i830_video.h b/src/i830_video.h
index 6a09a258..12a5bda2 100644
--- a/src/i830_video.h
+++ b/src/i830_video.h
@@ -27,6 +27,18 @@ THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86.h"
#include "xf86_OSproc.h"
+/* Ugly mess to support the old XF86 allocator or EXA using the same code.
+ */
+struct linear_alloc {
+#ifdef I830_USE_XAA
+ FBLinearPtr xaa;
+#endif
+#ifdef I830_USE_EXA
+ ExaOffscreenArea *exa;
+#endif
+ unsigned int offset;
+};
+
typedef struct {
CARD32 YBuf0offset;
CARD32 UBuf0offset;
@@ -57,7 +69,8 @@ typedef struct {
CARD32 videoStatus;
Time offTime;
Time freeTime;
- FBLinearPtr linear;
+ struct linear_alloc linear;
+ unsigned int extra_offset;
Bool overlayOK;
int oneLineMode;