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

mesa: Changes to 'ubuntu'



 Makefile.am                                                                    |    2 
 bin/.cherry-ignore                                                             |    6 
 configure.ac                                                                   |   19 
 debian/changelog                                                               |   22 
 debian/patches/0001-nv50-fix-3D-render-target-setup.patch                      |   56 -
 debian/patches/0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch |   56 -
 debian/patches/0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch   |  139 ---
 debian/patches/0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch |  407 ----------
 debian/patches/02_use-ieee-fp-on-s390-and-m68k.patch                           |   21 
 debian/patches/10-hurd-configure-tweaks.diff                                   |   14 
 debian/patches/100_no_abi_tag.patch                                            |   44 -
 debian/patches/117-static-gallium.patch                                        |   17 
 debian/patches/119-libllvmradeon-link.patch                                    |    9 
 debian/patches/14-fix-osmesa-build.diff                                        |   10 
 debian/patches/15-fix-oot-build.diff                                           |   13 
 debian/patches/16-avoid-symbols-from-static-llvm.diff                          |   90 --
 debian/patches/series                                                          |   13 
 debian/patches/vbo-fix-crash.diff                                              |   29 
 debian/rules                                                                   |    5 
 docs/relnotes-9.1.1.html                                                       |    3 
 docs/relnotes-9.1.2.html                                                       |  235 +++++
 include/c99_compat.h                                                           |  147 +++
 src/egl/main/eglcompiler.h                                                     |   44 -
 src/gallium/auxiliary/Makefile.am                                              |    7 
 src/gallium/auxiliary/gallivm/lp_bld_tgsi.h                                    |    1 
 src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c                                |   20 
 src/gallium/auxiliary/tgsi/tgsi_text.c                                         |    2 
 src/gallium/drivers/Makefile.am                                                |    1 
 src/gallium/drivers/llvmpipe/lp_scene.c                                        |   22 
 src/gallium/drivers/llvmpipe/lp_scene.h                                        |   10 
 src/gallium/drivers/nv50/nv50_blit.h                                           |   40 
 src/gallium/drivers/nv50/nv50_state_validate.c                                 |   12 
 src/gallium/drivers/nv50/nv50_surface.c                                        |   77 +
 src/gallium/drivers/nvc0/nvc0_3d.xml.h                                         |    2 
 src/gallium/drivers/nvc0/nvc0_surface.c                                        |  123 ++-
 src/gallium/drivers/r300/compiler/radeon_optimize.c                            |    4 
 src/gallium/drivers/r600/r600_pipe.c                                           |    2 
 src/gallium/drivers/r600/r600_query.c                                          |    5 
 src/gallium/drivers/radeon/Makefile.am                                         |    4 
 src/gallium/drivers/radeonsi/si_state_draw.c                                   |    5 
 src/gallium/drivers/rbug/Makefile.am                                           |    1 
 src/gallium/drivers/svga/Makefile.am                                           |    2 
 src/gallium/drivers/trace/Makefile.am                                          |    3 
 src/gallium/include/pipe/p_compiler.h                                          |   74 -
 src/gallium/state_trackers/egl/Makefile.am                                     |    2 
 src/gallium/state_trackers/xa/Makefile.am                                      |    4 
 src/gallium/winsys/svga/drm/Makefile.am                                        |    2 
 src/glsl/glsl_types.cpp                                                        |    2 
 src/glsl/ir_validate.cpp                                                       |    6 
 src/glsl/linker.cpp                                                            |    2 
 src/glx/Makefile.am                                                            |    1 
 src/mapi/glapi/gen/gl_x86-64_asm.py                                            |   13 
 src/mapi/glapi/gen/gl_x86_asm.py                                               |   13 
 src/mapi/mapi/entry_x86-64_tls.h                                               |   13 
 src/mapi/mapi/entry_x86_tls.h                                                  |   13 
 src/mapi/mapi/u_compiler.h                                                     |   26 
 src/mesa/drivers/dri/i965/brw_clear.c                                          |    6 
 src/mesa/drivers/dri/i965/brw_defines.h                                        |   39 
 src/mesa/drivers/dri/i965/brw_eu_emit.c                                        |   15 
 src/mesa/drivers/dri/i965/brw_fs.cpp                                           |   26 
 src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp                            |   54 -
 src/mesa/drivers/dri/i965/brw_state.h                                          |    2 
 src/mesa/drivers/dri/i965/brw_vs.c                                             |    8 
 src/mesa/drivers/dri/i965/brw_vs_surface_state.c                               |    5 
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c                               |    8 
 src/mesa/drivers/dri/i965/gen6_cc.c                                            |    2 
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c                              |   40 
 src/mesa/drivers/dri/intel/intel_screen.c                                      |    2 
 src/mesa/drivers/dri/nouveau/nv10_context.c                                    |    2 
 src/mesa/drivers/osmesa/Makefile.am                                            |    1 
 src/mesa/main/compiler.h                                                       |   59 -
 src/mesa/main/fbobject.c                                                       |    4 
 src/mesa/main/get.c                                                            |   12 
 src/mesa/main/get_hash_params.py                                               |    2 
 src/mesa/main/mtypes.h                                                         |    1 
 src/mesa/main/samplerobj.c                                                     |   12 
 src/mesa/main/samplerobj.h                                                     |    2 
 src/mesa/main/tests/hash_table/Makefile.am                                     |    1 
 src/mesa/main/texgetimage.c                                                    |    1 
 src/mesa/main/teximage.c                                                       |   23 
 src/mesa/main/texparam.c                                                       |   12 
 src/mesa/main/texstorage.c                                                     |    1 
 src/mesa/main/version.h                                                        |    4 
 src/mesa/vbo/vbo_save_draw.c                                                   |    2 
 84 files changed, 951 insertions(+), 1310 deletions(-)

New commits:
commit 2bfae0f16f06aa812e0fabf12cde50cbdb3caf15
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Wed May 1 16:56:13 2013 -0400

    debian/changelog: Mark as UNRELEASED, whoops

diff --git a/debian/changelog b/debian/changelog
index 2d234d3..2c839cd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (9.1.2-0ubuntu1) saucy; urgency=low
+mesa (9.1.2-0ubuntu1) UNRELEASED; urgency=low
 
   * New upstream bug-fix release.
   * Drop upstream patches:

commit 8190e3a6530c3c34ba00055e5b51f3db16221821
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Wed May 1 16:55:06 2013 -0400

    debian/patches/117-static-gallium.patch: Refresh

diff --git a/debian/changelog b/debian/changelog
index 344c837..2d234d3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,8 @@ mesa (9.1.2-0ubuntu1) saucy; urgency=low
      - 100_no_abi_tag.patch
      - 119-libllvmradeon-link.patch
      - vbo-fix-crash.diff
+  * debian/patches/117-static-gallium.patch: Refresh for minor change
+    in 9.1.2
 
  -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 01 May 2013 16:40:16 -0400
 
diff --git a/debian/patches/117-static-gallium.patch b/debian/patches/117-static-gallium.patch
index ab72546..939cb73 100644
--- a/debian/patches/117-static-gallium.patch
+++ b/debian/patches/117-static-gallium.patch
@@ -1,6 +1,8 @@
+diff --git a/configure.ac b/configure.ac
+index b9fcb0b..be89843 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -733,6 +733,19 @@
+@@ -747,6 +747,19 @@ if test "x$enable_shared_glapi" = xyes; then
  fi
  AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
  
@@ -20,9 +22,11 @@
  dnl
  dnl Driver specific build directories
  dnl
+diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
+index f14279b..3cdec83 100644
 --- a/src/gallium/auxiliary/Makefile.am
 +++ b/src/gallium/auxiliary/Makefile.am
-@@ -3,13 +3,19 @@
+@@ -3,14 +3,19 @@ AUTOMAKE_OPTIONS = subdir-objects
  include Makefile.sources
  include $(top_srcdir)/src/gallium/Automake.inc
  
@@ -30,12 +34,13 @@
 -
  AM_CFLAGS = \
  	-I$(top_srcdir)/src/gallium/auxiliary/util \
--	$(GALLIUM_CFLAGS) $(VISIBILITY_CFLAGS)
+-	$(GALLIUM_CFLAGS) \
+-	$(VISIBILITY_CFLAGS)
 +	$(GALLIUM_CFLAGS)
-+
-+AM_CXXFLAGS =
  
 -AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS)
++AM_CXXFLAGS =
++
 +if HAVE_SHARED_GALLIUM
 +lib_LTLIBRARIES = libgallium.la
 +else
@@ -46,7 +51,7 @@
  
  libgallium_la_SOURCES = \
  	$(C_SOURCES) \
-@@ -28,6 +34,8 @@
+@@ -29,6 +34,8 @@ if LLVM_NEEDS_FNORTTI
  
  AM_CXXFLAGS += -fno-rtti
  

commit b6fef34a7d2af42f299d03de1d86c202c7c478c7
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Wed May 1 16:49:31 2013 -0400

    debian/patches: Drop upstreamed patches

diff --git a/debian/changelog b/debian/changelog
index 9eb2fb8..344c837 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,14 @@
 mesa (9.1.2-0ubuntu1) saucy; urgency=low
 
   * New upstream bug-fix release.
+  * Drop upstream patches:
+     - 0001-nv50-fix-3D-render-target-setup.patch
+     - 0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
+     - 0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
+     - 0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
+     - 100_no_abi_tag.patch
+     - 119-libllvmradeon-link.patch
+     - vbo-fix-crash.diff
 
  -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 01 May 2013 16:40:16 -0400
 
diff --git a/debian/patches/0001-nv50-fix-3D-render-target-setup.patch b/debian/patches/0001-nv50-fix-3D-render-target-setup.patch
deleted file mode 100644
index a02be67..0000000
--- a/debian/patches/0001-nv50-fix-3D-render-target-setup.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 7410ba12657fa3652d05c99d44eda68231b9c100 Mon Sep 17 00:00:00 2001
-From: Christoph Bumiller <e0425955@student.tuwien.ac.at>
-Date: Mon, 25 Mar 2013 19:41:18 +0100
-Subject: [PATCH 1/4] nv50: fix 3D render target setup
-
----
- src/gallium/drivers/nv50/nv50_state_validate.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c
-index a95e96d..f5e7b36 100644
---- a/src/gallium/drivers/nv50/nv50_state_validate.c
-+++ b/src/gallium/drivers/nv50/nv50_state_validate.c
-@@ -9,6 +9,7 @@ nv50_validate_fb(struct nv50_context *nv50)
-    struct pipe_framebuffer_state *fb = &nv50->framebuffer;
-    unsigned i;
-    unsigned ms_mode = NV50_3D_MULTISAMPLE_MODE_MS1;
-+   uint32_t array_size = 0xffff, array_mode = 0;
- 
-    nouveau_bufctx_reset(nv50->bufctx_3d, NV50_BIND_FB);
- 
-@@ -23,6 +24,13 @@ nv50_validate_fb(struct nv50_context *nv50)
-       struct nv50_surface *sf = nv50_surface(fb->cbufs[i]);
-       struct nouveau_bo *bo = mt->base.bo;
- 
-+      array_size = MIN2(array_size, sf->depth);
-+      if (mt->layout_3d)
-+         array_mode = NV50_3D_RT_ARRAY_MODE_MODE_3D; /* 1 << 16 */
-+
-+      /* can't mix 3D with ARRAY or have RTs of different depth/array_size */
-+      assert(mt->layout_3d || !array_mode || array_size == 1);
-+
-       BEGIN_NV04(push, NV50_3D(RT_ADDRESS_HIGH(i)), 5);
-       PUSH_DATAh(push, bo->offset + sf->offset);
-       PUSH_DATA (push, bo->offset + sf->offset);
-@@ -34,7 +42,7 @@ nv50_validate_fb(struct nv50_context *nv50)
-          PUSH_DATA (push, sf->width);
-          PUSH_DATA (push, sf->height);
-          BEGIN_NV04(push, NV50_3D(RT_ARRAY_MODE), 1);
--         PUSH_DATA (push, sf->depth);
-+         PUSH_DATA (push, array_mode | array_size);
-       } else {
-          PUSH_DATA (push, 0);
-          PUSH_DATA (push, 0);
-@@ -63,7 +71,7 @@ nv50_validate_fb(struct nv50_context *nv50)
-       struct nv50_miptree *mt = nv50_miptree(fb->zsbuf->texture);
-       struct nv50_surface *sf = nv50_surface(fb->zsbuf);
-       struct nouveau_bo *bo = mt->base.bo;
--      int unk = mt->base.base.target == PIPE_TEXTURE_2D;
-+      int unk = mt->base.base.target == PIPE_TEXTURE_3D || sf->depth == 1;
- 
-       BEGIN_NV04(push, NV50_3D(ZETA_ADDRESS_HIGH), 5);
-       PUSH_DATAh(push, bo->offset + sf->offset);
--- 
-1.8.2
-
diff --git a/debian/patches/0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch b/debian/patches/0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
deleted file mode 100644
index 3b04386..0000000
--- a/debian/patches/0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 5ba62ee2011b44e8a40bab6435a8edaf03cda612 Mon Sep 17 00:00:00 2001
-From: Christoph Bumiller <e0425955@student.tuwien.ac.at>
-Date: Sun, 31 Mar 2013 22:10:02 +0200
-Subject: [PATCH 2/4] nv50,nvc0: disable DEPTH_RANGE_NEAR/FAR clipping during
- blit
-
-We send position.z == 0, DEPTH_RANGE may be some arbitrary range
-not including 0 (for exmaple in piglit's hiz tests).
----
- src/gallium/drivers/nv50/nv50_surface.c | 2 ++
- src/gallium/drivers/nvc0/nvc0_3d.xml.h  | 2 +-
- src/gallium/drivers/nvc0/nvc0_surface.c | 2 ++
- 3 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
-index 7a0470c..b1b5cb3 100644
---- a/src/gallium/drivers/nv50/nv50_surface.c
-+++ b/src/gallium/drivers/nv50/nv50_surface.c
-@@ -977,6 +977,8 @@ nv50_blit_3d(struct nv50_context *nv50, const struct pipe_blit_info *info)
- 
-    BEGIN_NV04(push, NV50_3D(VIEWPORT_TRANSFORM_EN), 1);
-    PUSH_DATA (push, 0);
-+   BEGIN_NV04(push, NV50_3D(VIEW_VOLUME_CLIP_CTRL), 1);
-+   PUSH_DATA (push, 0x1);
- 
-    /* Draw a large triangle in screen coordinates covering the whole
-     * render target, with scissors defining the destination region.
-diff --git a/src/gallium/drivers/nvc0/nvc0_3d.xml.h b/src/gallium/drivers/nvc0/nvc0_3d.xml.h
-index 1cf1f96..bd3de58 100644
---- a/src/gallium/drivers/nvc0/nvc0_3d.xml.h
-+++ b/src/gallium/drivers/nvc0/nvc0_3d.xml.h
-@@ -1041,7 +1041,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- #define NVC0_3D_VIEWPORT_TRANSFORM_EN				0x0000192c
- 
- #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL				0x0000193c
--#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK0			0x00000001
-+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_RANGE_0_1		0x00000001
- #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__MASK		0x00000006
- #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__SHIFT		1
- #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK0			0x00000000
-diff --git a/src/gallium/drivers/nvc0/nvc0_surface.c b/src/gallium/drivers/nvc0/nvc0_surface.c
-index 281d740..94ac241 100644
---- a/src/gallium/drivers/nvc0/nvc0_surface.c
-+++ b/src/gallium/drivers/nvc0/nvc0_surface.c
-@@ -859,6 +859,8 @@ nvc0_blit_3d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
-       z += 0.5f * dz;
- 
-    IMMED_NVC0(push, NVC0_3D(VIEWPORT_TRANSFORM_EN), 0);
-+   IMMED_NVC0(push, NVC0_3D(VIEW_VOLUME_CLIP_CTRL), 0x2 |
-+              NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_RANGE_0_1);
-    BEGIN_NVC0(push, NVC0_3D(VIEWPORT_HORIZ(0)), 2);
-    PUSH_DATA (push, nvc0->framebuffer.width << 16);
-    PUSH_DATA (push, nvc0->framebuffer.height << 16);
--- 
-1.8.2
-
diff --git a/debian/patches/0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch b/debian/patches/0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
deleted file mode 100644
index fcf2118..0000000
--- a/debian/patches/0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From ac4be462795590019c262161f6147f6108e796ff Mon Sep 17 00:00:00 2001
-From: Christoph Bumiller <e0425955@student.tuwien.ac.at>
-Date: Fri, 22 Mar 2013 13:49:40 +0100
-Subject: [PATCH 3/4] nv50,nvc0: fix 3d blits, restore viewport after blit
-
-Conflicts:
-	src/gallium/drivers/nvc0/nvc0_surface.c
----
- src/gallium/drivers/nv50/nv50_surface.c |  8 +++++--
- src/gallium/drivers/nvc0/nvc0_surface.c | 42 ++++++++++++++++++++-------------
- 2 files changed, 32 insertions(+), 18 deletions(-)
-
-diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
-index b1b5cb3..16f77cd 100644
---- a/src/gallium/drivers/nv50/nv50_surface.c
-+++ b/src/gallium/drivers/nv50/nv50_surface.c
-@@ -936,7 +936,7 @@ nv50_blit_3d(struct nv50_context *nv50, const struct pipe_blit_info *info)
-    nv50_blit_select_fp(blit, info);
-    nv50_blitctx_pre_blit(blit);
- 
--   nv50_blit_set_dst(blit, dst, info->dst.level,  0, info->dst.format);
-+   nv50_blit_set_dst(blit, dst, info->dst.level, -1, info->dst.format);
-    nv50_blit_set_src(blit, src, info->src.level, -1, info->src.format,
-                      blit->filter);
- 
-@@ -1226,10 +1226,14 @@ nv50_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
-       debug_printf("blit: cannot filter array or cube textures in z direction");
-    }
- 
--   if (!eng3d && info->dst.format != info->src.format)
-+   if (!eng3d && info->dst.format != info->src.format) {
-       if (!nv50_2d_format_faithful(info->dst.format) ||
-           !nv50_2d_format_faithful(info->src.format))
-          eng3d = TRUE;
-+      if (info->dst.format == PIPE_FORMAT_R8_UNORM ||
-+          info->dst.format == PIPE_FORMAT_R16_UNORM)
-+         eng3d = TRUE;
-+   }
- 
-    if (info->src.resource->nr_samples == 8 &&
-        info->dst.resource->nr_samples <= 1)
-diff --git a/src/gallium/drivers/nvc0/nvc0_surface.c b/src/gallium/drivers/nvc0/nvc0_surface.c
-index 94ac241..80f6f6f 100644
---- a/src/gallium/drivers/nvc0/nvc0_surface.c
-+++ b/src/gallium/drivers/nvc0/nvc0_surface.c
-@@ -490,19 +490,19 @@ nvc0_blitter_make_vp(struct nvc0_blitter *blit)
- {
-    static const uint32_t code_nvc0[] =
-    {
--      0xfff01c66, 0x06000080, /* vfetch b128 { $r0 $r1 $r2 $r3 } a[0x80] */
--      0xfff11c26, 0x06000090, /* vfetch b96 { $r4 $r5 $r6 } a[0x90]*/
--      0x03f01c66, 0x0a7e0070, /* export b128 o[0x70] { $r0 $r1 $r2 $r3 } */
--      0x13f01c26, 0x0a7e0080, /* export b96 o[0x80] { $r4 $r5 $r6 } */
-+      0xfff11c26, 0x06000080, /* vfetch b64 $r4:$r5 a[0x80] */
-+      0xfff01c46, 0x06000090, /* vfetch b96 $r0:$r1:$r2 a[0x90] */
-+      0x13f01c26, 0x0a7e0070, /* export b64 o[0x70] $r4:$r5 */
-+      0x03f01c46, 0x0a7e0080, /* export b96 o[0x80] $r0:$r1:$r2 */
-       0x00001de7, 0x80000000, /* exit */
-    };
-    static const uint32_t code_nve4[] =
-    {
-       0x00000007, 0x20000000, /* sched */
--      0xfff01c66, 0x06000080, /* vfetch b128 { $r0 $r1 $r2 $r3 } a[0x80] */
--      0xfff11c46, 0x06000090, /* vfetch b96 { $r4 $r5 $r6 } a[0x90]*/
--      0x03f01c66, 0x0a7e0070, /* export b128 o[0x70] { $r0 $r1 $r2 $r3 } */
--      0x13f01c46, 0x0a7e0080, /* export b96 o[0x80] { $r4 $r5 $r6 } */
-+      0xfff11c26, 0x06000080, /* vfetch b64 $r4:$r5 a[0x80] */
-+      0xfff01c46, 0x06000090, /* vfetch b96 $r0:$r1:$r2 a[0x90] */
-+      0x13f01c26, 0x0a7e0070, /* export b64 o[0x70] $r4:$r5 */
-+      0x03f01c46, 0x0a7e0080, /* export b96 o[0x80] $r0:$r1:$r2 */
-       0x00001de7, 0x80000000, /* exit */
-    };
- 
-@@ -515,13 +515,13 @@ nvc0_blitter_make_vp(struct nvc0_blitter *blit)
-       blit->vp.code = (uint32_t *)code_nvc0; /* const_cast */
-       blit->vp.code_size = sizeof(code_nvc0);
-    }
--   blit->vp.max_gpr = 7;
-+   blit->vp.max_gpr = 6;
-    blit->vp.vp.edgeflag = PIPE_MAX_ATTRIBS;
- 
-    blit->vp.hdr[0]  = 0x00020461; /* vertprog magic */
-    blit->vp.hdr[4]  = 0x000ff000; /* no outputs read */
--   blit->vp.hdr[6]  = 0x0000003f; /* a[0x80], a[0x90] */
--   blit->vp.hdr[13] = 0x0003f000; /* o[0x70], o[0x80] */
-+   blit->vp.hdr[6]  = 0x00000073; /* a[0x80].xy, a[0x90].xyz */
-+   blit->vp.hdr[13] = 0x00073000; /* o[0x70].xy, o[0x80].xyz */
- }
- 
- static void
-@@ -820,7 +820,7 @@ nvc0_blit_3d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
-    nvc0_blit_select_fp(blit, info);
-    nvc0_blitctx_pre_blit(blit);
- 
--   nvc0_blit_set_dst(blit, dst, info->dst.level,  0, info->dst.format);
-+   nvc0_blit_set_dst(blit, dst, info->dst.level, -1, info->dst.format);
-    nvc0_blit_set_src(blit, src, info->src.level, -1, info->src.format,
-                      blit->filter);
- 
-@@ -927,11 +927,14 @@ nvc0_blit_3d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
-    if (info->dst.box.z + info->dst.box.depth - 1)
-       IMMED_NVC0(push, NVC0_3D(LAYER), 0);
- 
--   /* re-enable normally constant state */
-+   nvc0_blitctx_post_blit(blit);
- 
--   IMMED_NVC0(push, NVC0_3D(VIEWPORT_TRANSFORM_EN), 1);
-+   /* restore viewport */
- 
--   nvc0_blitctx_post_blit(blit);
-+   BEGIN_NVC0(push, NVC0_3D(VIEWPORT_HORIZ(0)), 2);
-+   PUSH_DATA (push, nvc0->framebuffer.width << 16);
-+   PUSH_DATA (push, nvc0->framebuffer.height << 16);
-+   IMMED_NVC0(push, NVC0_3D(VIEWPORT_TRANSFORM_EN), 1);
- }
- 
- static void
-@@ -1108,10 +1111,17 @@ nvc0_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
-       debug_printf("blit: cannot filter array or cube textures in z direction");
-    }
- 
--   if (!eng3d && info->dst.format != info->src.format)
-+   if (!eng3d && info->dst.format != info->src.format) {
-       if (!nvc0_2d_format_faithful(info->dst.format) ||
-           !nvc0_2d_format_faithful(info->src.format))
-          eng3d = TRUE;
-+      /* For some retarded reason, if dst is R8/16_UNORM, the 2d engine doesn't
-+       * like to do any format conversion (DATA_ERROR 0x34 on trigger).
-+       */
-+      if (info->dst.format == PIPE_FORMAT_R8_UNORM ||
-+          info->dst.format == PIPE_FORMAT_R16_UNORM)
-+         eng3d = TRUE;
-+   }
- 
-    if (info->src.resource->nr_samples == 8 &&
-        info->dst.resource->nr_samples <= 1)
--- 
-1.8.2
-
diff --git a/debian/patches/0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch b/debian/patches/0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
deleted file mode 100644
index 09e3ce9..0000000
--- a/debian/patches/0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
+++ /dev/null
@@ -1,407 +0,0 @@
-From 923bb2d8edbcda9f4a293a0efd04d533382978e0 Mon Sep 17 00:00:00 2001
-From: Christoph Bumiller <e0425955@student.tuwien.ac.at>
-Date: Sat, 30 Mar 2013 21:28:30 +0100
-Subject: [PATCH 4/4] nvc0: fix for 2d engine R source formats writing RRR1 and
- not R001
-
----
- src/gallium/drivers/nv50/nv50_blit.h    | 40 +++++++++++++++
- src/gallium/drivers/nv50/nv50_surface.c | 71 +++++++++++++++++---------
- src/gallium/drivers/nvc0/nvc0_surface.c | 89 ++++++++++++++++++++++-----------
- 3 files changed, 148 insertions(+), 52 deletions(-)
-
-diff --git a/src/gallium/drivers/nv50/nv50_blit.h b/src/gallium/drivers/nv50/nv50_blit.h
-index d409f21..bdd6a63 100644
---- a/src/gallium/drivers/nv50/nv50_blit.h
-+++ b/src/gallium/drivers/nv50/nv50_blit.h
-@@ -180,4 +180,44 @@ nv50_blit_eng2d_get_mask(const struct pipe_blit_info *info)
-    return mask;
- }
- 
-+#if NOUVEAU_DRIVER == 0xc0
-+# define nv50_format_table nvc0_format_table
-+#endif
-+
-+/* return TRUE for formats that can be converted among each other by NVC0_2D */
-+static INLINE boolean
-+nv50_2d_dst_format_faithful(enum pipe_format format)
-+{
-+   const uint64_t mask =
-+       NV50_ENG2D_SUPPORTED_FORMATS &
-+      ~NV50_ENG2D_NOCONVERT_FORMATS;
-+   uint8_t id = nv50_format_table[format].rt;
-+   return (id >= 0xc0) && (mask & (1ULL << (id - 0xc0)));
-+}
-+static INLINE boolean
-+nv50_2d_src_format_faithful(enum pipe_format format)
-+{
-+   const uint64_t mask =
-+      NV50_ENG2D_SUPPORTED_FORMATS &
-+    ~(NV50_ENG2D_LUMINANCE_FORMATS | NV50_ENG2D_INTENSITY_FORMATS);
-+   uint8_t id = nv50_format_table[format].rt;
-+   return (id >= 0xc0) && (mask & (1ULL << (id - 0xc0)));
-+}
-+
-+static INLINE boolean
-+nv50_2d_format_supported(enum pipe_format format)
-+{
-+   uint8_t id = nv50_format_table[format].rt;
-+   return (id >= 0xc0) &&
-+      (NV50_ENG2D_SUPPORTED_FORMATS & (1ULL << (id - 0xc0)));
-+}
-+
-+static INLINE boolean
-+nv50_2d_dst_format_ops_supported(enum pipe_format format)
-+{
-+   uint8_t id = nv50_format_table[format].rt;
-+   return (id >= 0xc0) &&
-+      (NV50_ENG2D_OPERATION_FORMATS & (1ULL << (id - 0xc0)));
-+}
-+
- #endif /* __NV50_BLIT_H__ */
-diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c
-index 16f77cd..3a780f6 100644
---- a/src/gallium/drivers/nv50/nv50_surface.c
-+++ b/src/gallium/drivers/nv50/nv50_surface.c
-@@ -35,25 +35,22 @@
- 
- #include "nv50_context.h"
- #include "nv50_resource.h"
--#include "nv50_blit.h"
- 
- #include "nv50_defs.xml.h"
- #include "nv50_texture.xml.h"
- 
-+/* these are used in nv50_blit.h */
- #define NV50_ENG2D_SUPPORTED_FORMATS 0xff0843e080608409ULL
-+#define NV50_ENG2D_NOCONVERT_FORMATS 0x0008402000000000ULL
-+#define NV50_ENG2D_LUMINANCE_FORMATS 0x0008402000000000ULL
-+#define NV50_ENG2D_INTENSITY_FORMATS 0x0000000000000000ULL
-+#define NV50_ENG2D_OPERATION_FORMATS 0x060001c000608000ULL
- 
--/* return TRUE for formats that can be converted among each other by NV50_2D */
--static INLINE boolean
--nv50_2d_format_faithful(enum pipe_format format)
--{
--   uint8_t id = nv50_format_table[format].rt;
--
--   return (id >= 0xc0) &&
--      (NV50_ENG2D_SUPPORTED_FORMATS & (1ULL << (id - 0xc0)));
--}
-+#define NOUVEAU_DRIVER 0x50
-+#include "nv50_blit.h"
- 
- static INLINE uint8_t
--nv50_2d_format(enum pipe_format format)
-+nv50_2d_format(enum pipe_format format, boolean dst, boolean dst_src_equal)
- {
-    uint8_t id = nv50_format_table[format].rt;
- 
-@@ -62,6 +59,7 @@ nv50_2d_format(enum pipe_format format)
-     */
-    if ((id >= 0xc0) && (NV50_ENG2D_SUPPORTED_FORMATS & (1ULL << (id - 0xc0))))
-       return id;
-+   assert(dst_src_equal);
- 
-    switch (util_format_get_blocksize(format)) {
-    case 1:
-@@ -78,7 +76,7 @@ nv50_2d_format(enum pipe_format format)
- static int
- nv50_2d_texture_set(struct nouveau_pushbuf *push, int dst,
-                     struct nv50_miptree *mt, unsigned level, unsigned layer,
--                    enum pipe_format pformat)
-+                    enum pipe_format pformat, boolean dst_src_pformat_equal)
- {
-    struct nouveau_bo *bo = mt->base.bo;
-    uint32_t width, height, depth;
-@@ -86,7 +84,7 @@ nv50_2d_texture_set(struct nouveau_pushbuf *push, int dst,
-    uint32_t mthd = dst ? NV50_2D_DST_FORMAT : NV50_2D_SRC_FORMAT;
-    uint32_t offset = mt->level[level].offset;
- 
--   format = nv50_2d_format(pformat);
-+   format = nv50_2d_format(pformat, dst, dst_src_pformat_equal);
-    if (!format) {
-       NOUVEAU_ERR("invalid/unsupported surface format: %s\n",
-                   util_format_name(pformat));
-@@ -155,15 +153,16 @@ nv50_2d_texture_do_copy(struct nouveau_pushbuf *push,
-    const enum pipe_format dfmt = dst->base.base.format;
-    const enum pipe_format sfmt = src->base.base.format;
-    int ret;
-+   boolean eqfmt = dfmt == sfmt;
- 
-    if (!PUSH_SPACE(push, 2 * 16 + 32))
-       return PIPE_ERROR;
- 
--   ret = nv50_2d_texture_set(push, 1, dst, dst_level, dz, dfmt);
-+   ret = nv50_2d_texture_set(push, 1, dst, dst_level, dz, dfmt, eqfmt);
-    if (ret)
-       return ret;
- 
--   ret = nv50_2d_texture_set(push, 0, src, src_level, sz, sfmt);
-+   ret = nv50_2d_texture_set(push, 0, src, src_level, sz, sfmt, eqfmt);
-    if (ret)
-       return ret;
- 
-@@ -243,8 +242,8 @@ nv50_resource_copy_region(struct pipe_context *pipe,
-    }
- 
-    assert((src->format == dst->format) ||
--          (nv50_2d_format_faithful(src->format) &&
--           nv50_2d_format_faithful(dst->format)));
-+          (nv50_2d_src_format_faithful(src->format) &&
-+           nv50_2d_dst_format_faithful(dst->format)));
- 
-    BCTX_REFN(nv50->bufctx, 2D, nv04_resource(src), RD);
-    BCTX_REFN(nv50->bufctx, 2D, nv04_resource(dst), WR);
-@@ -1061,7 +1060,8 @@ nv50_blit_eng2d(struct nv50_context *nv50, const struct pipe_blit_info *info)
-    int64_t du_dx, dv_dy;
-    int i;
-    uint32_t mode;
--   const uint32_t mask = nv50_blit_eng2d_get_mask(info);
-+   uint32_t mask = nv50_blit_eng2d_get_mask(info);
-+   boolean b;
- 
-    mode = nv50_blit_get_filter(info) ?
-       NV50_2D_BLIT_CONTROL_FILTER_BILINEAR :
-@@ -1072,8 +1072,9 @@ nv50_blit_eng2d(struct nv50_context *nv50, const struct pipe_blit_info *info)
-    du_dx = ((int64_t)info->src.box.width << 32) / info->dst.box.width;
-    dv_dy = ((int64_t)info->src.box.height << 32) / info->dst.box.height;
- 
--   nv50_2d_texture_set(push, 1, dst, info->dst.level, dz, info->dst.format);
--   nv50_2d_texture_set(push, 0, src, info->src.level, sz, info->src.format);
-+   b = info->dst.format == info->src.format;
-+   nv50_2d_texture_set(push, 1, dst, info->dst.level, dz, info->dst.format, b);
-+   nv50_2d_texture_set(push, 0, src, info->src.level, sz, info->src.format, b);
- 
-    if (info->scissor_enable) {
-       BEGIN_NV04(push, NV50_2D(CLIP_X), 5);
-@@ -1096,6 +1097,17 @@ nv50_blit_eng2d(struct nv50_context *nv50, const struct pipe_blit_info *info)
-       PUSH_DATA (push, 0xffffffff);
-       BEGIN_NV04(push, NV50_2D(OPERATION), 1);
-       PUSH_DATA (push, NV50_2D_OPERATION_ROP);
-+   } else
-+   if (info->src.format != info->dst.format) {
-+      if (info->src.format == PIPE_FORMAT_R8_UNORM ||
-+          info->src.format == PIPE_FORMAT_R16_UNORM ||
-+          info->src.format == PIPE_FORMAT_R16_FLOAT ||
-+          info->src.format == PIPE_FORMAT_R32_FLOAT) {
-+         mask = 0xffff0000; /* also makes condition for OPERATION reset true */
-+         BEGIN_NV04(push, NV50_2D(BETA4), 2);
-+         PUSH_DATA (push, mask);
-+         PUSH_DATA (push, NV50_2D_OPERATION_SRCCOPY_PREMULT);
-+      }
-    }
- 
-    if (src->ms_x > dst->ms_x || src->ms_y > dst->ms_y) {
-@@ -1227,11 +1239,22 @@ nv50_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
-    }
- 
-    if (!eng3d && info->dst.format != info->src.format) {
--      if (!nv50_2d_format_faithful(info->dst.format) ||
--          !nv50_2d_format_faithful(info->src.format))
-+      if (!nv50_2d_dst_format_faithful(info->dst.format) ||
-+          !nv50_2d_src_format_faithful(info->src.format)) {
-          eng3d = TRUE;
--      if (info->dst.format == PIPE_FORMAT_R8_UNORM ||
--          info->dst.format == PIPE_FORMAT_R16_UNORM)
-+      } else
-+      if (!nv50_2d_src_format_faithful(info->src.format)) {
-+         if (!util_format_is_luminance(info->src.format)) {
-+            if (util_format_is_intensity(info->src.format))
-+               eng3d = TRUE;
-+            else
-+            if (!nv50_2d_dst_format_ops_supported(info->dst.format))
-+               eng3d = TRUE;
-+            else
-+               eng3d = !nv50_2d_format_supported(info->src.format);
-+         }
-+      } else
-+      if (util_format_is_luminance_alpha(info->src.format))
-          eng3d = TRUE;
-    }
- 
-diff --git a/src/gallium/drivers/nvc0/nvc0_surface.c b/src/gallium/drivers/nvc0/nvc0_surface.c
-index 80f6f6f..66154a4 100644
---- a/src/gallium/drivers/nvc0/nvc0_surface.c
-+++ b/src/gallium/drivers/nvc0/nvc0_surface.c
-@@ -36,29 +36,32 @@
- 
- #include "nv50/nv50_defs.xml.h"
- #include "nv50/nv50_texture.xml.h"
--#include "nv50/nv50_blit.h"
- 
--#define NVC0_ENG2D_SUPPORTED_FORMATS 0xff9ccfe1cce3ccc9ULL
-+/* these are used in nv50_blit.h */
-+#define NV50_ENG2D_SUPPORTED_FORMATS 0xff9ccfe1cce3ccc9ULL
-+#define NV50_ENG2D_NOCONVERT_FORMATS 0x009cc02000000000ULL
-+#define NV50_ENG2D_LUMINANCE_FORMATS 0x001cc02000000000ULL
-+#define NV50_ENG2D_INTENSITY_FORMATS 0x0080000000000000ULL
-+#define NV50_ENG2D_OPERATION_FORMATS 0x060001c000638000ULL
- 
--/* return TRUE for formats that can be converted among each other by NVC0_2D */
--static INLINE boolean
--nvc0_2d_format_faithful(enum pipe_format format)
--{
--   uint8_t id = nvc0_format_table[format].rt;
--
--   return (id >= 0xc0) && (NVC0_ENG2D_SUPPORTED_FORMATS & (1ULL << (id - 0xc0)));
--}
-+#define NOUVEAU_DRIVER 0xc0
-+#include "nv50/nv50_blit.h"
- 
- static INLINE uint8_t
--nvc0_2d_format(enum pipe_format format)
-+nvc0_2d_format(enum pipe_format format, boolean dst, boolean dst_src_equal)
- {
-    uint8_t id = nvc0_format_table[format].rt;
- 
-+   /* A8_UNORM is treated as I8_UNORM as far as the 2D engine is concerned. */
-+   if (!dst && unlikely(format == PIPE_FORMAT_I8_UNORM) && !dst_src_equal)
-+      return NV50_SURFACE_FORMAT_A8_UNORM;
-+
-    /* Hardware values for color formats range from 0xc0 to 0xff,
-     * but the 2D engine doesn't support all of them.
-     */
--   if (nvc0_2d_format_faithful(format))
-+   if (nv50_2d_format_supported(format))
-       return id;
-+   assert(dst_src_equal);
- 
-    switch (util_format_get_blocksize(format)) {
-    case 1:
-@@ -72,6 +75,7 @@ nvc0_2d_format(enum pipe_format format)
-    case 16:
-       return NV50_SURFACE_FORMAT_RGBA32_FLOAT;
-    default:
-+      assert(0);
-       return 0;
-    }
- }
-@@ -79,7 +83,7 @@ nvc0_2d_format(enum pipe_format format)
- static int
- nvc0_2d_texture_set(struct nouveau_pushbuf *push, boolean dst,
-                     struct nv50_miptree *mt, unsigned level, unsigned layer,
--                    enum pipe_format pformat)
-+                    enum pipe_format pformat, boolean dst_src_pformat_equal)
- {
-    struct nouveau_bo *bo = mt->base.bo;
-    uint32_t width, height, depth;
-@@ -87,7 +91,7 @@ nvc0_2d_texture_set(struct nouveau_pushbuf *push, boolean dst,
-    uint32_t mthd = dst ? NVC0_2D_DST_FORMAT : NVC0_2D_SRC_FORMAT;
-    uint32_t offset = mt->level[level].offset;
- 
--   format = nvc0_2d_format(pformat);
-+   format = nvc0_2d_format(pformat, dst, dst_src_pformat_equal);
-    if (!format) {
-       NOUVEAU_ERR("invalid/unsupported surface format: %s\n",
-                   util_format_name(pformat));
-@@ -157,15 +161,16 @@ nvc0_2d_texture_do_copy(struct nouveau_pushbuf *push,
-    const enum pipe_format dfmt = dst->base.base.format;
-    const enum pipe_format sfmt = src->base.base.format;
-    int ret;
-+   boolean eqfmt = dfmt == sfmt;
- 
-    if (!PUSH_SPACE(push, 2 * 16 + 32))
-       return PIPE_ERROR;
- 
--   ret = nvc0_2d_texture_set(push, TRUE, dst, dst_level, dz, dfmt);
-+   ret = nvc0_2d_texture_set(push, TRUE, dst, dst_level, dz, dfmt, eqfmt);
-    if (ret)
-       return ret;
- 
--   ret = nvc0_2d_texture_set(push, FALSE, src, src_level, sz, sfmt);
-+   ret = nvc0_2d_texture_set(push, FALSE, src, src_level, sz, sfmt, eqfmt);
-    if (ret)
-       return ret;
- 
-@@ -243,8 +248,8 @@ nvc0_resource_copy_region(struct pipe_context *pipe,
-       return;
-    }
- 
--   assert(nvc0_2d_format_faithful(src->format));
--   assert(nvc0_2d_format_faithful(dst->format));
-+   assert(nv50_2d_dst_format_faithful(dst->format));
-+   assert(nv50_2d_src_format_faithful(src->format));
- 
-    BCTX_REFN(nvc0->bufctx, 2D, nv04_resource(src), RD);
-    BCTX_REFN(nvc0->bufctx, 2D, nv04_resource(dst), WR);
-@@ -953,7 +958,8 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
-    int64_t du_dx, dv_dy;
-    int i;
-    uint32_t mode;
--   const uint32_t mask = nv50_blit_eng2d_get_mask(info);
-+   uint32_t mask = nv50_blit_eng2d_get_mask(info);
-+   boolean b;
- 
-    mode = nv50_blit_get_filter(info) ?
-       NVC0_2D_BLIT_CONTROL_FILTER_BILINEAR :
-@@ -964,8 +970,9 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
-    du_dx = ((int64_t)info->src.box.width << 32) / info->dst.box.width;
-    dv_dy = ((int64_t)info->src.box.height << 32) / info->dst.box.height;
- 
--   nvc0_2d_texture_set(push, 1, dst, info->dst.level, dz, info->dst.format);
--   nvc0_2d_texture_set(push, 0, src, info->src.level, sz, info->src.format);
-+   b = info->dst.format == info->src.format;
-+   nvc0_2d_texture_set(push, 1, dst, info->dst.level, dz, info->dst.format, b);
-+   nvc0_2d_texture_set(push, 0, src, info->src.level, sz, info->src.format, b);
- 
-    if (info->scissor_enable) {
-       BEGIN_NVC0(push, NVC0_2D(CLIP_X), 5);
-@@ -986,6 +993,25 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
-       PUSH_DATA (push, 0xffffffff);
-       PUSH_DATA (push, 0xffffffff);
-       IMMED_NVC0(push, NVC0_2D(OPERATION), NVC0_2D_OPERATION_ROP);
-+   } else
-+   if (info->src.format != info->dst.format) {
-+      if (info->src.format == PIPE_FORMAT_R8_UNORM ||
-+          info->src.format == PIPE_FORMAT_R8_SNORM ||
-+          info->src.format == PIPE_FORMAT_R16_UNORM ||
-+          info->src.format == PIPE_FORMAT_R16_SNORM ||
-+          info->src.format == PIPE_FORMAT_R16_FLOAT ||
-+          info->src.format == PIPE_FORMAT_R32_FLOAT) {
-+         mask = 0xffff0000; /* also makes condition for OPERATION reset true */
-+         BEGIN_NVC0(push, NVC0_2D(BETA4), 2);
-+         PUSH_DATA (push, mask);
-+         PUSH_DATA (push, NVC0_2D_OPERATION_SRCCOPY_PREMULT);
-+      } else
-+      if (info->src.format == PIPE_FORMAT_A8_UNORM) {
-+         mask = 0xff000000;
-+         BEGIN_NVC0(push, NVC0_2D(BETA4), 2);
-+         PUSH_DATA (push, mask);
-+         PUSH_DATA (push, NVC0_2D_OPERATION_SRCCOPY_PREMULT);
-+      }
-    }
- 
-    if (src->ms_x > dst->ms_x || src->ms_y > dst->ms_y) {
-@@ -1112,14 +1138,21 @@ nvc0_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
-    }
- 
-    if (!eng3d && info->dst.format != info->src.format) {
--      if (!nvc0_2d_format_faithful(info->dst.format) ||
--          !nvc0_2d_format_faithful(info->src.format))
-+      if (!nv50_2d_dst_format_faithful(info->dst.format)) {
-          eng3d = TRUE;
--      /* For some retarded reason, if dst is R8/16_UNORM, the 2d engine doesn't
--       * like to do any format conversion (DATA_ERROR 0x34 on trigger).
--       */
--      if (info->dst.format == PIPE_FORMAT_R8_UNORM ||
--          info->dst.format == PIPE_FORMAT_R16_UNORM)
-+      } else
-+      if (!nv50_2d_src_format_faithful(info->src.format)) {
-+         if (!util_format_is_luminance(info->src.format)) {
-+            if (util_format_is_intensity(info->src.format))
-+               eng3d = info->src.format != PIPE_FORMAT_I8_UNORM;
-+            else
-+            if (!nv50_2d_dst_format_ops_supported(info->dst.format))
-+               eng3d = TRUE;
-+            else
-+               eng3d = !nv50_2d_format_supported(info->src.format);
-+         }
-+      } else
-+      if (util_format_is_luminance_alpha(info->src.format))
-          eng3d = TRUE;
-    }
- 
--- 
-1.8.2
-
diff --git a/debian/patches/100_no_abi_tag.patch b/debian/patches/100_no_abi_tag.patch
deleted file mode 100644
index 80f1d32..0000000
--- a/debian/patches/100_no_abi_tag.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/src/mapi/glapi/gen/gl_x86-64_asm.py
-+++ b/src/mapi/glapi/gen/gl_x86-64_asm.py
-@@ -181,19 +181,6 @@ class PrintGenericStubs(gl_XML.gl_print_
- 
-     def printRealFooter(self):
-         print ''
--        print '#if defined(GLX_USE_TLS) && defined(__linux__)'
--        print '	.section ".note.ABI-tag", "a"'
--        print '	.p2align 2'
--        print '	.long	1f - 0f   /* name length */'
--        print '	.long	3f - 2f   /* data length */'
--        print '	.long	1         /* note length */'
--        print '0:	.asciz "GNU"      /* vendor name */'
--        print '1:	.p2align 2'
--        print '2:	.long	0         /* note data: the ABI tag */'
--        print '	.long	2,4,20    /* Minimum kernel version w/TLS */'
--        print '3:	.p2align 2        /* pad out section */'
--        print '#endif /* GLX_USE_TLS */'
--        print ''
-         print '#if defined (__ELF__) && defined (__linux__)'
-         print '	.section .note.GNU-stack,"",%progbits'
-         print '#endif'
---- a/src/mapi/glapi/gen/gl_x86_asm.py
-+++ b/src/mapi/glapi/gen/gl_x86_asm.py
-@@ -189,19 +189,6 @@ class PrintGenericStubs(gl_XML.gl_print_
-         print '\t\tALIGNTEXT16'
-         print 'GLNAME(gl_dispatch_functions_end):'
-         print ''
--        print '#if defined(GLX_USE_TLS) && defined(__linux__)'
--        print '	.section ".note.ABI-tag", "a"'
--        print '	.p2align 2'
--        print '	.long	1f - 0f   /* name length */'
--        print '	.long	3f - 2f   /* data length */'
--        print '	.long	1         /* note length */'
--        print '0:	.asciz "GNU"      /* vendor name */'
--        print '1:	.p2align 2'
--        print '2:	.long	0         /* note data: the ABI tag */'
--        print '	.long	2,4,20    /* Minimum kernel version w/TLS */'
--        print '3:	.p2align 2        /* pad out section */'
--        print '#endif /* GLX_USE_TLS */'
--        print ''
-         print '#if defined (__ELF__) && defined (__linux__)'
-         print '	.section .note.GNU-stack,"",%progbits'
-         print '#endif'
diff --git a/debian/patches/119-libllvmradeon-link.patch b/debian/patches/119-libllvmradeon-link.patch
deleted file mode 100644
index ee47f8a..0000000
--- a/debian/patches/119-libllvmradeon-link.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/src/gallium/drivers/radeon/Makefile.am
-+++ b/src/gallium/drivers/radeon/Makefile.am
-@@ -26,5 +26,6 @@
- 	$(C_FILES)
- 
- libllvmradeon@VERSION@_la_LIBADD = \
-+	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(CLOCK_LIB) \
- 	$(LLVM_LIBS)
diff --git a/debian/patches/series b/debian/patches/series
index c03f810..b96e848 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,17 +5,9 @@
 #11-hurd-ftbfs-again.diff
 
 # Ubuntu patches.
-100_no_abi_tag.patch
 101_ubuntu_hidden_glname.patch
 117-static-gallium.patch
 118-dricore-gallium.patch
-119-libllvmradeon-link.patch
 120-hide-x86sse.patch
 
-0001-nv50-fix-3D-render-target-setup.patch
-0002-nv50-nvc0-disable-DEPTH_RANGE_NEAR-FAR-clipping-duri.patch
-0003-nv50-nvc0-fix-3d-blits-restore-viewport-after-blit.patch
-0004-nvc0-fix-for-2d-engine-R-source-formats-writing-RRR1.patch
-
-vbo-fix-crash.diff
 revert-a64c1eb9b110.diff
diff --git a/debian/patches/vbo-fix-crash.diff b/debian/patches/vbo-fix-crash.diff
deleted file mode 100644
index 03b52b2..0000000
--- a/debian/patches/vbo-fix-crash.diff
+++ /dev/null
@@ -1,29 +0,0 @@
-commit e6616948b74531eae3137585b3ae35a1fc0f8174
-Author: Brian Paul <brianp@vmware.com>
-Date:   Wed Mar 6 12:08:17 2013 -0700
-
-    vbo: fix crash found with shared display lists
-    
-    This fixes a crash when a display list is created in one context
-    but executed from a second one.  The vbo_save_context::vertex_store
-    memeber will be NULL if we never created a display list with the
-    context.  Just check for that before dereferencing the pointer.
-    
-    Fixes http://bugzilla.redhat.com/show_bug.cgi?id=918661
-    
-    Note: This is a candidate for the stable branches.
-    (cherry picked from commit c2665aacdd14beec9580246736c602e3ff04d7ae)
-
-diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c
-index efb386e..f5b5c41 100644
---- a/src/mesa/vbo/vbo_save_draw.c
-+++ b/src/mesa/vbo/vbo_save_draw.c
-@@ -253,7 +253,7 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data)
-    struct vbo_save_context *save = &vbo_context(ctx)->save;
-    GLboolean remap_vertex_store = GL_FALSE;


Reply to: