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 <[email protected]> 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 <[email protected]> +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 <[email protected]> +--- + 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 <[email protected]> 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(); -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

