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

mesa: Changes to 'debian-unstable'



 VERSION                                                       |    2 
 debian/changelog                                              |    4 
 docs/relnotes/10.5.4.html                                     |    3 
 docs/relnotes/10.5.5.html                                     |   94 ++++++++++
 src/gallium/auxiliary/draw/draw_context.c                     |    1 
 src/gallium/auxiliary/draw/draw_prim_assembler.c              |   13 +
 src/gallium/auxiliary/draw/draw_prim_assembler.h              |    3 
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp    |    6 
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp     |    4 
 src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h         |    2 
 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp |   25 ++
 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h   |    1 
 src/gallium/drivers/r300/Automake.inc                         |    2 
 src/mesa/drivers/dri/i965/intel_blit.c                        |   49 +++--
 src/mesa/drivers/dri/i965/intel_screen.c                      |    3 
 15 files changed, 183 insertions(+), 29 deletions(-)

New commits:
commit b6dbbe0bd6c746c3b8bf7831059f9f66c71d37a9
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Tue May 12 13:27:27 2015 +0300

    update version, release to unstable

diff --git a/debian/changelog b/debian/changelog
index ca661ec..792205a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (10.5.4-1) UNRELEASED; urgency=medium
+mesa (10.5.5-1) unstable; urgency=medium
 
   [ Maarten Lankhorst ]
   * New upstream release.
@@ -7,7 +7,7 @@ mesa (10.5.4-1) UNRELEASED; urgency=medium
   [ Timo Aaltonen ]
   * libegl1-mesa.symbols: Updated.
 
- -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Mon, 16 Feb 2015 09:35:43 +0100
+ -- Timo Aaltonen <tjaalton@debian.org>  Tue, 12 May 2015 13:26:49 +0300
 
 mesa (10.4.2-2) unstable; urgency=medium
 

commit d88fb4050561a62fa824bec59ffedf2a826c2083
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon May 11 20:19:33 2015 +0100

    Add release notes for the 10.5.5 release
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/docs/relnotes/10.5.5.html b/docs/relnotes/10.5.5.html
new file mode 100644
index 0000000..06743cc
--- /dev/null
+++ b/docs/relnotes/10.5.5.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <title>Mesa Release Notes</title>
+  <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+  <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.5.5 Release Notes / May 11, 2015</h1>
+
+<p>
+Mesa 10.5.5 is a bug fix release which fixes bugs found since the 10.5.4 release.
+</p>
+<p>
+Mesa 10.5.5 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3.  OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88521";>Bug 88521</a> - GLBenchmark 2.7 TRex renders with artifacts on Gen8 with !UXA</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89455";>Bug 89455</a> - [NVC0/Gallium] Unigine Heaven black and white boxes</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89689";>Bug 89689</a> - [Regression] Weston on DRM backend won't start with new version of mesa</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=90130";>Bug 90130</a> - gl_PrimitiveId seems to reset at 340</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Boyan Ding (1):</p>
+<ul>
+  <li>i965: Add XRGB8888 format to intel_screen_make_configs</li>
+</ul>
+
+<p>Emil Velikov (3):</p>
+<ul>
+  <li>docs: Add sha256 sums for the 10.5.4 release</li>
+  <li>r300: do not link against libdrm_intel</li>
+  <li>Update version to 10.5.5</li>
+</ul>
+
+<p>Ilia Mirkin (4):</p>
+<ul>
+  <li>nvc0/ir: flush denorms to zero in non-compute shaders</li>
+  <li>gk110/ir: fix set with a register dest to not auto-set the abs flag</li>
+  <li>nvc0/ir: fix predicated PFETCH emission</li>
+  <li>nv50/ir: fix asFlow() const helper for OP_JOIN</li>
+</ul>
+
+<p>Kenneth Graunke (2):</p>
+<ul>
+  <li>i965: Make intel_emit_linear_blit handle Gen8+ alignment restrictions.</li>
+  <li>i965: Disallow linear blits that are not cacheline aligned.</li>
+</ul>
+
+<p>Roland Scheidegger (1):</p>
+<ul>
+  <li>draw: fix prim ids when there's no gs</li>
+</ul>
+
+
+</div>
+</body>
+</html>

commit 0d425c413f24b90cc38ec2e59fd010258c4dfa1e
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon May 11 20:14:23 2015 +0100

    Update version to 10.5.5
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/VERSION b/VERSION
index 927fa80..23b7528 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.5.4
+10.5.5

commit 536003c11e4cb1172c540932ce3cce06f03bf44e
Author: Boyan Ding <boyan.j.ding@gmail.com>
Date:   Wed Mar 25 19:36:54 2015 +0800

    i965: Add XRGB8888 format to intel_screen_make_configs
    
    Some application, such as drm backend of weston, uses XRGB8888 config as
    default. i965 doesn't provide this format, but before commit 65c8965d,
    the drm platform of EGL takes ARGB8888 as XRGB8888. Now that commit
    65c8965d makes EGL recognize format correctly so weston won't start
    because it can't find XRGB8888. Add XRGB8888 format to i965 just as
    other drivers do.
    
    Cc: mesa-stable@lists.freedesktop.org
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89689
    Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com>
    Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
    (cherry picked from commit 28090b30dd6b5977de085f48c620574214b6b4ba)

diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
index cea7ddf..3497b4b 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -1126,7 +1126,8 @@ intel_screen_make_configs(__DRIscreen *dri_screen)
 {
    static const mesa_format formats[] = {
       MESA_FORMAT_B5G6R5_UNORM,
-      MESA_FORMAT_B8G8R8A8_UNORM
+      MESA_FORMAT_B8G8R8A8_UNORM,
+      MESA_FORMAT_B8G8R8X8_UNORM
    };
 
    /* GLX_SWAP_COPY_OML is not supported due to page flipping. */

commit 071402cc3b3e70c25a69d0add06760ec5bd2d4f4
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Wed Apr 29 23:33:27 2015 -0400

    nv50/ir: fix asFlow() const helper for OP_JOIN
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: mesa-stable@lists.freedesktop.org
    (cherry picked from commit db269ae495425849804fb1d05cfe42b0d3d304b3)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
index 255324f..e465f24 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
@@ -302,7 +302,7 @@ FlowInstruction *Instruction::asFlow()
 
 const FlowInstruction *Instruction::asFlow() const
 {
-   if (op >= OP_BRA && op <= OP_JOINAT)
+   if (op >= OP_BRA && op <= OP_JOIN)
       return static_cast<const FlowInstruction *>(this);
    return NULL;
 }

commit b4c973da03aa6444ca9aa0907ac836bfaab3bfb8
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Wed Apr 29 23:05:44 2015 -0400

    nvc0/ir: fix predicated PFETCH emission
    
    src1 would contain the predicate, which would get emitted as a register
    source by an undiscerning srcId helper. Work around this in the same way
    as in emitTEX.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: mesa-stable@lists.freedesktop.org
    (cherry picked from commit a9d08a250ada5fbd4e3f78f8e4119ec295d692cf)
    
    Squashed with commit
    
    nvc0/ir: fix predicated PFETCH for real
    
    Commit a9d08a250 accidentally didn't make use of the new src1 variable.
    Use it.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: mesa-stable@lists.freedesktop.org
    (cherry picked from commit 33f0d1138d6ffa4596d3deda68fa5ba9a3d7cf86)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index 932ac20..0865509 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -1265,8 +1265,10 @@ CodeEmitterGK110::emitPFETCH(const Instruction *i)
 
    emitPredicate(i);
 
+   const int src1 = (i->predSrc == 1) ? 2 : 1; // if predSrc == 1, !srcExists(2)
+
    defId(i->def(0), 2);
-   srcId(i->src(1), 10);
+   srcId(i, src1, 10);
 }
 
 void
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp
index dfb093c..1d469b1 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp
@@ -1441,8 +1441,10 @@ CodeEmitterNVC0::emitPFETCH(const Instruction *i)
 
    emitPredicate(i);
 
+   const int src1 = (i->predSrc == 1) ? 2 : 1; // if predSrc == 1, !srcExists(2)
+
    defId(i->def(0), 14);
-   srcId(i->src(1), 20);
+   srcId(i, src1, 20);
 }
 
 void

commit a27d03dd9f84bd29158c3b1f4512c1dee32ac3a3
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Wed Apr 29 18:01:53 2015 -0400

    gk110/ir: fix set with a register dest to not auto-set the abs flag
    
    This was causing src0 to always have the absolute value flag set.
    
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Cc: mesa-stable@lists.freedesktop.org
    (cherry picked from commit 515ac907e68ae1485bd9c65d7351dfb3c3d1e33f)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
index a8c2619..932ac20 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
@@ -903,7 +903,7 @@ CodeEmitterGK110::emitSET(const CmpInstruction *i)
       code[0] |= 0x1c;
    } else {
       switch (i->sType) {
-      case TYPE_F32: op2 = 0x000; op1 = 0x820; break;
+      case TYPE_F32: op2 = 0x000; op1 = 0x800; break;
       case TYPE_F64: op2 = 0x080; op1 = 0x900; break;
       default:
          op2 = 0x1a8;

commit 0b067295916885d18de6d625ec2a036933f07bc7
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Wed Apr 15 14:44:02 2015 +0100

    r300: do not link against libdrm_intel
    
    Accidentally added since the introduction of the file.
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    (cherry picked from commit b124dc2b70a1ba546d1ce46578036d263a4287fe)

diff --git a/src/gallium/drivers/r300/Automake.inc b/src/gallium/drivers/r300/Automake.inc
index 9334973..d4ddc40 100644
--- a/src/gallium/drivers/r300/Automake.inc
+++ b/src/gallium/drivers/r300/Automake.inc
@@ -5,7 +5,7 @@ TARGET_CPPFLAGS += -DGALLIUM_R300
 TARGET_LIB_DEPS += \
 	$(top_builddir)/src/gallium/drivers/r300/libr300.la \
 	$(RADEON_LIBS) \
-	$(INTEL_LIBS)
+	$(LIBDRM_LIBS)
 
 TARGET_RADEON_WINSYS = \
 	$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la

commit dfe88d4f5288a39afde942b3a4c91637a79c924c
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Tue Apr 28 03:30:08 2015 -0400

    nvc0/ir: flush denorms to zero in non-compute shaders
    
    This will set the FTZ flag (flush denorms to zero) on all opcodes that
    can take it.
    
    This resolves issues in Unigine Heaven 4.0 where there were solid-filled
    boxes popping up.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89455
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    (cherry picked from commit 6fe0d4f0354418c6e68dd352996e9891ddd4dfd6)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
index c234131..4000812 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
@@ -73,6 +73,26 @@ NVC0LegalizeSSA::handleRCPRSQ(Instruction *i)
    // TODO
 }
 
+void
+NVC0LegalizeSSA::handleFTZ(Instruction *i)
+{
+   // Only want to flush float inputs
+   if (i->sType != TYPE_F32)
+      return;
+
+   // If we're already flushing denorms (and NaN's) to zero, no need for this.
+   if (i->dnz)
+      return;
+
+   // Only certain classes of operations can flush
+   OpClass cls = prog->getTarget()->getOpClass(i->op);
+   if (cls != OPCLASS_ARITH && cls != OPCLASS_COMPARE &&
+       cls != OPCLASS_CONVERT)
+      return;
+
+   i->ftz = true;
+}
+
 bool
 NVC0LegalizeSSA::visit(Function *fn)
 {
@@ -86,8 +106,11 @@ NVC0LegalizeSSA::visit(BasicBlock *bb)
    Instruction *next;
    for (Instruction *i = bb->getEntry(); i; i = next) {
       next = i->next;
-      if (i->dType == TYPE_F32)
+      if (i->dType == TYPE_F32) {
+         if (prog->getType() != Program::TYPE_COMPUTE)
+            handleFTZ(i);
          continue;
+      }
       switch (i->op) {
       case OP_DIV:
       case OP_MOD:
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h
index d8ff5cd..260e101 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h
@@ -36,6 +36,7 @@ private:
    // we want to insert calls to the builtin library only after optimization
    void handleDIV(Instruction *); // integer division, modulus
    void handleRCPRSQ(Instruction *); // double precision float recip/rsqrt
+   void handleFTZ(Instruction *);
 
 private:
    BuildUtil bld;

commit 1176e5862ac656f1c1a790ea5b49ced4fcb3f480
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Tue Apr 21 12:32:38 2015 -0700

    i965: Disallow linear blits that are not cacheline aligned.
    
    The BLT engine on Gen8+ requires linear surfaces to be cacheline
    aligned.  This restriction was added as part of converting the BLT to
    use 48-bit addressing.
    
    The main user, intel_emit_linear_blit, now handles this properly.
    But we might also have linear miptrees; just refuse to blit those.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88521
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
    Cc: mesa-stable@lists.freedesktop.org
    (cherry picked from commit 5957da1edb9ad504d8af83878c10c3a24e41fc6c)

diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index 770acf3..7252e5d 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -271,6 +271,20 @@ intel_miptree_blit(struct brw_context *brw,
    return true;
 }
 
+static bool
+alignment_valid(struct brw_context *brw, unsigned offset, uint32_t tiling)
+{
+   /* Tiled buffers must be page-aligned (4K). */
+   if (tiling != I915_TILING_NONE)
+      return (offset & 4095) == 0;
+
+   /* On Gen8+, linear buffers must be cacheline-aligned. */
+   if (brw->gen >= 8)
+      return (offset & 63) == 0;
+
+   return true;
+}
+
 /* Copy BitBlt
  */
 bool
@@ -296,14 +310,11 @@ intelEmitCopyBlit(struct brw_context *brw,
    bool dst_y_tiled = dst_tiling == I915_TILING_Y;
    bool src_y_tiled = src_tiling == I915_TILING_Y;
 
-   if (dst_tiling != I915_TILING_NONE) {
-      if (dst_offset & 4095)
-	 return false;
-   }
-   if (src_tiling != I915_TILING_NONE) {
-      if (src_offset & 4095)
-	 return false;
-   }
+   if (!alignment_valid(brw, dst_offset, dst_tiling))
+      return false;
+   if (!alignment_valid(brw, src_offset, src_tiling))
+      return false;
+
    if ((dst_y_tiled || src_y_tiled) && brw->gen < 6)
       return false;
 

commit 716b5f7cbe9cb7611d593f170a98facef58e3d0a
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Wed Apr 15 03:04:33 2015 -0700

    i965: Make intel_emit_linear_blit handle Gen8+ alignment restrictions.
    
    The BLT engine on Gen8+ requires linear surfaces to be cacheline
    aligned.  This restriction was added as part of converting the BLT to
    use 48-bit addressing.
    
    intel_emit_linear_blit needs to handle blits that are not cacheline
    aligned, as we use it for arbitrary glBufferSubData calls and subrange
    mappings.
    
    Since intel_emit_linear_blit uses 1 byte per pixel, we can use the src/dst
    pixel X offset field to represent the unaligned portion, and subtract
    that from the address so it's cacheline aligned.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88521
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
    Cc: mesa-stable@lists.freedesktop.org
    (cherry picked from commit 8c17d53823c77ac1c56b0548e4e54f69a33285f1)

diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index 9500bd7..770acf3 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -524,6 +524,7 @@ intel_emit_linear_blit(struct brw_context *brw,
 {
    struct gl_context *ctx = &brw->ctx;
    GLuint pitch, height;
+   int16_t src_x, dst_x;
    bool ok;
 
    /* The pitch given to the GPU must be DWORD aligned, and
@@ -532,11 +533,13 @@ intel_emit_linear_blit(struct brw_context *brw,
     */
    pitch = ROUND_DOWN_TO(MIN2(size, (1 << 15) - 1), 4);
    height = (pitch == 0) ? 1 : size / pitch;
+   src_x = src_offset % 64;
+   dst_x = dst_offset % 64;
    ok = intelEmitCopyBlit(brw, 1,
-			  pitch, src_bo, src_offset, I915_TILING_NONE,
-			  pitch, dst_bo, dst_offset, I915_TILING_NONE,
-			  0, 0, /* src x/y */
-			  0, 0, /* dst x/y */
+			  pitch, src_bo, src_offset - src_x, I915_TILING_NONE,
+			  pitch, dst_bo, dst_offset - dst_x, I915_TILING_NONE,
+			  src_x, 0, /* src x/y */
+			  dst_x, 0, /* dst x/y */
 			  pitch, height, /* w, h */
 			  GL_COPY);
    if (!ok)
@@ -544,15 +547,18 @@ intel_emit_linear_blit(struct brw_context *brw,
 
    src_offset += pitch * height;
    dst_offset += pitch * height;
+   src_x = src_offset % 64;
+   dst_x = dst_offset % 64;
    size -= pitch * height;
    assert (size < (1 << 15));
    pitch = ALIGN(size, 4);
+
    if (size != 0) {
       ok = intelEmitCopyBlit(brw, 1,
-			     pitch, src_bo, src_offset, I915_TILING_NONE,
-			     pitch, dst_bo, dst_offset, I915_TILING_NONE,
-			     0, 0, /* src x/y */
-			     0, 0, /* dst x/y */
+			     pitch, src_bo, src_offset - src_x, I915_TILING_NONE,
+			     pitch, dst_bo, dst_offset - dst_x, I915_TILING_NONE,
+			     src_x, 0, /* src x/y */
+			     dst_x, 0, /* dst x/y */
 			     size, 1, /* w, h */
 			     GL_COPY);
       if (!ok)

commit cf60503378f75ef2e9079092a0e6d26a589336dc
Author: Roland Scheidegger <sroland@vmware.com>
Date:   Thu Apr 23 18:13:32 2015 +0200

    draw: fix prim ids when there's no gs
    
    We were resetting the prim id count for each run of the prim assembler,
    hence this only worked when the draw calls were very small (the exact limit
    depending on the vertex size), since larger draw calls get split up.
    So, do the same as we do already if there's a gs, reset it to zero explicitly
    for every new instance (this possibly could use the same variable but that
    isn't doable without some heavy refactoring and I'm not sure it makes sense).
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90130.
    
    Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
    
    CC: <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit f2a7fd9943fcb7d3de3bc2b21907e0a157b88e96)

diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c
index 04cf5b7..ee009c1 100644
--- a/src/gallium/auxiliary/draw/draw_context.c
+++ b/src/gallium/auxiliary/draw/draw_context.c
@@ -182,6 +182,7 @@ boolean draw_init(struct draw_context *draw)
 void draw_new_instance(struct draw_context *draw)
 {
    draw_geometry_shader_new_instance(draw->gs.geometry_shader);
+   draw_prim_assembler_new_instance(draw->ia);
 }
 
 
diff --git a/src/gallium/auxiliary/draw/draw_prim_assembler.c b/src/gallium/auxiliary/draw/draw_prim_assembler.c
index 776c172..7ff705a 100644
--- a/src/gallium/auxiliary/draw/draw_prim_assembler.c
+++ b/src/gallium/auxiliary/draw/draw_prim_assembler.c
@@ -189,7 +189,6 @@ draw_prim_assembler_prepare_outputs(struct draw_assembler *ia)
    } else {
       ia->primid_slot = -1;
    }
-   ia->primid = 0;
 }
 
 
@@ -233,7 +232,6 @@ draw_prim_assembler_run(struct draw_context *draw,
    asmblr->input_prims = input_prims;
    asmblr->input_verts = input_verts;
    asmblr->needs_primid = needs_primid(asmblr->draw);
-   asmblr->primid = 0;
    asmblr->num_prims = 0;
 
    output_prims->linear = TRUE;
@@ -284,3 +282,14 @@ draw_prim_assembler_destroy(struct draw_assembler *ia)
 {
    FREE(ia);
 }
+
+
+/*
+ * Called at the very begin of the draw call with a new instance
+ * Used to reset state that should persist between primitive restart.
+ */
+void
+draw_prim_assembler_new_instance(struct draw_assembler *asmblr)
+{
+   asmblr->primid = 0;
+}
diff --git a/src/gallium/auxiliary/draw/draw_prim_assembler.h b/src/gallium/auxiliary/draw/draw_prim_assembler.h
index 5ba715b..5ee7317 100644
--- a/src/gallium/auxiliary/draw/draw_prim_assembler.h
+++ b/src/gallium/auxiliary/draw/draw_prim_assembler.h
@@ -70,5 +70,8 @@ draw_prim_assembler_run(struct draw_context *draw,
 void
 draw_prim_assembler_prepare_outputs(struct draw_assembler *ia);
 
+void
+draw_prim_assembler_new_instance(struct draw_assembler *ia);
+
 
 #endif

commit adb47b5b279b6fd920151aa7926af6ffd2069339
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Apr 24 22:51:25 2015 +0100

    docs: Add sha256 sums for the 10.5.4 release
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/docs/relnotes/10.5.4.html b/docs/relnotes/10.5.4.html
index 78767cc..4c466d0 100644
--- a/docs/relnotes/10.5.4.html
+++ b/docs/relnotes/10.5.4.html
@@ -31,7 +31,8 @@ because compatibility contexts are not supported.
 
 <h2>SHA256 checksums</h2>
 <pre>
-TBD
+e1089567fc7bf8d9b2d8badcc9f2fc3b758701c8c0ccfe7af1805549fea53f11  mesa-10.5.4.tar.gz
+b51e723f3a20d842c88a92d809435b229fc4744ca0dbec0317d9d4a3ac4c6803  mesa-10.5.4.tar.xz
 </pre>
 
 


Reply to: