/* BRW_NEW_URB_FENCE */
clip.thread4.nr_urb_entries = brw->urb.nr_clip_entries;
clip.thread4.urb_entry_allocation_size = brw->urb.vsize - 1;
- clip.thread4.max_threads = MIN2(brw->urb.nr_clip_entries, 16) - 1;
-
- if (INTEL_DEBUG & DEBUG_SINGLE_THREAD)
- clip.thread4.max_threads = 0;
+ clip.thread4.max_threads = 0; /* Hmm, maybe the max is 1 or 2 threads */
if (INTEL_DEBUG & DEBUG_STATS)
clip.thread4.stats_enable = 1;
GLuint min_entry_size;
GLuint max_entry_size;
} limits[CS+1] = {
- { 8, 16, 1, 5 }, /* vs */
+ { 8, 24, 1, 5 }, /* vs */
{ 4, 8, 1, 5 }, /* gs */
{ 6, 12, 1, 5 }, /* clp */
{ 1, 8, 1, 12 }, /* sf */
/* BRW_NEW_URB_FENCE */
vs.thread4.nr_urb_entries = brw->urb.nr_vs_entries;
vs.thread4.urb_entry_allocation_size = brw->urb.vsize - 1;
- vs.thread4.max_threads = MIN2(brw->urb.nr_vs_entries, 16) - 1;
+ vs.thread4.max_threads = MIN2(
+ MAX2(0, (brw->urb.nr_vs_entries - 6) / 2 - 1),
+ 15);
+
+
if (INTEL_DEBUG & DEBUG_SINGLE_THREAD)
vs.thread4.max_threads = 0;