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

mesa: Changes to 'ubuntu'



 debian/changelog                                        |    5 -
 debian/patches/119_r600g_gnome_shell_rendering_fix.diff |   69 ++++++++++++++++
 debian/patches/series                                   |    1 
 3 files changed, 74 insertions(+), 1 deletion(-)

New commits:
commit 0b1af3ec5bf176931fc4f6d7f9dca8301bc35e96
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Thu Aug 4 16:25:43 2011 +1000

    Cherry-pick gnome-shell rendering-corruption fix for r600g

diff --git a/debian/changelog b/debian/changelog
index b9d7085..49e7a70 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -68,8 +68,11 @@ mesa (7.11-0ubuntu1) UNRELEASED; urgency=low
   * debian/clean:
     - Generate xmlpool pot file and clean up other po files for
       pkgbinarymangler's benefit (LP: #410264).
+  * debian/patches/119_r600g_gnome_shell_rendering_fix.diff:
+    - Cherry pick upstream commit fixing rendering corruption in gnome-shell
+      (and therefore likely Unity as well).
 
- -- Christopher James Halse Rogers <raof@ubuntu.com>  Tue, 19 Jul 2011 09:15:22 +1000
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Thu, 04 Aug 2011 16:25:08 +1000
 
 mesa (7.11-1) UNRELEASED; urgency=low
 
diff --git a/debian/patches/119_r600g_gnome_shell_rendering_fix.diff b/debian/patches/119_r600g_gnome_shell_rendering_fix.diff
new file mode 100644
index 0000000..7e404e7
--- /dev/null
+++ b/debian/patches/119_r600g_gnome_shell_rendering_fix.diff
@@ -0,0 +1,69 @@
+commit 2bde0cc95d8db10b6d2c6689ca39c196a81248b0
+Author: Vadim Girlin <vadimgirlin@gmail.com>
+Date:   Wed Aug 3 15:35:02 2011 +0400
+
+    r600g: take into account force_add_cf in pops
+    
+    When we have two ENDIFs in a row, we shouldn't modify the pop_count
+    for the same alu clause twice.
+    
+    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=38163
+    
+    Note: this is a candidate for the 7.11 branch.
+    
+    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+
+diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
+index fc56656..c55cdd7 100644
+--- a/src/gallium/drivers/r600/r600_shader.c
++++ b/src/gallium/drivers/r600/r600_shader.c
+@@ -2932,25 +2932,34 @@ static int emit_logic_pred(struct r600_shader_ctx *ctx, int opcode)
+ 
+ static int pops(struct r600_shader_ctx *ctx, int pops)
+ {
+-	int alu_pop = 3;
+-	if (ctx->bc->cf_last) {
+-		if (ctx->bc->cf_last->inst == CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU) << 3)
+-			alu_pop = 0;
+-		else if (ctx->bc->cf_last->inst == CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU_POP_AFTER) << 3)
+-			alu_pop = 1;
+-	}
+-	alu_pop += pops;
+-	if (alu_pop == 1) {
+-		ctx->bc->cf_last->inst = CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU_POP_AFTER) << 3;
+-		ctx->bc->force_add_cf = 1;
+-	} else if (alu_pop == 2) {
+-		ctx->bc->cf_last->inst = CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU_POP2_AFTER) << 3;
+-		ctx->bc->force_add_cf = 1;
+-	} else {
++	unsigned force_pop = ctx->bc->force_add_cf;
++
++	if (!force_pop) {
++		int alu_pop = 3;
++		if (ctx->bc->cf_last) {
++			if (ctx->bc->cf_last->inst == CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU) << 3)
++				alu_pop = 0;
++			else if (ctx->bc->cf_last->inst == CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU_POP_AFTER) << 3)
++				alu_pop = 1;
++		}
++		alu_pop += pops;
++		if (alu_pop == 1) {
++			ctx->bc->cf_last->inst = CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU_POP_AFTER) << 3;
++			ctx->bc->force_add_cf = 1;
++		} else if (alu_pop == 2) {
++			ctx->bc->cf_last->inst = CTX_INST(V_SQ_CF_ALU_WORD1_SQ_CF_INST_ALU_POP2_AFTER) << 3;
++			ctx->bc->force_add_cf = 1;
++		} else {
++			force_pop = 1;
++		}
++	}
++
++	if (force_pop) {
+ 		r600_bc_add_cfinst(ctx->bc, CTX_INST(V_SQ_CF_WORD1_SQ_CF_INST_POP));
+ 		ctx->bc->cf_last->pop_count = pops;
+ 		ctx->bc->cf_last->cf_addr = ctx->bc->cf_last->id + 2;
+ 	}
++
+ 	return 0;
+ }
+ 
diff --git a/debian/patches/series b/debian/patches/series
index b7fe03d..ec47260 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -16,3 +16,4 @@
 116_use_shared_galliumcore.diff
 117_handle_dri2connect_errors_when_indirect.diff
 118_fix_24bpp_software_renering.diff
+119_r600g_gnome_shell_rendering_fix.diff


Reply to: