i965: Fix up SF max_threads.
authorEric Anholt <eric@anholt.net>
Mon, 3 Nov 2008 02:49:33 +0000 (18:49 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 12 Nov 2008 21:07:23 +0000 (13:07 -0800)
We were dividing the number of URB entries by two to get number of threads,
which looks suspiciously like a copy'n'paste-o from brw_vs_state.c.  Also, the
maximum number of threads is 24, not 12.

src/mesa/drivers/dri/i965/brw_sf_state.c

index 4f925d1810561bfe6505358b2e409ed68220f42c..506126fcfb02da4af29f1e65a7d30619c7b9eaf1 100644 (file)
@@ -172,7 +172,8 @@ sf_unit_create_from_key(struct brw_context *brw, struct brw_sf_unit_key *key,
 
    sf.thread4.nr_urb_entries = key->nr_urb_entries;
    sf.thread4.urb_entry_allocation_size = key->sfsize - 1;
-   sf.thread4.max_threads = MIN2(12, key->nr_urb_entries / 2) - 1;
+   /* Each SF thread produces 1 PUE, and there can be up to 24 threads */
+   sf.thread4.max_threads = MIN2(24, key->nr_urb_entries) - 1;
 
    if (INTEL_DEBUG & DEBUG_SINGLE_THREAD)
       sf.thread4.max_threads = 0;