summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZou Nan hai <[email protected]>2011-03-02 14:23:17 +0800
committerZou Nan hai <[email protected]>2011-03-02 14:23:17 +0800
commitf1824905faad6831edee6cf35cb8fa389ef3852a (patch)
tree125374c576598f6c7546f8ae28ef8510eb1393a5
parente8d061fd7476ee0266a2f9860771f924e9ffccd5 (diff)
i965: Maxinum the usage of urb space on SNB.
SNB has 64k urb space, we only use piece of them. The more urb space we alloc, the more concurrent vs threads we can run. push the urb space usage to the limit. Signed-off-by: Zou Nan hai <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/gen6_urb.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_urb.c b/src/mesa/drivers/dri/i965/gen6_urb.c
index fc46c4cb79e..57be50a4451 100644
--- a/src/mesa/drivers/dri/i965/gen6_urb.c
+++ b/src/mesa/drivers/dri/i965/gen6_urb.c
@@ -34,19 +34,15 @@
static void
prepare_urb( struct brw_context *brw )
{
- brw->urb.nr_vs_entries = 24;
- if (brw->gs.prog_bo)
- brw->urb.nr_gs_entries = 4;
- else
- brw->urb.nr_gs_entries = 0;
+ brw->urb.nr_vs_entries = 256;
+ brw->urb.nr_gs_entries = 256;
+
/* CACHE_NEW_VS_PROG */
brw->urb.vs_size = MAX2(brw->vs.prog_data->urb_entry_size, 1);
- /* Check that the number of URB rows (8 floats each) allocated is less
- * than the URB space.
- */
- assert((brw->urb.nr_vs_entries +
- brw->urb.nr_gs_entries) * brw->urb.vs_size * 8 < 64 * 1024);
+ if (256 * brw->urb.vs_size > 64 * 1024)
+ brw->urb.nr_vs_entries = brw->urb.nr_gs_entries =
+ (64 * 1024 ) / brw->urb.vs_size;
}
static void