.max_wm_threads = 40,
.urb = {
.size = 32,
- .min_vs_entries = 24,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 24,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 256,
[MESA_SHADER_GEOMETRY] = 256,
.max_wm_threads = 80,
.urb = {
.size = 64,
- .min_vs_entries = 24,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 24,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 256,
[MESA_SHADER_GEOMETRY] = 256,
.max_cs_threads = 36,
.urb = {
.size = 128,
- .min_vs_entries = 32,
- .min_ds_entries = 10,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 32,
+ [MESA_SHADER_TESS_EVAL] = 10,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 512,
[MESA_SHADER_TESS_CTRL] = 32,
.max_cs_threads = 64,
.urb = {
.size = 256,
- .min_vs_entries = 32,
- .min_ds_entries = 10,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 32,
+ [MESA_SHADER_TESS_EVAL] = 10,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 704,
[MESA_SHADER_TESS_CTRL] = 64,
.max_cs_threads = 32,
.urb = {
.size = 128,
- .min_vs_entries = 32,
- .min_ds_entries = 10,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 32,
+ [MESA_SHADER_TESS_EVAL] = 10,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 512,
[MESA_SHADER_TESS_CTRL] = 32,
.max_cs_threads = 70,
.urb = {
.size = 128,
- .min_vs_entries = 32,
- .min_ds_entries = 10,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 32,
+ [MESA_SHADER_TESS_EVAL] = 10,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 640,
[MESA_SHADER_TESS_CTRL] = 64,
.max_cs_threads = 70,
.urb = {
.size = 256,
- .min_vs_entries = 64,
- .min_ds_entries = 10,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 64,
+ [MESA_SHADER_TESS_EVAL] = 10,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 1664,
[MESA_SHADER_TESS_CTRL] = 128,
.max_cs_threads = 70,
.urb = {
.size = 512,
- .min_vs_entries = 64,
- .min_ds_entries = 10,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 64,
+ [MESA_SHADER_TESS_EVAL] = 10,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 1664,
[MESA_SHADER_TESS_CTRL] = 128,
.max_cs_threads = 42,
.urb = {
.size = 192,
- .min_vs_entries = 64,
- .min_ds_entries = 34,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 64,
+ [MESA_SHADER_TESS_EVAL] = 34,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 2560,
[MESA_SHADER_TESS_CTRL] = 504,
.max_cs_threads = 56,
.urb = {
.size = 384,
- .min_vs_entries = 64,
- .min_ds_entries = 34,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 64,
+ [MESA_SHADER_TESS_EVAL] = 34,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 2560,
[MESA_SHADER_TESS_CTRL] = 504,
.max_cs_threads = 56,
.urb = {
.size = 384,
- .min_vs_entries = 64,
- .min_ds_entries = 34,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 64,
+ [MESA_SHADER_TESS_EVAL] = 34,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 2560,
[MESA_SHADER_TESS_CTRL] = 504,
.max_cs_threads = 6 * 7,
.urb = {
.size = 192,
- .min_vs_entries = 34,
- .min_ds_entries = 34,
+ .min_entries = {
+ [MESA_SHADER_VERTEX] = 34,
+ [MESA_SHADER_TESS_EVAL] = 34,
+ },
.max_entries = {
[MESA_SHADER_VERTEX] = 640,
[MESA_SHADER_TESS_CTRL] = 80,
.max_cs_threads = 56, \
.urb = { \
.size = 384, \
- .min_vs_entries = 64, \
- .min_ds_entries = 34, \
+ .min_entries = { \
+ [MESA_SHADER_VERTEX] = 64, \
+ [MESA_SHADER_TESS_EVAL] = 34, \
+ }, \
.max_entries = { \
[MESA_SHADER_VERTEX] = 1856, \
[MESA_SHADER_TESS_CTRL] = 672, \
.max_cs_threads = 6 * 6, \
.urb = { \
.size = 192, \
- .min_vs_entries = 34, \
- .min_ds_entries = 34, \
+ .min_entries = { \
+ [MESA_SHADER_VERTEX] = 34, \
+ [MESA_SHADER_TESS_EVAL] = 34, \
+ }, \
.max_entries = { \
[MESA_SHADER_VERTEX] = 704, \
[MESA_SHADER_TESS_CTRL] = 256, \
.max_cs_threads = 6 * 6, \
.urb = { \
.size = 128, \
- .min_vs_entries = 34, \
- .min_ds_entries = 34, \
+ .min_entries = { \
+ [MESA_SHADER_VERTEX] = 34, \
+ [MESA_SHADER_TESS_EVAL] = 34, \
+ }, \
.max_entries = { \
[MESA_SHADER_VERTEX] = 352, \
[MESA_SHADER_TESS_CTRL] = 128, \
* greater than or equal to 192."
*/
unsigned vs_min_entries =
- tess_present && brw->gen == 8 ? 192 : devinfo->urb.min_vs_entries;
+ tess_present && brw->gen == 8 ?
+ 192 : devinfo->urb.min_entries[MESA_SHADER_VERTEX];
/* Min VS Entries isn't a multiple of 8 on Cherryview/Broxton; round up */
vs_min_entries = ALIGN(vs_min_entries, vs_granularity);
hs_entry_size_bytes, chunk_size_bytes) - hs_chunks;
ds_chunks =
- DIV_ROUND_UP(devinfo->urb.min_ds_entries * ds_entry_size_bytes,
- chunk_size_bytes);
+ DIV_ROUND_UP(devinfo->urb.min_entries[MESA_SHADER_TESS_EVAL] *
+ ds_entry_size_bytes, chunk_size_bytes);
ds_wants =
DIV_ROUND_UP(devinfo->urb.max_entries[MESA_SHADER_TESS_EVAL] *
ds_entry_size_bytes, chunk_size_bytes) - ds_chunks;
assert(nr_gs_entries >= 2);
if (tess_present) {
assert(nr_hs_entries >= 1);
- assert(nr_ds_entries >= devinfo->urb.min_ds_entries);
+ assert(nr_ds_entries >= devinfo->urb.min_entries[MESA_SHADER_TESS_EVAL]);
}
/* Gen7 doesn't actually use brw->urb.nr_{vs,gs}_entries, but it seems