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

mesa: Changes to 'ubuntu'



 debian/patches/102_i965_bump_VS_thread_number.patch |   62 ++++++++++++++++++++
 debian/patches/series                               |    1 
 src/mesa/drivers/dri/i965/brw_vs_emit.c             |   10 ---
 src/mesa/drivers/dri/i965/gen6_vs_state.c           |    3 
 4 files changed, 65 insertions(+), 11 deletions(-)

New commits:
commit faffb32c4b1e97e57533292ce013546bce5bfe73
Author: Robert Hooker <robert.hooker@canonical.com>
Date:   Wed Mar 23 16:55:13 2011 -0400

    Add 102_i965_bump_VS_thread_number.patch to fix performance problems on sandybridge in Unity.

diff --git a/debian/patches/102_i965_bump_VS_thread_number.patch b/debian/patches/102_i965_bump_VS_thread_number.patch
new file mode 100644
index 0000000..561f874
--- /dev/null
+++ b/debian/patches/102_i965_bump_VS_thread_number.patch
@@ -0,0 +1,62 @@
+From 71bb87af9d720abb728136b4b61782ee26f6e0da Mon Sep 17 00:00:00 2001
+From: Zou Nan hai <nanhai.zou@intel.com>
+Date: Tue, 1 Mar 2011 10:39:35 +0800
+Subject: [PATCH 1/2] i965: bump VS thread number to 60 on SNB
+
+Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>
+---
+ src/mesa/drivers/dri/i965/brw_vs_emit.c   |   10 +++++++++-
+ src/mesa/drivers/dri/i965/gen6_vs_state.c |    3 ++-
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
+index 0411ce0..6ec6255 100644
+--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
++++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
+@@ -1561,6 +1561,7 @@ static void emit_vertex_write( struct brw_vs_compile *c)
+    int eot;
+    GLuint len_vertex_header = 2;
+    int next_mrf, i;
++   int msg_len;
+ 
+    if (c->key.copy_edgeflag) {
+       brw_MOV(p, 
+@@ -1727,13 +1728,20 @@ static void emit_vertex_write( struct brw_vs_compile *c)
+ 
+    eot = (c->first_overflow_output == 0);
+ 
++   msg_len = c->nr_outputs + 2 + len_vertex_header; 
++   if (intel->gen >= 6) {
++	   /* interleaved urb write message length for gen6 should be multiple of 2 */
++	   if ((msg_len % 2) != 0)
++		msg_len++;
++   }
++
+    brw_urb_WRITE(p, 
+ 		 brw_null_reg(), /* dest */
+ 		 0,		/* starting mrf reg nr */
+ 		 c->r0,		/* src */
+ 		 0,		/* allocate */
+ 		 1,		/* used */
+-		 MIN2(c->nr_outputs + 1 + len_vertex_header, (BRW_MAX_MRF-1)), /* msg len */
++		 MIN2(msg_len - 1, (BRW_MAX_MRF - 1)), /* msg len */
+ 		 0,		/* response len */
+ 		 eot, 		/* eot */
+ 		 eot, 		/* writes complete */
+diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c
+index ed132bd..20dfb13 100644
+--- a/src/mesa/drivers/dri/i965/gen6_vs_state.c
++++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c
+@@ -136,7 +136,8 @@ upload_vs_state(struct brw_context *brw)
+    OUT_BATCH((1 << GEN6_VS_DISPATCH_START_GRF_SHIFT) |
+ 	     (brw->vs.prog_data->urb_read_length << GEN6_VS_URB_READ_LENGTH_SHIFT) |
+ 	     (0 << GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT));
+-   OUT_BATCH((0 << GEN6_VS_MAX_THREADS_SHIFT) |
++
++   OUT_BATCH(((60 - 1) << GEN6_VS_MAX_THREADS_SHIFT) | /* max 60 threads for gen6 */
+ 	     GEN6_VS_STATISTICS_ENABLE |
+ 	     GEN6_VS_ENABLE);
+    ADVANCE_BATCH();
+-- 
+1.7.4.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 2ef13f2..ce155ea 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,6 +7,7 @@
 # Ubuntu patches.
 100_no_abi_tag.patch
 101_ubuntu_hidden_glname.patch
+102_i965_bump_VS_thread_number.patch
 103_savage-expose_fbmodes_with_nonzero_alpha.patch
 105_use_shared_libdricore.patch
 108_fix_leaks_dri2_screen_creation.patch

commit 7d6fca9b0c87aff0e4293b37b065df6079b4a8b9
Author: Robert Hooker <robert.hooker@canonical.com>
Date:   Wed Mar 23 16:52:27 2011 -0400

    Revert "i965: bump VS thread number to 60 on SNB"
    
    This reverts commit 71bb87af9d720abb728136b4b61782ee26f6e0da.

diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
index 6ec6255..0411ce0 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
@@ -1561,7 +1561,6 @@ static void emit_vertex_write( struct brw_vs_compile *c)
    int eot;
    GLuint len_vertex_header = 2;
    int next_mrf, i;
-   int msg_len;
 
    if (c->key.copy_edgeflag) {
       brw_MOV(p, 
@@ -1728,20 +1727,13 @@ static void emit_vertex_write( struct brw_vs_compile *c)
 
    eot = (c->first_overflow_output == 0);
 
-   msg_len = c->nr_outputs + 2 + len_vertex_header; 
-   if (intel->gen >= 6) {
-	   /* interleaved urb write message length for gen6 should be multiple of 2 */
-	   if ((msg_len % 2) != 0)
-		msg_len++;
-   }
-
    brw_urb_WRITE(p, 
 		 brw_null_reg(), /* dest */
 		 0,		/* starting mrf reg nr */
 		 c->r0,		/* src */
 		 0,		/* allocate */
 		 1,		/* used */
-		 MIN2(msg_len - 1, (BRW_MAX_MRF - 1)), /* msg len */
+		 MIN2(c->nr_outputs + 1 + len_vertex_header, (BRW_MAX_MRF-1)), /* msg len */
 		 0,		/* response len */
 		 eot, 		/* eot */
 		 eot, 		/* writes complete */
diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c
index 20dfb13..ed132bd 100644
--- a/src/mesa/drivers/dri/i965/gen6_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c
@@ -136,8 +136,7 @@ upload_vs_state(struct brw_context *brw)
    OUT_BATCH((1 << GEN6_VS_DISPATCH_START_GRF_SHIFT) |
 	     (brw->vs.prog_data->urb_read_length << GEN6_VS_URB_READ_LENGTH_SHIFT) |
 	     (0 << GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT));
-
-   OUT_BATCH(((60 - 1) << GEN6_VS_MAX_THREADS_SHIFT) | /* max 60 threads for gen6 */
+   OUT_BATCH((0 << GEN6_VS_MAX_THREADS_SHIFT) |
 	     GEN6_VS_STATISTICS_ENABLE |
 	     GEN6_VS_ENABLE);
    ADVANCE_BATCH();


Reply to: