rpms/xorg-x11-drv-i810/devel intel-2.6.0-to-3012d8.patch, NONE, 1.1 xorg-x11-drv-i810.spec, 1.124, 1.125

Kristian Høgsberg krh at fedoraproject.org
Fri Feb 13 23:38:44 UTC 2009


Author: krh

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

Modified Files:
	xorg-x11-drv-i810.spec 
Added Files:
	intel-2.6.0-to-3012d8.patch 
Log Message:
* Fri Feb 13 2009 Kristian Høgsberg <krh at redhat.com> - 2.6.0-5
- Add patch.


intel-2.6.0-to-3012d8.patch:

--- NEW FILE intel-2.6.0-to-3012d8.patch ---
diff --git a/configure.ac b/configure.ac
index bb69f72..38d373e 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)
 
@@ -105,8 +105,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
@@ -215,9 +213,6 @@ 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.
diff --git a/man/intel.man b/man/intel.man
index 00aa1be..65d1114 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
diff --git a/src/bios_reader/bios_reader.c b/src/bios_reader/bios_reader.c
index 717f5bf..4b20e0d 100644
--- a/src/bios_reader/bios_reader.c
+++ b/src/bios_reader/bios_reader.c
@@ -299,6 +299,9 @@ static void dump_lvds_data(void)
     struct bdb_lvds_lfp_data *lvds_data;
     int num_entries;
     int i;
+    int hdisplay, hsyncstart, hsyncend, htotal;
+    int vdisplay, vsyncstart, vsyncend, vtotal;
+    float clock;
 
     block = find_section(BDB_LVDS_LFP_DATA);
     if (!block) {
@@ -322,6 +325,17 @@ static void dump_lvds_data(void)
 	else
 	    marker = ' ';
 
+	hdisplay   = _H_ACTIVE(timing_data);
+	hsyncstart = hdisplay + _H_SYNC_OFF(timing_data);
+	hsyncend   = hsyncstart + _H_SYNC_WIDTH(timing_data);
+	htotal     = hdisplay + _H_BLANK(timing_data);
+
+	vdisplay   = _V_ACTIVE(timing_data);
+	vsyncstart = vdisplay + _V_SYNC_OFF(timing_data);
+	vsyncend   = vsyncstart + _V_SYNC_WIDTH(timing_data);
+	vtotal     = vdisplay + _V_BLANK(timing_data);
+	clock      = _PIXEL_CLOCK(timing_data) / 1000;
+
 	printf("%c\tpanel type %02i: %dx%d clock %d\n", marker,
 	       i, lfp_data->fp_timing.x_res, lfp_data->fp_timing.y_res,
 	       _PIXEL_CLOCK(timing_data));
@@ -336,15 +350,11 @@ static void dump_lvds_data(void)
 	       (unsigned long)lfp_data->fp_timing.pp_cycle_reg_val);
 	printf("\t\t  PFIT: 0x%08lx\n",
 	       (unsigned long)lfp_data->fp_timing.pfit_reg_val);
-	printf("\t\ttimings: %d %d %d %d %d %d %d %d\n",
-	       _H_ACTIVE(timing_data),
-	       _H_BLANK(timing_data),
-	       _H_SYNC_OFF(timing_data),
-	       _H_SYNC_WIDTH(timing_data),
-	       _V_ACTIVE(timing_data),
-	       _V_BLANK(timing_data),
-	       _V_SYNC_OFF(timing_data),
-	       _V_SYNC_WIDTH(timing_data));
+	printf("\t\ttimings: %d %d %d %d %d %d %d %d %.2f (%s)\n",
+	       hdisplay, hsyncstart, hsyncend, htotal,
+	       vdisplay, vsyncstart, vsyncend, vtotal, clock,
+	       (hsyncend > htotal || vsyncend > vtotal) ?
+	       "BAD!" : "good");
     }
     free(block);
 }
diff --git a/src/common.h b/src/common.h
index 4a87acb..be222df 100644
--- a/src/common.h
+++ b/src/common.h
@@ -367,6 +367,8 @@ extern int I810_DEBUG;
 #define SUPPORTS_INTEGRATED_HDMI(pI810) (IS_G4X(pI810))
 /* dsparb controlled by hw only */
 #define DSPARB_HWCONTROL(pI810) (IS_G4X(pI810))
+/* supports Y tiled surfaces (pre-965 Mesa isn't ready yet) */
+#define SUPPORTS_YTILING(pI810) (IS_I965G(pI830))
 
 #define GTT_PAGE_SIZE			KB(4)
 #define ROUND_TO(x, y)			(((x) + (y) - 1) / (y) * (y))
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 4994251..0d0e130 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -33,25 +33,31 @@
 
 #ifdef XF86DRM_MODE
 #include "i830.h"
-#include "sarea.h"
-
-static Bool drmmode_resize_fb(ScrnInfoPtr scrn, drmmode_ptr drmmode,
-			      int width, int height);
-
-static Bool
-drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
-{
-	xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
-	drmmode_crtc_private_ptr drmmode_crtc =
-		xf86_config->crtc[0]->driver_private;
-	drmmode_ptr drmmode = drmmode_crtc->drmmode;
-	Bool ret;
-
-	ret = drmmode_resize_fb(scrn, drmmode, width, height);
-	scrn->virtualX = width;
-	scrn->virtualY = height;
-	return ret;
-}
+#include "intel_bufmgr.h"
+#include "xf86drmMode.h"
+
+typedef struct {
+    int fd;
+    uint32_t fb_id;
+    drmModeResPtr mode_res;
+    int cpp;
+} drmmode_rec, *drmmode_ptr;
+
+typedef struct {
+    drmmode_ptr drmmode;
+    drmModeCrtcPtr mode_crtc;
+    dri_bo *cursor;
+    dri_bo *rotate_bo;
+    int rotate_fb_id;
+} drmmode_crtc_private_rec, *drmmode_crtc_private_ptr;
+
+typedef struct {
+    drmmode_ptr drmmode;
+    int output_id;
+    drmModeConnectorPtr mode_output;
+    drmModeEncoderPtr mode_encoder;
+    drmModePropertyBlobPtr edid_blob;
+} drmmode_output_private_rec, *drmmode_output_private_ptr;
 
 static void
 drmmode_ConvertFromKMode(ScrnInfoPtr scrn,
@@ -112,10 +118,6 @@ drmmode_ConvertToKMode(ScrnInfoPtr scrn,
 
 }
 
-static const xf86CrtcConfigFuncsRec drmmode_xf86crtc_config_funcs = {
-	drmmode_xf86crtc_resize
-};
-
 static void
 drmmode_crtc_dpms(xf86CrtcPtr drmmode_crtc, int mode)
 {
@@ -126,6 +128,8 @@ static Bool
 drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
 		       Rotation rotation, int x, int y)
 {
[...5340 lines suppressed...]
-    uxa_print_composite_fallback (op, pSrc, pMask, pDst);
-#endif
+    if (uxa_screen->fallback_debug)
+	uxa_print_composite_fallback (op, pSrc, pMask, pDst);
 
     uxa_check_composite (op, pSrc, pMask, pDst, xSrc, ySrc,
 		      xMask, yMask, xDst, yDst, width, height);
diff --git a/uxa/uxa-unaccel.c b/uxa/uxa-unaccel.c
index aba12e8..8f86468 100644
--- a/uxa/uxa-unaccel.c
+++ b/uxa/uxa-unaccel.c
@@ -68,18 +68,18 @@ uxa_finish_access_gc(GCPtr pGC)
         uxa_finish_access(&pGC->stipple->drawable);
 }
 
-#if DEBUG_TRACE_FALL
 char
 uxa_drawable_location(DrawablePtr pDrawable)
 {
     return uxa_drawable_is_offscreen(pDrawable) ? 's' : 'm';
 }
-#endif /* DEBUG_TRACE_FALL */
 
 void
 uxa_check_fill_spans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
 		   DDXPointPtr ppt, int *pwidth, int fSorted)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
 	if (uxa_prepare_access_gc (pGC)) {
@@ -94,6 +94,8 @@ void
 uxa_check_set_spans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
 		 DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
 	fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
@@ -106,6 +108,8 @@ uxa_check_put_image (DrawablePtr pDrawable, GCPtr pGC, int depth,
 		 int x, int y, int w, int h, int leftPad, int format,
 		 char *bits)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
 	fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
@@ -117,6 +121,7 @@ RegionPtr
 uxa_check_copy_area (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
 		     int srcx, int srcy, int w, int h, int dstx, int dsty)
 {
+    ScreenPtr screen = pSrc->pScreen;
     RegionPtr ret = NULL;
 
     UXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
@@ -136,6 +141,7 @@ uxa_check_copy_plane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
 		  int srcx, int srcy, int w, int h, int dstx, int dsty,
 		  unsigned long bitPlane)
 {
+    ScreenPtr screen = pSrc->pScreen;
     RegionPtr ret = NULL;
 
     UXA_FALLBACK(("from %p to %p (%c,%c)\n", pSrc, pDst,
@@ -155,6 +161,8 @@ void
 uxa_check_poly_point (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
 		  DDXPointPtr pptInit)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
     if (uxa_prepare_access (pDrawable, UXA_ACCESS_RW)) {
 	fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
@@ -166,6 +174,8 @@ void
 uxa_check_poly_lines (DrawablePtr pDrawable, GCPtr pGC,
 		  int mode, int npt, DDXPointPtr ppt)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c), width %d, mode %d, count %d\n",
 		  pDrawable, uxa_drawable_location(pDrawable),
 		  pGC->lineWidth, mode, npt));
@@ -188,6 +198,8 @@ void
 uxa_check_poly_segment (DrawablePtr pDrawable, GCPtr pGC,
 		    int nsegInit, xSegment *pSegInit)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c) width %d, count %d\n", pDrawable,
 		  uxa_drawable_location(pDrawable), pGC->lineWidth, nsegInit));
     if (pGC->lineWidth == 0) {
@@ -208,6 +220,8 @@ void
 uxa_check_poly_arc (DrawablePtr pDrawable, GCPtr pGC,
 		int narcs, xArc *pArcs)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable)));
 
     /* Disable this as fbPolyArc can call miZeroPolyArc which in turn
@@ -234,6 +248,8 @@ void
 uxa_check_poly_fill_rect (DrawablePtr pDrawable, GCPtr pGC,
 		     int nrect, xRectangle *prect)
 {
+    ScreenPtr screen = pDrawable->pScreen;
+
     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);
@@ -326,6 +350,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 +392,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..0de408c 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -346,6 +346,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.
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.


Index: xorg-x11-drv-i810.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-i810/devel/xorg-x11-drv-i810.spec,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -r1.124 -r1.125
--- xorg-x11-drv-i810.spec	13 Feb 2009 23:34:45 -0000	1.124
+++ xorg-x11-drv-i810.spec	13 Feb 2009 23:38:14 -0000	1.125
@@ -6,7 +6,7 @@
 Summary:   Xorg X11 Intel video driver(s)
 Name:      xorg-x11-drv-i810
 Version:   2.6.0
-Release:   4%{?dist}
+Release:   5%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -98,6 +98,9 @@
 %{_libdir}/libIntelXvMC.so
 
 %changelog
+* Fri Feb 13 2009 Kristian Høgsberg <krh at redhat.com> - 2.6.0-5
+- Add patch.
+
 * Fri Feb 13 2009 Kristian Høgsberg <krh at redhat.com> - 2.6.0-4
 - Update snapshot to pull in KMS framebuffer resize.
 




More information about the fedora-extras-commits mailing list