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

Reply via email to