mesa: Changes to 'debian-unstable'
debian/changelog | 2
debian/rules | 1
docs/news.html | 7 +++
docs/relnotes-7.11.html | 7 ++-
src/gallium/drivers/i915/i915_state_dynamic.c | 4 -
src/gallium/drivers/nouveau/nouveau_fence.c | 2
src/gallium/drivers/r300/r300_emit.c | 3 -
src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 33 ++++++++++++++
src/gallium/winsys/radeon/drm/radeon_drm_cs.h | 1
src/gallium/winsys/radeon/drm/radeon_winsys.h | 4 +
src/glx/drisw_glx.c | 7 +++
src/mesa/drivers/dri/i915/i830_vtbl.c | 7 +++
src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c | 2
src/mesa/drivers/dri/r300/compiler/radeon_optimize.c | 42 +++++++++----------
src/mesa/vbo/vbo_exec_array.c | 4 -
15 files changed, 92 insertions(+), 34 deletions(-)
New commits:
commit fe8296faacb8bfcf371565c838235e22d02f19df
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Sep 24 15:37:38 2011 +0200
Bump changelog
diff --git a/debian/changelog b/debian/changelog
index 5d49c39..02dbc43 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ mesa (7.11-6) UNRELEASED; urgency=low
* Inline what's left of debian/scripts/choose-configs in debian/rules.
* Enable texture-float for dri (closes: #635651).
+ * Update from upstream's 7.11 branch (commit e7794048)
-- Julien Cristau <jcristau@debian.org> Sun, 28 Aug 2011 19:46:58 +0200
commit e4598c2eee65b9ae7a058bafdc663f486fdf03e0
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Sep 24 15:34:24 2011 +0200
Enable texture-float for dri (closes: #635651).
diff --git a/debian/changelog b/debian/changelog
index 7641d2a..5d49c39 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
mesa (7.11-6) UNRELEASED; urgency=low
* Inline what's left of debian/scripts/choose-configs in debian/rules.
+ * Enable texture-float for dri (closes: #635651).
-- Julien Cristau <jcristau@debian.org> Sun, 28 Aug 2011 19:46:58 +0200
diff --git a/debian/rules b/debian/rules
index a842bab..a7a55dc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -114,6 +114,7 @@ confflags-dri = \
--with-dri-searchpath='/usr/lib/$(DEB_HOST_MULTIARCH)/dri:\$$$${ORIGIN}/dri:/usr/lib/dri' \
--enable-glx-tls \
--enable-shared-glapi \
+ --enable-texture-float \
$(confflags_DIRECT_RENDERING) \
$(confflags_EGL) \
$(confflags_GALLIUM) \
commit e7794048ca8e4122e9e5de8ba4ab1f93331f2ba8
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date: Tue Sep 6 16:12:52 2011 +0200
nouveau: fix nouveau_fence leak
(commit 96054375b1ea98d7827f0d4b567168fa2baeb38e in master)
diff --git a/src/gallium/drivers/nouveau/nouveau_fence.c b/src/gallium/drivers/nouveau/nouveau_fence.c
index d8f59dc..ea2038c 100644
--- a/src/gallium/drivers/nouveau/nouveau_fence.c
+++ b/src/gallium/drivers/nouveau/nouveau_fence.c
@@ -219,5 +219,7 @@ nouveau_fence_next(struct nouveau_screen *screen)
if (screen->fence.current->state < NOUVEAU_FENCE_STATE_EMITTED)
nouveau_fence_emit(screen->fence.current);
+ nouveau_fence_ref(NULL, &screen->fence.current);
+
nouveau_fence_new(screen, &screen->fence.current, FALSE);
}
commit e20346bfc888c545ae5d49642e1461e4b17e71a8
Author: Carl Simonson <simonsonc@gmail.com>
Date: Wed Aug 10 11:10:43 2011 -0700
i830: Add missing vtable entry for i830 from the hiz work.
(cherry picked from commit 09eeb0ff27005c0ffccd5cdbe46862e181a4ee6c)
diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c
index 3051835..7e982ea 100644
--- a/src/mesa/drivers/dri/i915/i830_vtbl.c
+++ b/src/mesa/drivers/dri/i915/i830_vtbl.c
@@ -883,6 +883,12 @@ i830_invalidate_state(struct intel_context *intel, GLuint new_state)
i830_update_provoking_vertex(&intel->ctx);
}
+static bool
+i830_is_hiz_depth_format(struct intel_context *intel, gl_format format)
+{
+ return false;
+}
+
void
i830InitVtbl(struct i830_context *i830)
{
@@ -900,4 +906,5 @@ i830InitVtbl(struct i830_context *i830)
i830->intel.vtbl.finish_batch = intel_finish_vb;
i830->intel.vtbl.invalidate_state = i830_invalidate_state;
i830->intel.vtbl.render_target_supported = i830_render_target_supported;
+ i830->intel.vtbl.is_hiz_depth_format = i830_is_hiz_depth_format;
}
commit 2217a70aafbc84debc2817bbbbdd472055d18cb0
Author: David Reveman <reveman@chromium.org>
Date: Tue Aug 23 18:49:11 2011 -0700
i915g: Fix off-by-one in scissors.
diff --git a/src/gallium/drivers/i915/i915_state_dynamic.c b/src/gallium/drivers/i915/i915_state_dynamic.c
index 204cee6..1a21433 100644
--- a/src/gallium/drivers/i915/i915_state_dynamic.c
+++ b/src/gallium/drivers/i915/i915_state_dynamic.c
@@ -268,8 +268,8 @@ static void upload_SCISSOR_RECT(struct i915_context *i915)
{
unsigned x1 = i915->scissor.minx;
unsigned y1 = i915->scissor.miny;
- unsigned x2 = i915->scissor.maxx;
- unsigned y2 = i915->scissor.maxy;
+ unsigned x2 = i915->scissor.maxx - 1;
+ unsigned y2 = i915->scissor.maxy - 1;
unsigned sc[3];
sc[0] = _3DSTATE_SCISSOR_RECT_0_CMD;
commit 6c1a9a327d031cd46680f28de8636b9335847650
Author: Tobias Droste <tdroste@gmx.de>
Date: Mon Jul 18 07:14:06 2011 +0200
r300/compiler: simplify code in peephole_add_presub_add
Signed-off-by: Tobias Droste <tdroste@gmx.de>
Signed-off-by: Marek Olšák <maraeo@gmail.com>
(cherry picked from commit 84f8548dfcc7de55e162359e2e39af2614903cbe)
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
index b242742..39dcb21 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
@@ -561,28 +561,29 @@ static int peephole_add_presub_add(
struct rc_instruction * inst_add)
{
unsigned dstmask = inst_add->U.I.DstReg.WriteMask;
- struct rc_src_register * src1 = NULL;
- unsigned int i;
-
- if (!is_presub_candidate(c, inst_add))
- return 0;
+ unsigned src0_neg = inst_add->U.I.SrcReg[0].Negate & dstmask;
+ unsigned src1_neg = inst_add->U.I.SrcReg[1].Negate & dstmask;
if (inst_add->U.I.SrcReg[0].Swizzle != inst_add->U.I.SrcReg[1].Swizzle)
return 0;
- /* XXX This isn't fully implemented, is it? */
- /* src0 and src1 can't have absolute values only one can be negative and they must be all negative or all positive. */
- for (i = 0; i < 2; i++) {
- if (inst_add->U.I.SrcReg[i].Abs)
- return 0;
+ /* src0 and src1 can't have absolute values */
+ if (inst_add->U.I.SrcReg[0].Abs || inst_add->U.I.SrcReg[1].Abs)
+ return 0;
- /* XXX This looks weird, but it's basically what was here before this commit (see git blame): */
- if ((inst_add->U.I.SrcReg[i].Negate & dstmask) != dstmask && !src1) {
- src1 = &inst_add->U.I.SrcReg[i];
- }
- }
+ /* presub_replace_add() assumes only one is negative */
+ if (inst_add->U.I.SrcReg[0].Negate && inst_add->U.I.SrcReg[1].Negate)
+ return 0;
+
+ /* if src0 is negative, at least all bits of dstmask have to be set */
+ if (inst_add->U.I.SrcReg[0].Negate && src0_neg != dstmask)
+ return 0;
- if (!src1)
+ /* if src1 is negative, at least all bits of dstmask have to be set */
+ if (inst_add->U.I.SrcReg[1].Negate && src1_neg != dstmask)
+ return 0;
+
+ if (!is_presub_candidate(c, inst_add))
return 0;
if (presub_helper(c, inst_add, RC_PRESUB_ADD, presub_replace_add)) {
@@ -615,7 +616,7 @@ static void presub_replace_inv(
* of the add instruction must have the constatnt 1 swizzle. This function
* does not check const registers to see if their value is 1.0, so it should
* be called after the constant_folding optimization.
- * @return
+ * @return
* 0 if the ADD instruction is still part of the program.
* 1 if the ADD instruction is no longer part of the program.
*/
commit e33f306d6726b7582b0cfde99c132f7601b38752
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jul 15 20:52:16 2011 +0200
r300/compiler: remove an unused-but-set variable and simplify the code
(cherry picked from commit ed5e95ada6aa310266eb0969ac7d721c3664f1d1)
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
index ac73608..b242742 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
@@ -560,7 +560,7 @@ static int peephole_add_presub_add(
struct radeon_compiler * c,
struct rc_instruction * inst_add)
{
- struct rc_src_register * src0 = NULL;
+ unsigned dstmask = inst_add->U.I.DstReg.WriteMask;
struct rc_src_register * src1 = NULL;
unsigned int i;
@@ -570,18 +570,15 @@ static int peephole_add_presub_add(
if (inst_add->U.I.SrcReg[0].Swizzle != inst_add->U.I.SrcReg[1].Swizzle)
return 0;
- /* src0 and src1 can't have absolute values only one can be negative and they must be all negative or all positive. */
+ /* XXX This isn't fully implemented, is it? */
+ /* src0 and src1 can't have absolute values only one can be negative and they must be all negative or all positive. */
for (i = 0; i < 2; i++) {
if (inst_add->U.I.SrcReg[i].Abs)
return 0;
- if ((inst_add->U.I.SrcReg[i].Negate
- & inst_add->U.I.DstReg.WriteMask) ==
- inst_add->U.I.DstReg.WriteMask) {
- src0 = &inst_add->U.I.SrcReg[i];
- } else if (!src1) {
+
+ /* XXX This looks weird, but it's basically what was here before this commit (see git blame): */
+ if ((inst_add->U.I.SrcReg[i].Negate & dstmask) != dstmask && !src1) {
src1 = &inst_add->U.I.SrcReg[i];
- } else {
- src0 = &inst_add->U.I.SrcReg[i];
}
}
commit f69357d77afa8039d387d10ed8db700ecf63d913
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jul 15 20:25:38 2011 +0200
r300/compiler: fix a warning that a variable may be uninitialized
(cherry picked from commit 2ce6c3ea6e66a708aefba36358fa43f2f312c42f)
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
index b0deb75..a8decac 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c
@@ -687,7 +687,7 @@ static void get_readers_for_single_write(
struct rc_instruction * tmp;
unsigned int branch_depth = 0;
struct rc_instruction * endloop = NULL;
- unsigned int abort_on_read_at_endloop;
+ unsigned int abort_on_read_at_endloop = 0;
struct get_readers_callback_data * d = userdata;
d->ReaderData->Writer = writer;
commit d8a0c1b4bc2c06fa26ed648e0b3be7f5d0dba8f9
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Aug 7 18:35:06 2011 +0200
winsys/radeon: fix space checking
We should remove the relocations which caused a validation failure
from the list, so that the kernel receives only the validated ones.
NOTE: This is a candidate for the 7.11 branch.
(cherry picked from commit 64ab39b035f755510a644643b96451431bbe5f27)
Conflicts:
src/gallium/winsys/radeon/drm/radeon_drm_cs.c
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index d214af4..09ce470 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -1237,13 +1237,12 @@ validate:
r300->rws->cs_add_reloc(r300->cs, r300_resource(index_buffer)->cs_buf,
r300_resource(index_buffer)->domain, 0);
- /* Now do the validation. */
+ /* Now do the validation (flush is called inside cs_validate on failure). */
if (!r300->rws->cs_validate(r300->cs)) {
/* Ooops, an infinite loop, give up. */
if (flushed)
return FALSE;
- r300_flush(&r300->context, RADEON_FLUSH_ASYNC, NULL);
flushed = TRUE;
goto validate;
}
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
index 0139de1..1dcc7e1 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
@@ -115,6 +115,7 @@ static void radeon_cs_context_cleanup(struct radeon_cs_context *csc)
}
csc->crelocs = 0;
+ csc->validated_crelocs = 0;
csc->chunks[0].length_dw = 0;
csc->chunks[1].length_dw = 0;
csc->used_gart = 0;
@@ -307,9 +308,37 @@ static void radeon_drm_cs_add_reloc(struct radeon_winsys_cs *rcs,
static boolean radeon_drm_cs_validate(struct radeon_winsys_cs *rcs)
{
struct radeon_drm_cs *cs = radeon_drm_cs(rcs);
+ boolean status =
+ cs->csc->used_gart < cs->ws->gart_size * 0.8 &&
+ cs->csc->used_vram < cs->ws->vram_size * 0.8;
- return cs->csc->used_gart < cs->ws->gart_size * 0.8 &&
- cs->csc->used_vram < cs->ws->vram_size * 0.8;
+ if (status) {
+ cs->csc->validated_crelocs = cs->csc->crelocs;
+ } else {
+ /* Remove lately-added relocations. The validation failed with them
+ * and the CS is about to be flushed because of that. Keep only
+ * the already-validated relocations. */
+ unsigned i;
+
+ for (i = cs->csc->validated_crelocs; i < cs->csc->crelocs; i++) {
+ p_atomic_dec(&cs->csc->relocs_bo[i]->num_cs_references);
+ radeon_bo_reference(&cs->csc->relocs_bo[i], NULL);
+ }
+ cs->csc->crelocs = cs->csc->validated_crelocs;
+
+ /* Flush if there are any relocs. Clean up otherwise. */
+ if (cs->csc->crelocs) {
+ cs->flush_cs(cs->flush_data, RADEON_FLUSH_ASYNC);
+ } else {
+ radeon_cs_context_cleanup(cs->csc);
+
+ assert(cs->base.cdw == 0);
+ if (cs->base.cdw != 0) {
+ fprintf(stderr, "radeon: Unexpected error in %s.\n", __func__);
+ }
+ }
+ }
+ return status;
}
static void radeon_drm_cs_write_reloc(struct radeon_winsys_cs *rcs,
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.h b/src/gallium/winsys/radeon/drm/radeon_drm_cs.h
index 339beed..fc51f45 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.h
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.h
@@ -41,6 +41,7 @@ struct radeon_cs_context {
/* Relocs. */
unsigned nrelocs;
unsigned crelocs;
+ unsigned validated_crelocs;
struct radeon_bo **relocs_bo;
struct drm_radeon_cs_reloc *relocs;
diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h b/src/gallium/winsys/radeon/drm/radeon_winsys.h
index 3a64e4a..41c26c6 100644
--- a/src/gallium/winsys/radeon/drm/radeon_winsys.h
+++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h
@@ -271,7 +271,9 @@ struct radeon_winsys {
/**
* Return TRUE if there is enough memory in VRAM and GTT for the relocs
- * added so far.
+ * added so far. If the validation fails, all the relocations which have
+ * been added since the last call of cs_validate will be removed and
+ * the CS will be flushed (provided there are still any relocations).
*
* \param cs A command stream to validate.
*/
commit f396e43b7d609d93e5ba0b9053c16cec96f8e402
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Aug 4 07:38:13 2011 +0200
vbo: do not call _mesa_max_buffer_index in debug builds
That code drops performance in Unigine Heaven and Tropics
by a factor of 10. That's too crazy even for a debug build.
NOTE: This is a candidate for the 7.11 branch.
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit c251d83d916336f95109363e919920a024947230)
diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 7959337..5903ae23 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -909,11 +909,10 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
if (0)
_mesa_print_arrays(ctx);
-#ifdef DEBUG
/* 'end' was out of bounds, but now let's check the actual array
* indexes to see if any of them are out of bounds.
*/
- {
+ if (0) {
GLuint max = _mesa_max_buffer_index(ctx, count, type, indices,
ctx->Array.ElementArrayBufferObj);
if (max >= ctx->Array.ArrayObj->_MaxElement) {
@@ -934,7 +933,6 @@ vbo_exec_DrawRangeElementsBaseVertex(GLenum mode,
* upper bound wrong.
*/
}
-#endif
/* Set 'end' to the max possible legal value */
assert(ctx->Array.ArrayObj->_MaxElement >= 1);
commit aedfd07fb215c90dcb5c386277238ba87f664ed2
Author: Brian Paul <brianp@vmware.com>
Date: Tue Aug 2 10:38:17 2011 -0600
docs: news item for 7.11 release
diff --git a/docs/news.html b/docs/news.html
index eea6cd6..70b38c6 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -11,6 +11,13 @@
<H1>News</H1>
+<h2>July 31, 2011</h2>
+
+<p>
+<a href="relnotes-7.11.html">Mesa 7.11</a> is released. This is a new
+release with many new features.
+</p>
+
<h2>June 13, 2011</h2>
<p>
commit 9e669d9f28a5059943183fdb2cc3bedd1c8f0fdb
Author: Brian Paul <brianp@vmware.com>
Date: Tue Aug 2 10:38:03 2011 -0600
docs: add 7.11 md5 sums
diff --git a/docs/relnotes-7.11.html b/docs/relnotes-7.11.html
index 79776d3..52033cf 100644
--- a/docs/relnotes-7.11.html
+++ b/docs/relnotes-7.11.html
@@ -30,7 +30,12 @@ for DRI hardware acceleration.
<h2>MD5 checksums</h2>
<pre>
-tbd
+fa2c7068503133fb2453244cda11cb2a MesaLib-7.11.tar.gz
+ff03aca82d0560009a076a87c888cf13 MesaLib-7.11.tar.bz2
+ede1ac0976f6f05df586093fc17d63ed MesaLib-7.11.zip
+b4fb81a47c5caedaefad49af7702c23d MesaGLUT-7.11.tar.gz
+77a9a0bbd7f8bca882aa5709b88cb071 MesaGLUT-7.11.tar.bz2
+c19ef0c6eb61188c96ed4ccedd70717c MesaGLUT-7.11.zip
</pre>
commit 4258e9b3a5eeaa90f2a0485576d7d17d6d8e4d6f
Author: Marc Pignat <marc@pignat.org>
Date: Tue Jun 28 15:21:58 2011 +0200
drisw: Fix 24bpp software rendering, take 2
This patch add the support for 24bpp in the dri/swrast implementation.
See http://bugs.freedesktop.org/show_bug.cgi?id=23525
Signed-off-by: Marc Pignat <marc at pignat.org>
Signed-off-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit cfec000e7514342fd51859906e173ba2d474a55c)
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 07d4955..a57b327 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -100,6 +100,13 @@ XCreateDrawable(struct drisw_drawable * pdp,
32, /* bitmap_pad */
0); /* bytes_per_line */
+ /**
+ * swrast does not handle 24-bit depth with 24 bpp, so let X do the
+ * the conversion for us.
+ */
+ if (pdp->ximage->bits_per_pixel == 24)
+ pdp->ximage->bits_per_pixel = 32;
+
return True;
}
Reply to: