i965: Fix the VS thread limits for GT1, and clarify the WM limits on both.

(cherry picked from commit 904b8ba1bb)
This commit is contained in:
Eric Anholt 2011-03-29 13:22:13 -07:00 committed by Ian Romanick
parent 62fad6cb30
commit 510fb3269e
3 changed files with 14 additions and 4 deletions

View file

@ -183,8 +183,17 @@ GLboolean brwCreateContext( int api,
/* WM maximum threads is number of EUs times number of threads per EU. */
if (intel->gen >= 6) {
brw->urb.size = 1024;
brw->vs_max_threads = 60;
brw->wm_max_threads = 80;
if (IS_GT2(intel->intelScreen->deviceID)) {
/* This could possibly be 80, but is supposed to require
* disabling of WIZ hashing (bit 6 of GT_MODE, 0x20d0) and a
* GPU reset to change.
*/
brw->wm_max_threads = 40;
brw->vs_max_threads = 60;
} else {
brw->wm_max_threads = 40;
brw->vs_max_threads = 24;
}
} else if (intel->gen == 5) {
brw->urb.size = 1024;
brw->vs_max_threads = 72;

View file

@ -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(((brw->vs_max_threads - 1) << GEN6_VS_MAX_THREADS_SHIFT) |
GEN6_VS_STATISTICS_ENABLE |
GEN6_VS_ENABLE);
ADVANCE_BATCH();

View file

@ -144,7 +144,7 @@ upload_wm_state(struct brw_context *brw)
dw4 |= (brw->wm.prog_data->first_curbe_grf <<
GEN6_WM_DISPATCH_START_GRF_SHIFT_0);
dw5 |= (40 - 1) << GEN6_WM_MAX_THREADS_SHIFT;
dw5 |= (brw->wm_max_threads - 1) << GEN6_WM_MAX_THREADS_SHIFT;
/* CACHE_NEW_WM_PROG */
if (brw->wm.prog_data->dispatch_width == 8)