[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-intel: Changes to 'ubuntu'



 debian/changelog                                                |   10 +
 debian/patches/107_solid_nullptr_check.patch                    |   37 ++++
 debian/patches/109_dont_reconstruct_glyph_cache_on_rotate.patch |   76 ++++++++++
 debian/patches/110_warnings_cleanup.patch                       |   61 ++++++++
 4 files changed, 184 insertions(+)

New commits:
commit 3347e9639d22249c605f922c9a8d3db4765ed5eb
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Mar 2 14:12:55 2011 +1100

    Add changelog entry

diff --git a/debian/changelog b/debian/changelog
index 25dff08..38cf27d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+xserver-xorg-video-intel (2:2.14.0-1ubuntu12) natty; urgency=low
+
+  * Pull prerequisite commit into 
+    109_dont_reconstruct_glyph_cache_on_rotate.patch.  We mostly didn't notice
+    because the copy-fb codepath initialises the resources itself.  Fixes
+    Pixmap assert on Xserver startup when copy-fb fails, such as on hybrid
+    graphics systems. (LP: #718620)
+
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Wed, 02 Mar 2011 14:12:35 +1100
+
 xserver-xorg-video-intel (2:2.14.0-1ubuntu11) natty; urgency=low
 
   [Brian Murray]

commit d8fc13a165e0a4e19423604a47a88f79e9b50be7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Mar 2 14:08:12 2011 +1100

    Add patches missing from git

diff --git a/debian/patches/107_solid_nullptr_check.patch b/debian/patches/107_solid_nullptr_check.patch
new file mode 100644
index 0000000..6c4a303
--- /dev/null
+++ b/debian/patches/107_solid_nullptr_check.patch
@@ -0,0 +1,37 @@
+diff -Nurp xserver-xorg-video-intel-2.13.901//uxa/uxa-accel.c xserver-xorg-video-intel-2.13.901-working//uxa/uxa-accel.c
+--- xserver-xorg-video-intel-2.13.901//uxa/uxa-accel.c	2010-09-28 20:43:10.000000000 -0700
++++ xserver-xorg-video-intel-2.13.901-working//uxa/uxa-accel.c	2011-01-21 19:15:03.421218050 -0800
+@@ -120,6 +120,10 @@ uxa_fill_spans(DrawablePtr pDrawable, GC
+ 
+ 		solid = uxa_acquire_solid(screen, src->pSourcePict);
+ 		FreePicture(src, 0);
++		if (!solid) {
++			FreePicture(dst, 0);
++			goto solid;
++		}
+ 
+ 		src = solid;
+ 		src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+@@ -1110,6 +1114,10 @@ try_solid:
+ 
+ 			solid = uxa_acquire_solid(screen, src->pSourcePict);
+ 			FreePicture(src, 0);
++			if (!solid) {
++				FreePicture(dst, 0);
++				goto err;
++			}
+ 
+ 			src = solid;
+ 			src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+diff -Nurp xserver-xorg-video-intel-2.13.901//uxa/uxa-render.c xserver-xorg-video-intel-2.13.901-working//uxa/uxa-render.c
+--- xserver-xorg-video-intel-2.13.901//uxa/uxa-render.c	2010-09-28 20:43:10.000000000 -0700
++++ xserver-xorg-video-intel-2.13.901-working//uxa/uxa-render.c	2011-01-21 19:07:49.463951184 -0800
+@@ -1064,6 +1064,8 @@ try_solid:
+ 			int src_off_x, src_off_y;
+ 
+ 			solid = uxa_acquire_solid(screen, src->pSourcePict);
++			if (! solid)
++				goto err_src;
+ 			FreePicture(src, 0);
+ 
+ 			src = solid;
diff --git a/debian/patches/110_warnings_cleanup.patch b/debian/patches/110_warnings_cleanup.patch
new file mode 100644
index 0000000..686bc62
--- /dev/null
+++ b/debian/patches/110_warnings_cleanup.patch
@@ -0,0 +1,61 @@
+diff --git a/src/i915_render.c b/src/i915_render.c
+index 6d844e5..9739a72 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -546,7 +546,7 @@ i915_emit_composite_primitive(PixmapPtr dest,
+ {
+ 	ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ 	intel_screen_private *intel = intel_get_screen_private(scrn);
+-	Bool is_affine_src, is_affine_mask = TRUE;
++	Bool is_affine_src = TRUE, is_affine_mask = TRUE;
+ 	int per_vertex, num_floats;
+ 	int tex_unit = 0;
+ 	int src_unit = -1, mask_unit = -1;
+diff --git a/src/xvmc/intel_batchbuffer.h b/src/xvmc/intel_batchbuffer.h
+index 6fa1c05..888abeb 100644
+--- a/src/xvmc/intel_batchbuffer.h
++++ b/src/xvmc/intel_batchbuffer.h
+@@ -24,7 +24,7 @@ extern int VERBOSE;
+ 
+ #define OUT_RELOC(bo,read_domains,write_domains,delta)  \
+     do { \
+-        *(unsigned int *)batch_ptr = delta + bo->offset; \
++        *(unsigned int *)batch_ptr = (delta) + bo->offset; \
+         intel_batch_emit_reloc(bo, read_domains, write_domains, delta, batch_ptr); \
+         batch_ptr += 4;                                                 \
+     } while (0)
+diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
+index 6cbec80..6bfd9d1 100644
+--- a/src/xvmc/intel_xvmc.c
++++ b/src/xvmc/intel_xvmc.c
+@@ -1071,7 +1071,7 @@ _X_EXPORT Status XvMCLoadQMatrix(Display * display, XvMCContext * context,
+ _X_EXPORT Status XvMCPutSlice(Display * display, XvMCContext * context,
+ 			      char *slice, int nbytes)
+ {
+-	if (xvmc_driver->put_slice(display, context, slice, nbytes)) {
++	if (xvmc_driver->put_slice(display, context, (unsigned char *) slice, nbytes)) {
+ 		XVMC_ERR("PutSlice fail\n");
+ 		return BadValue;
+ 	}
+@@ -1082,7 +1082,7 @@ _X_EXPORT Status XvMCPutSlice2(Display * display, XvMCContext * context,
+ 			       char *slice, int nbytes, int slice_code)
+ {
+ 	if (xvmc_driver->put_slice2
+-	    (display, context, slice, nbytes, slice_code)) {
++	    (display, context, (unsigned char *) slice, nbytes, slice_code)) {
+ 		XVMC_ERR("PutSlice2 fail\n");
+ 		return BadValue;
+ 	}
+diff --git a/src/xvmc/intel_xvmc_dump.c b/src/xvmc/intel_xvmc_dump.c
+index 974bcbb..d22d311 100644
+--- a/src/xvmc/intel_xvmc_dump.c
++++ b/src/xvmc/intel_xvmc_dump.c
+@@ -38,7 +38,7 @@ void intel_xvmc_dump_open(void)
+ 	if (xvmc_dump)
+ 		return;
+ 
+-	if (d = getenv("INTEL_XVMC_DUMP"))
++	if ((d = getenv("INTEL_XVMC_DUMP")))
+ 		xvmc_dump = 1;
+ 
+ 	if (xvmc_dump) {

commit a3fa755939e4dc29cfd57520fde64239c3984bd5
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Mar 2 14:07:01 2011 +1100

    Add upstream prerequisite commit to 109_dont_reconstruct_glyph_cache_on_rotate.patch
    
    Fixes LP: #718620.  The only reason we didn't notice this crash
    is that the copy-fb codepath initialises these resources earlier.
    When copy-fb fails, these resources aren't initialised, and
    we run into problems

diff --git a/debian/patches/109_dont_reconstruct_glyph_cache_on_rotate.patch b/debian/patches/109_dont_reconstruct_glyph_cache_on_rotate.patch
index 0917a26..da3a083 100644
--- a/debian/patches/109_dont_reconstruct_glyph_cache_on_rotate.patch
+++ b/debian/patches/109_dont_reconstruct_glyph_cache_on_rotate.patch
@@ -1,3 +1,79 @@
+commit 3e28a0c0b43823d3104fe8fc50b5994b41fc0cc1
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date:   Thu Jan 20 15:07:26 2011 +0000
+
+    Create the UXA generational resources during screen create
+    
+    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/src/intel.h b/src/intel.h
+index e7c47db..4c755fc 100644
+--- a/src/intel.h
++++ b/src/intel.h
+@@ -661,7 +661,7 @@ static inline Bool pixmap_is_scanout(PixmapPtr pixmap)
+ const OptionInfoRec *intel_uxa_available_options(int chipid, int busid);
+ 
+ Bool intel_uxa_init(ScreenPtr pScreen);
+-void intel_uxa_create_screen_resources(ScreenPtr pScreen);
++Bool intel_uxa_create_screen_resources(ScreenPtr pScreen);
+ void intel_uxa_block_handler(intel_screen_private *intel);
+ Bool intel_get_aperture_space(ScrnInfoPtr scrn, drm_intel_bo ** bo_table,
+ 			      int num_bos);
+diff --git a/src/intel_driver.c b/src/intel_driver.c
+index 2cd5f1f..ebed258 100644
+--- a/src/intel_driver.c
++++ b/src/intel_driver.c
+@@ -234,9 +234,7 @@ static Bool i830CreateScreenResources(ScreenPtr screen)
+ 	if (!(*screen->CreateScreenResources) (screen))
+ 		return FALSE;
+ 
+-	intel_uxa_create_screen_resources(screen);
+-
+-	return TRUE;
++	return intel_uxa_create_screen_resources(screen);
+ }
+ 
+ static void PreInitCleanup(ScrnInfoPtr scrn)
+@@ -1046,7 +1044,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ 	I830UeventInit(scrn);
+ #endif
+ 
+-	return uxa_resources_init(screen);
++	return TRUE;
+ }
+ 
+ static void i830AdjustFrame(int scrnIndex, int x, int y, int flags)
+diff --git a/src/intel_uxa.c b/src/intel_uxa.c
+index 8f58c29..9341b91 100644
+--- a/src/intel_uxa.c
++++ b/src/intel_uxa.c
+@@ -1089,12 +1089,15 @@ static Bool intel_uxa_destroy_pixmap(PixmapPtr pixmap)
+ 	return TRUE;
+ }
+ 
+-void intel_uxa_create_screen_resources(ScreenPtr screen)
++Bool intel_uxa_create_screen_resources(ScreenPtr screen)
+ {
+ 	ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ 	intel_screen_private *intel = intel_get_screen_private(scrn);
+ 	dri_bo *bo = intel->front_buffer;
+ 
++	if (!uxa_resources_init(screen))
++		return FALSE;
++
+ 	drm_intel_gem_bo_map_gtt(bo);
+ 
+ 	if (intel->use_shadow) {
+@@ -1111,6 +1114,8 @@ void intel_uxa_create_screen_resources(ScreenPtr screen)
+ 					   NULL);
+ 		scrn->displayWidth = intel->front_pitch / intel->cpp;
+ 	}
++
++	return TRUE;
+ }
+ 
+ static void
+
 From c6dc27562abbc8ca9e873ad502ca49ae010461d2 Mon Sep 17 00:00:00 2001
 From: Chris Wilson <chris@chris-wilson.co.uk>
 Date: Mon, 24 Jan 2011 20:25:27 +0000


Reply to: