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

mesa: Changes to 'ubuntu'



 debian/changelog                          |    8 ++++++++
 src/mesa/drivers/dri/i965/brw_vs_emit.c   |   10 +++++++++-
 src/mesa/drivers/dri/i965/gen6_vs_state.c |    3 ++-
 3 files changed, 19 insertions(+), 2 deletions(-)

New commits:
commit a73975400885583448efe584b502407d3a74ac04
Author: Robert Hooker <robert.hooker@canonical.com>
Date:   Wed Mar 23 15:54:24 2011 -0400

    Document intel cherry-pick

diff --git a/debian/changelog b/debian/changelog
index a466924..2fbef1b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+mesa (7.10.1-0ubuntu4) UNRELEASED; urgency=low
+
+  * Cherry-pick upstream commit 6c324777a685d28d0a81d23157e4863240552999
+    to fix a major performance problem with unity on Intel
+    Sandybridge GPUs.
+
+ -- Robert Hooker <sarvatt@ubuntu.com>  Wed, 23 Mar 2011 15:51:12 -0400
+
 mesa (7.10.1-0ubuntu3) natty; urgency=low
 
   * debian/patches/113_partially_fix_tls.diff:

commit 71bb87af9d720abb728136b4b61782ee26f6e0da
Author: Zou Nan hai <nanhai.zou@intel.com>
Date:   Tue Mar 1 10:39:35 2011 +0800

    i965: bump VS thread number to 60 on SNB
    
    Signed-off-by: Zou Nan hai <nanhai.zou@intel.com>

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();


Reply to: