diff options
author | Paul Berry <[email protected]> | 2013-08-31 20:23:49 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2013-09-05 09:52:47 -0700 |
commit | 588ec545acc930470c605005292c8ef10adf4919 (patch) | |
tree | eab7ffc66da90f8106ec7fe4c98e02c4d36d496d /src/mesa/drivers/dri/i965/brw_context.c | |
parent | ae79e3332eca5c8024c894c7c7689bfbf3311038 (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.c | 7 |
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; } |