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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Date: Tue Mar 1 10:39:35 2011 +0800 i965: bump VS thread number to 60 on SNB Signed-off-by: Zou Nan hai <[email protected]> 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(); -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

