rpms/xorg-x11-drv-intel/devel intel-2.6.0-to-master.patch,NONE,1.1

Kristian Høgsberg krh at fedoraproject.org
Sat Feb 28 16:31:44 UTC 2009


Author: krh

Update of /cvs/pkgs/rpms/xorg-x11-drv-intel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20120

Added Files:
	intel-2.6.0-to-master.patch 
Log Message:
* Sat Feb 28 2009 Kristian Høgsberg <krh at redhat.com> - 2.6.0-10
- Update to master again, should fix the 1MB per pixmap problem.


intel-2.6.0-to-master.patch:

--- NEW FILE intel-2.6.0-to-master.patch ---
diff --git a/Makefile.am b/Makefile.am
index 896427f..d1118fe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,11 +20,7 @@
 
 AUTOMAKE_OPTIONS = foreign
 
-if BUILD_UXA
-UXA_DIR = uxa
-endif
-
-SUBDIRS = $(UXA_DIR) src man
+SUBDIRS = uxa src man
 
 EXTRA_DIST = README
 DISTCLEANFILES = doltcompile
diff --git a/configure.ac b/configure.ac
index bb69f72..3f6f1b8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-intel],
-        2.6.0,
+        2.6.99.1,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-intel)
 
@@ -84,7 +84,13 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
 
 # Checks for pkg-config packages
 PKG_CHECK_MODULES(XORG, [xorg-server xproto fontsproto $REQUIRED_MODULES])
-PKG_CHECK_MODULES(UXA, [xorg-server >= 1.5], [BUILD_UXA=yes], [BUILD_UXA=no])
+
+PKG_CHECK_MODULES(SERVER_1_5, [xorg-server >= 1.5],
+			      [SERVER_1_5=yes], [SERVER_1_5=no])
+
+if test "$SERVER_1_5" = yes; then
+   AC_DEFINE(SERVER_1_5, 1, [Building against server 1.5])
+fi
 
 sdkdir=$(pkg-config --variable=sdkdir xorg-server)
 drm_cflags=$(pkg-config --cflags libdrm)
@@ -105,8 +111,6 @@ if test x$DRI != xno; then
                       [have_sarea_h="yes"], [have_sarea_h="no"])
         AC_CHECK_FILE([${sdkdir}/dristruct.h],
                       [have_dristruct_h="yes"], [have_dristruct_h="no"])
-	AC_CHECK_FILE([${sdkdir}/damage.h],
-                      [have_damage_h="yes"], [have_damage_h="no"])
 fi
 AC_MSG_CHECKING([whether to include DRI support])
 if test x$DRI = xauto; then
@@ -120,11 +124,6 @@ if test x$DRI = xauto; then
 fi
 AC_MSG_RESULT([$DRI])
 
-AM_CONDITIONAL(BUILD_UXA, test $BUILD_UXA = yes)
-if test "$BUILD_UXA" = yes; then
-	AC_DEFINE(I830_USE_UXA, 1, [UMA Acceleration Architecture support])
-fi
-
 AC_CHECK_HEADER(xf86Modes.h,[XMODES=yes],[XMODES=no],[#include "xorg-server.h"])
 AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
 	      [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no],
@@ -184,8 +183,6 @@ else
 fi
 
 AC_SUBST([XMODES_CFLAGS])
-UXA_CFLAGS='-I$(top_srcdir)/uxa'
-AC_SUBST([UXA_CFLAGS])
 
 SAVE_CPPFLAGS="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
@@ -209,20 +206,17 @@ if test "x$GCC" = "xyes"; then
 	-Wnested-externs -fno-strict-aliasing"
 fi
 
-PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.3])
+PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.5])
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
         PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
         AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
         AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
-	if test "$have_damage_h" = yes; then
-		AC_DEFINE(DAMAGE,1,[Use Damage extension])
-	fi
 fi
 
-dnl exaGetPixmapDriverPrivate required for DRM_MODE.
+dnl Server 1.5's set_mode_major required for DRM_MODE.
 PKG_CHECK_MODULES(DRM_MODE, [xorg-server >= 1.5],
-		  [DRM_MODE=yes], [DRM_MODE=no])
+		 [DRM_MODE=yes], [DRM_MODE=no])
 if test "x$DRM_MODE" = xyes; then
 	AC_DEFINE(XF86DRM_MODE,1,[DRM kernel modesetting])
 fi
diff --git a/man/intel.man b/man/intel.man
index 00aa1be..c7a3c61 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -150,26 +150,6 @@ pool.  On systems with a working GEM environment, this can be disabled to
 increase the memory pool available to other graphics tasks.
 Default for i830 and newer: Enabled.
 Default for i810: this option is not used.
-.BI "Option \*qPageFlip\*q \*q" boolean \*q
-Enable support for page flipping. This should improve 3D performance at the
-potential cost of worse performance with mixed 2D/3D. Also note that this gives
-no benefit without corresponding support in the Mesa 3D driver and may not give
-the full benefit without triple buffering (see
-.B "Option \*qTripleBuffer\*q"
-).
-Default for i810: The option is not used.
-Default for i830 and above: Disabled (This option is currently unstable).
-.TP
-.BI "Option \*qTripleBuffer\*q \*q" boolean \*q
-Enable support for triple buffering. This should improve 3D performance at the
-potential cost of worse performance with mixed 2D/3D. Also note that this gives
-no benefit without corresponding support in the Mesa 3D driver and may not give
-any benefit without page flipping either (see
-.B "Option \*qPageFlip\*q"
-).
-Default for i810: The option is not used.
-Default for i830 and above: Disabled.
-.TP
 .BI "Option \*qAccelMethod\*q \*q" string \*q
 Choose acceleration architecture, either "XAA" or "EXA".  XAA is the old
 XFree86 based acceleration architecture.  EXA is a newer and simpler
@@ -222,12 +202,6 @@ information.
 Enable XvMC driver. Current support MPEG2 MC on 915/945 and G33 series.
 User should provide absolute path to libIntelXvMC.so in XvMCConfig file.
 Default: Disabled.
-.TP
-.BI "Option \*qForceSDVODetect\*q \*q" boolean \*q
-Instead of depending on SDVO detect status bit to initialize SDVO outputs,
-this option trys to ignore that status bit and try to probe on all SDVO
-ports anyway. Try this if some output is not detected on your ADD2 card.
-Use of this option will slow down your startup time. Default: Disabled.
 
 .SH OUTPUT CONFIGURATION
 On 830M and better chipsets, the driver supports runtime configuration of
diff --git a/src/Makefile.am b/src/Makefile.am
index 3fb30ff..e05dbab 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -31,16 +31,13 @@ SUBDIRS = xvmc bios_reader ch7017 ch7xxx ivch sil164 tfp410 $(REGDUMPER)
 # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
 
 AM_CFLAGS = @WARN_CFLAGS@ @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
-	@PCIACCESS_CFLAGS@ @UXA_CFLAGS@ \
-	@XMODES_CFLAGS@ -DI830_XV -DI830_USE_XAA -DI830_USE_EXA
+	@PCIACCESS_CFLAGS@ -I$(top_srcdir)/uxa \
+	@XMODES_CFLAGS@ -DI830_XV -DI830_USE_XAA -DI830_USE_EXA -DI830_USE_UXA
 
 intel_drv_la_LTLIBRARIES = intel_drv.la
 intel_drv_la_LDFLAGS = -module -avoid-version
 intel_drv_ladir = @moduledir@/drivers
-intel_drv_la_LIBADD = -lm @DRM_LIBS@ -ldrm_intel
-if BUILD_UXA
-intel_drv_la_LIBADD += ../uxa/libuxa.la
-endif
+intel_drv_la_LIBADD = -lm @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la
 if XSERVER_LIBPCIACCESS
 intel_drv_la_LIBADD += @PCIACCESS_LIBS@
 endif
@@ -136,8 +133,7 @@ intel_drv_la_SOURCES = \
 	 i830_render.c \
 	 i915_render.c \
 	 i965_render.c \
-	 drmmode_display.c \
-	 drmmode_display.h
+	 drmmode_display.c
 
 INTEL_G4A =				\
 	packed_yuv_sf.g4a		\
diff --git a/src/bios_reader/bios_reader.c b/src/bios_reader/bios_reader.c
index 717f5bf..41908a3 100644
--- a/src/bios_reader/bios_reader.c
+++ b/src/bios_reader/bios_reader.c
@@ -205,6 +205,7 @@ static void dump_general_definitions(void)
     free(block);
 }
 
+#if 0
 static void dump_child_devices(void)
 {
     struct bdb_block *block;
@@ -238,6 +239,7 @@ static void dump_child_devices(void)
 
     free(block);
 }
+#endif
 
 static void dump_lvds_options(void)
 {
@@ -299,6 +301,9 @@ static void dump_lvds_data(void)
     struct bdb_lvds_lfp_data *lvds_data;
[...7880 lines suppressed...]
     UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
 
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
@@ -250,6 +266,8 @@ uxa_check_image_glyph_blt (DrawablePtr pDrawable, GCPtr pGC,
 		      int x, int y, unsigned int nglyph,
 		      CharInfoPtr *ppci, pointer pglyphBase)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c)\n", pDrawable,
 		  uxa_drawable_location(pDrawable)));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
@@ -266,6 +284,8 @@ uxa_check_poly_glyph_blt (DrawablePtr pDrawable, GCPtr pGC,
 		     int x, int y, unsigned int nglyph,
 		     CharInfoPtr *ppci, pointer pglyphBase)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c), style %d alu %d\n", pDrawable,
 		  uxa_drawable_location(pDrawable), pGC->fillStyle, pGC->alu));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
@@ -282,6 +302,8 @@ uxa_check_push_pixels (GCPtr pGC, PixmapPtr pBitmap,
 		   DrawablePtr pDrawable,
 		   int w, int h, int x, int y)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("from %p to %p (%c,%c)\n", pBitmap, pDrawable,
 		  uxa_drawable_location(&pBitmap->drawable),
 		  uxa_drawable_location(pDrawable)));
@@ -305,6 +327,8 @@ uxa_check_get_spans (DrawablePtr pDrawable,
 		 int nspans,
 		 char *pdstStart)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("from %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RO)) {
 	fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
@@ -312,6 +336,24 @@ uxa_check_get_spans (DrawablePtr pDrawable,
     }
 }
 
+#ifndef SERVER_1_5
+void
+uxa_check_paint_window (WindowPtr pWin, RegionPtr pRegion, int what)
+{
+    ScreenPtr screen = pWin->drawable.pScreen;
+
+    UXA_FALLBACK(("from %p (%c)\n", pWin,
+		  uxa_drawable_location (&pWin->drawable)));
+    if (uxa_prepare_access (&pWin->drawable, UXA_ACCESS_RW)) {
+	if (uxa_prepare_access_window (pWin)) {
+	    fbPaintWindow (pWin, pRegion, what);
+	    uxa_finish_access_window (pWin);
+	}
+	uxa_finish_access(&pWin->drawable);
+    }
+}
+#endif
+
 void
 uxa_check_composite (CARD8      op,
                    PicturePtr pSrc,
@@ -326,6 +368,8 @@ uxa_check_composite (CARD8      op,
                    CARD16     width,
                    CARD16     height)
 {
+    ScreenPtr screen = pDst->pDrawable->pScreen;
+
     UXA_FALLBACK(("from picts %p/%p to pict %p\n",
 		 pSrc, pMask, pDst));
 
@@ -366,7 +410,9 @@ uxa_check_add_traps (PicturePtr	pPicture,
 		  int		ntrap,
 		  xTrap		*traps)
 {
-    UXA_FALLBACK(("to pict %p (%c)\n",
+    ScreenPtr screen = pPicture->pDrawable->pScreen;
+
+    UXA_FALLBACK(("to pict %p (%c)\n", pPicture,
 		  uxa_drawable_location(pPicture->pDrawable)));
     if (uxa_prepare_access(pPicture->pDrawable, UXA_ACCESS_RW)) {
 	fbAddTraps (pPicture, x_off, y_off, ntrap, traps);
diff --git a/uxa/uxa.c b/uxa/uxa.c
index 4aeb5e4..b51a282 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -40,6 +40,9 @@
 #include "uxa.h"
 
 int uxa_screen_index;
+#ifndef SERVER_1_5
+static int uxa_generation;
+#endif
 
 /**
  * uxa_get_drawable_pixmap() returns a backing pixmap for a given drawable.
@@ -346,6 +349,14 @@ uxa_xorg_enable_disable_fb_access (int index, Bool enable)
        uxa_screen->SavedEnableDisableFBAccess(index, enable);
 }
 
+void
+uxa_set_fallback_debug (ScreenPtr screen, Bool enable)
+{
+    uxa_screen_t *uxa_screen = uxa_get_screen(screen);
+
+    uxa_screen->fallback_debug = enable;
+}
+
 /**
  * uxa_close_screen() unwraps its wrapped screen functions and tears down UXA's
  * screen private, before calling down to the next CloseSccreen.
@@ -359,12 +370,18 @@ uxa_close_screen(int i, ScreenPtr pScreen)
     PictureScreenPtr	ps = GetPictureScreenIfSet(pScreen);
 #endif
 
+#ifdef SERVER_1_5
     uxa_glyphs_fini(pScreen);
+#endif
 
     pScreen->CreateGC = uxa_screen->SavedCreateGC;
     pScreen->CloseScreen = uxa_screen->SavedCloseScreen;
     pScreen->GetImage = uxa_screen->SavedGetImage;
     pScreen->GetSpans = uxa_screen->SavedGetSpans;
+#ifndef SERVER_1_5
+    pScreen->PaintWindowBackground = uxa_screen->SavedPaintWindowBackground;
+    pScreen->PaintWindowBorder = uxa_screen->SavedPaintWindowBorder;
+#endif
     pScreen->CreatePixmap = uxa_screen->SavedCreatePixmap;
     pScreen->DestroyPixmap = uxa_screen->SavedDestroyPixmap;
     pScreen->CopyWindow = uxa_screen->SavedCopyWindow;
@@ -461,7 +478,15 @@ uxa_driver_init(ScreenPtr screen, uxa_driver_t *uxa_driver)
 
     uxa_screen->info = uxa_driver;
 
+#ifdef SERVER_1_5
     dixSetPrivate(&screen->devPrivates, &uxa_screen_index, uxa_screen);
+#else
+    if (uxa_generation != serverGeneration) {
+	uxa_screen_index = AllocateScreenPrivateIndex();
+	uxa_generation = serverGeneration;
+    }
+    screen->devPrivates[uxa_screen_index].ptr = uxa_screen;
+#endif
 
 //    exaDDXDriverInit(screen);
 
@@ -480,6 +505,14 @@ uxa_driver_init(ScreenPtr screen, uxa_driver_t *uxa_driver)
     uxa_screen->SavedGetSpans = screen->GetSpans;
     screen->GetSpans = uxa_check_get_spans;
 
+#ifndef SERVER_1_5
+    uxa_screen->SavedPaintWindowBackground = screen->PaintWindowBackground;
+    screen->PaintWindowBackground = uxa_paint_window;
+
+    uxa_screen->SavedPaintWindowBorder = screen->PaintWindowBorder;
+    screen->PaintWindowBorder = uxa_paint_window;
+#endif /* !SERVER_1_5 */
+
     uxa_screen->SavedCopyWindow = screen->CopyWindow;
     screen->CopyWindow = uxa_copy_window;
 
@@ -497,9 +530,11 @@ uxa_driver_init(ScreenPtr screen, uxa_driver_t *uxa_driver)
         uxa_screen->SavedComposite = ps->Composite;
 	ps->Composite = uxa_composite;
 
+#ifdef SERVER_1_5
 	uxa_screen->SavedGlyphs = ps->Glyphs;
 	ps->Glyphs = uxa_glyphs;
-	
+#endif
+
 	uxa_screen->SavedTriangles = ps->Triangles;
 	ps->Triangles = uxa_triangles;
 
@@ -519,7 +554,9 @@ uxa_driver_init(ScreenPtr screen, uxa_driver_t *uxa_driver)
     ShmRegisterFuncs(screen, &uxa_shm_funcs);
 #endif
 
+#ifdef SERVER_1_5
     uxa_glyphs_init(screen);
+#endif
 
     LogMessage(X_INFO, "UXA(%d): Driver registered support for the following"
 	       " operations:\n", screen->myNum);
diff --git a/uxa/uxa.h b/uxa/uxa.h
index f1c1cfa..8f6f896 100644
--- a/uxa/uxa.h
+++ b/uxa/uxa.h
@@ -517,6 +517,9 @@ uxa_driver_fini(ScreenPtr pScreen);
 CARD32
 uxa_get_pixmap_first_pixel (PixmapPtr pPixmap);
 
+void
+uxa_set_fallback_debug (ScreenPtr screen, Bool enable);
+
 /**
  * Returns TRUE if the given planemask covers all the significant bits in the
  * pixel values for pDrawable.




More information about the scm-commits mailing list