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.rog...@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 <r...@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.rog...@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.rog...@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 <ch...@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 <ch...@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 <ch...@chris-wilson.co.uk> Date: Mon, 24 Jan 2011 20:25:27 +0000 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1pudeu-00080u...@alioth.debian.org