summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_context.c
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2013-08-31 20:23:49 -0700
committerPaul Berry <[email protected]>2013-09-05 09:52:47 -0700
commit588ec545acc930470c605005292c8ef10adf4919 (patch)
treeeab7ffc66da90f8106ec7fe4c98e02c4d36d496d /src/mesa/drivers/dri/i965/brw_context.c
parentae79e3332eca5c8024c894c7c7689bfbf3311038 (diff)
i965/gen7.5: Fix lower bound on number of VS URB entries.
Haswell GT2 and GT3 require the number of vertex shader URB entries to be at least 64, not 32. At the moment, we always meet this requirement automatically, because in the absence of a geometry shader, we assign all available URB space to the vertex shader. But when we turn on support for geometry shaders, this lower limit will become important. Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_context.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index d0b2fc1fdc8..4fcc9fbce8c 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -361,6 +361,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 70;
brw->max_gs_threads = 70;
brw->urb.size = 128;
+ brw->urb.min_vs_entries = 32;
brw->urb.max_vs_entries = 640;
brw->urb.max_gs_entries = 256;
} else if (brw->gt == 2) {
@@ -368,6 +369,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 280;
brw->max_gs_threads = 256;
brw->urb.size = 256;
+ brw->urb.min_vs_entries = 64;
brw->urb.max_vs_entries = 1664;
brw->urb.max_gs_entries = 640;
} else if (brw->gt == 3) {
@@ -375,6 +377,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 280;
brw->max_gs_threads = 256;
brw->urb.size = 512;
+ brw->urb.min_vs_entries = 64;
brw->urb.max_vs_entries = 1664;
brw->urb.max_gs_entries = 640;
}
@@ -384,6 +387,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 36;
brw->max_gs_threads = 36;
brw->urb.size = 128;
+ brw->urb.min_vs_entries = 32;
brw->urb.max_vs_entries = 512;
brw->urb.max_gs_entries = 192;
} else if (brw->gt == 2) {
@@ -391,6 +395,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 128;
brw->max_gs_threads = 128;
brw->urb.size = 256;
+ brw->urb.min_vs_entries = 32;
brw->urb.max_vs_entries = 704;
brw->urb.max_gs_entries = 320;
} else {
@@ -402,6 +407,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 60;
brw->max_gs_threads = 60;
brw->urb.size = 64; /* volume 5c.5 section 5.1 */
+ brw->urb.min_vs_entries = 24;
brw->urb.max_vs_entries = 256; /* volume 2a (see 3DSTATE_URB) */
brw->urb.max_gs_entries = 256;
} else {
@@ -409,6 +415,7 @@ brwCreateContext(int api,
brw->max_vs_threads = 24;
brw->max_gs_threads = 21; /* conservative; 24 if rendering disabled */
brw->urb.size = 32; /* volume 5c.5 section 5.1 */
+ brw->urb.min_vs_entries = 24;
brw->urb.max_vs_entries = 256; /* volume 2a (see 3DSTATE_URB) */
brw->urb.max_gs_entries = 256;
}