Re: [Mesa-dev] [PATCH v2 14/20] i965/cs: Add max_cs_threads
On Sat, Apr 25, 2015 at 09:06:53PM -0700, Ben Widawsky wrote: On Sat, Apr 25, 2015 at 05:39:20PM -0700, Jordan Justen wrote: On 2015-04-25 13:54:41, Ben Widawsky wrote: On Fri, Apr 24, 2015 at 04:33:06PM -0700, Jordan Justen wrote: Add some values for gen7 gen8. These are the number threads in a subslice. I forget if I asked this in the v1, but shouldn't we be moving to the awful^wrequired kernel interface which exposes this information? I think for BSW it's actually required. http://lists.freedesktop.org/archives/intel-gfx/2014-July/049917.html I guess I915_PARAM_SUBSLICE_TOTAL and I915_PARAM_EU_TOTAL will be in Linux 4.1, but I think mesa should come up with conservative defaults for this info and refine it with the kernel calls when they are available. What do you think? Yeah, maybe. Since we know until BSW, things are pretty predictable, maybe just exclude that for now (IIRC, we can't even guess a conservative default there)?? With the some thinking about whether to keep BSW in, on your part: Reviewed-by: Ben Widawsky b...@bwidawsk.net Regarding using the values, so threads per subslice would be (I915_PARAM_EU_TOTAL / I915_PARAM_SUBSLICE_TOTAL) * threads_per_eu? Since the kernel doesn't provide threads_per_eu, I guess we need to have that in brw_device_info? -Jordan You're right. I think this is incomplete. Jeff, how about platforms which might have different number of EUs per subslice? Can such a thing exist? If it cannot, then what Jordan said seems correct to me. At the moment, the only uneven distribution of EU across subslices occurs in BDW and SKL which are permitted to have a single EU in any subslice fuse- disabled. My understanding is that the hardware is tolerant to the loss of just the one EU, so software doesn't need to account for it. So you should be safe to use the 'nominal' EU per subslice count determined by rounding up eu_total/subslice_total to nearest integer. -Jeff Thread counts all look right afaict though. Signed-off-by: Jordan Justen jordan.l.jus...@intel.com Cc: Ben Widawsky b...@bwidawsk.net Cc: Kenneth Graunke kenn...@whitecape.org --- src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/i965/brw_context.h | 1 + src/mesa/drivers/dri/i965/brw_device_info.c | 12 +++- src/mesa/drivers/dri/i965/brw_device_info.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 25b50c7..7f8d430 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -835,6 +835,7 @@ brwCreateContext(gl_api api, brw-max_ds_threads = devinfo-max_ds_threads; brw-max_gs_threads = devinfo-max_gs_threads; brw-max_wm_threads = devinfo-max_wm_threads; + brw-max_cs_threads = devinfo-max_cs_threads; brw-urb.size = devinfo-urb.size; brw-urb.min_vs_entries = devinfo-urb.min_vs_entries; brw-urb.max_vs_entries = devinfo-urb.max_vs_entries; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 07847cc..56827d8 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1228,6 +1228,7 @@ struct brw_context int max_ds_threads; int max_gs_threads; int max_wm_threads; + int max_cs_threads; /* BRW_NEW_URB_ALLOCATIONS: */ diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index 928bf99..7999ba9 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -117,6 +117,7 @@ static const struct brw_device_info brw_device_info_ivb_gt1 = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 36, .urb = { .size = 128, .min_vs_entries = 32, @@ -135,6 +136,7 @@ static const struct brw_device_info brw_device_info_ivb_gt2 = { .max_ds_threads = 128, .max_gs_threads = 128, .max_wm_threads = 172, + .max_cs_threads = 64, /* Maybe 96? */ .urb = { .size = 256, .min_vs_entries = 32, @@ -154,6 +156,7 @@ static const struct brw_device_info brw_device_info_byt = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 32, .urb = { .size = 128, .min_vs_entries = 32, @@ -176,6 +179,7 @@ static const struct brw_device_info brw_device_info_hsw_gt1 = { .max_ds_threads = 70, .max_gs_threads = 70, .max_wm_threads = 102, + .max_cs_threads = 70, .urb
Re: [Mesa-dev] [PATCH v2 14/20] i965/cs: Add max_cs_threads
On 2015-04-25 13:54:41, Ben Widawsky wrote: On Fri, Apr 24, 2015 at 04:33:06PM -0700, Jordan Justen wrote: Add some values for gen7 gen8. These are the number threads in a subslice. I forget if I asked this in the v1, but shouldn't we be moving to the awful^wrequired kernel interface which exposes this information? I think for BSW it's actually required. http://lists.freedesktop.org/archives/intel-gfx/2014-July/049917.html I guess I915_PARAM_SUBSLICE_TOTAL and I915_PARAM_EU_TOTAL will be in Linux 4.1, but I think mesa should come up with conservative defaults for this info and refine it with the kernel calls when they are available. What do you think? Regarding using the values, so threads per subslice would be (I915_PARAM_EU_TOTAL / I915_PARAM_SUBSLICE_TOTAL) * threads_per_eu? Since the kernel doesn't provide threads_per_eu, I guess we need to have that in brw_device_info? -Jordan Thread counts all look right afaict though. Signed-off-by: Jordan Justen jordan.l.jus...@intel.com Cc: Ben Widawsky b...@bwidawsk.net Cc: Kenneth Graunke kenn...@whitecape.org --- src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/i965/brw_context.h | 1 + src/mesa/drivers/dri/i965/brw_device_info.c | 12 +++- src/mesa/drivers/dri/i965/brw_device_info.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 25b50c7..7f8d430 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -835,6 +835,7 @@ brwCreateContext(gl_api api, brw-max_ds_threads = devinfo-max_ds_threads; brw-max_gs_threads = devinfo-max_gs_threads; brw-max_wm_threads = devinfo-max_wm_threads; + brw-max_cs_threads = devinfo-max_cs_threads; brw-urb.size = devinfo-urb.size; brw-urb.min_vs_entries = devinfo-urb.min_vs_entries; brw-urb.max_vs_entries = devinfo-urb.max_vs_entries; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 07847cc..56827d8 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1228,6 +1228,7 @@ struct brw_context int max_ds_threads; int max_gs_threads; int max_wm_threads; + int max_cs_threads; /* BRW_NEW_URB_ALLOCATIONS: */ diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index 928bf99..7999ba9 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -117,6 +117,7 @@ static const struct brw_device_info brw_device_info_ivb_gt1 = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 36, .urb = { .size = 128, .min_vs_entries = 32, @@ -135,6 +136,7 @@ static const struct brw_device_info brw_device_info_ivb_gt2 = { .max_ds_threads = 128, .max_gs_threads = 128, .max_wm_threads = 172, + .max_cs_threads = 64, /* Maybe 96? */ .urb = { .size = 256, .min_vs_entries = 32, @@ -154,6 +156,7 @@ static const struct brw_device_info brw_device_info_byt = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 32, .urb = { .size = 128, .min_vs_entries = 32, @@ -176,6 +179,7 @@ static const struct brw_device_info brw_device_info_hsw_gt1 = { .max_ds_threads = 70, .max_gs_threads = 70, .max_wm_threads = 102, + .max_cs_threads = 70, .urb = { .size = 128, .min_vs_entries = 32, @@ -193,6 +197,7 @@ static const struct brw_device_info brw_device_info_hsw_gt2 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 204, + .max_cs_threads = 70, .urb = { .size = 256, .min_vs_entries = 64, @@ -210,6 +215,7 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 408, + .max_cs_threads = 70, .urb = { .size = 512, .min_vs_entries = 64, @@ -231,10 +237,11 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_hs_threads = 504, \ .max_ds_threads = 504, \ .max_gs_threads = 504, \ - .max_wm_threads = 384\ + .max_wm_threads = 384 static const struct brw_device_info brw_device_info_bdw_gt1 = { GEN8_FEATURES, .gt = 1, + .max_cs_threads = 42, .urb = { .size = 192, .min_vs_entries = 64, @@ -247,6 +254,7 @@ static const struct brw_device_info brw_device_info_bdw_gt1 = { static const struct
Re: [Mesa-dev] [PATCH v2 14/20] i965/cs: Add max_cs_threads
On Fri, Apr 24, 2015 at 04:33:06PM -0700, Jordan Justen wrote: Add some values for gen7 gen8. These are the number threads in a subslice. I forget if I asked this in the v1, but shouldn't we be moving to the awful^wrequired kernel interface which exposes this information? I think for BSW it's actually required. http://lists.freedesktop.org/archives/intel-gfx/2014-July/049917.html Thread counts all look right afaict though. Signed-off-by: Jordan Justen jordan.l.jus...@intel.com Cc: Ben Widawsky b...@bwidawsk.net Cc: Kenneth Graunke kenn...@whitecape.org --- src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/i965/brw_context.h | 1 + src/mesa/drivers/dri/i965/brw_device_info.c | 12 +++- src/mesa/drivers/dri/i965/brw_device_info.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 25b50c7..7f8d430 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -835,6 +835,7 @@ brwCreateContext(gl_api api, brw-max_ds_threads = devinfo-max_ds_threads; brw-max_gs_threads = devinfo-max_gs_threads; brw-max_wm_threads = devinfo-max_wm_threads; + brw-max_cs_threads = devinfo-max_cs_threads; brw-urb.size = devinfo-urb.size; brw-urb.min_vs_entries = devinfo-urb.min_vs_entries; brw-urb.max_vs_entries = devinfo-urb.max_vs_entries; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 07847cc..56827d8 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1228,6 +1228,7 @@ struct brw_context int max_ds_threads; int max_gs_threads; int max_wm_threads; + int max_cs_threads; /* BRW_NEW_URB_ALLOCATIONS: */ diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index 928bf99..7999ba9 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -117,6 +117,7 @@ static const struct brw_device_info brw_device_info_ivb_gt1 = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 36, .urb = { .size = 128, .min_vs_entries = 32, @@ -135,6 +136,7 @@ static const struct brw_device_info brw_device_info_ivb_gt2 = { .max_ds_threads = 128, .max_gs_threads = 128, .max_wm_threads = 172, + .max_cs_threads = 64, /* Maybe 96? */ .urb = { .size = 256, .min_vs_entries = 32, @@ -154,6 +156,7 @@ static const struct brw_device_info brw_device_info_byt = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 32, .urb = { .size = 128, .min_vs_entries = 32, @@ -176,6 +179,7 @@ static const struct brw_device_info brw_device_info_hsw_gt1 = { .max_ds_threads = 70, .max_gs_threads = 70, .max_wm_threads = 102, + .max_cs_threads = 70, .urb = { .size = 128, .min_vs_entries = 32, @@ -193,6 +197,7 @@ static const struct brw_device_info brw_device_info_hsw_gt2 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 204, + .max_cs_threads = 70, .urb = { .size = 256, .min_vs_entries = 64, @@ -210,6 +215,7 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 408, + .max_cs_threads = 70, .urb = { .size = 512, .min_vs_entries = 64, @@ -231,10 +237,11 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_hs_threads = 504, \ .max_ds_threads = 504, \ .max_gs_threads = 504, \ - .max_wm_threads = 384\ + .max_wm_threads = 384 static const struct brw_device_info brw_device_info_bdw_gt1 = { GEN8_FEATURES, .gt = 1, + .max_cs_threads = 42, .urb = { .size = 192, .min_vs_entries = 64, @@ -247,6 +254,7 @@ static const struct brw_device_info brw_device_info_bdw_gt1 = { static const struct brw_device_info brw_device_info_bdw_gt2 = { GEN8_FEATURES, .gt = 2, + .max_cs_threads = 56, .urb = { .size = 384, .min_vs_entries = 64, @@ -259,6 +267,7 @@ static const struct brw_device_info brw_device_info_bdw_gt2 = { static const struct brw_device_info brw_device_info_bdw_gt3 = { GEN8_FEATURES, .gt = 3, + .max_cs_threads = 56, .urb = { .size = 384, .min_vs_entries = 64, @@ -280,6 +289,7 @@ static const struct brw_device_info brw_device_info_chv = { .max_ds_threads = 80, .max_gs_threads = 80, .max_wm_threads = 128, + .max_cs_threads = 28, .urb =
Re: [Mesa-dev] [PATCH v2 14/20] i965/cs: Add max_cs_threads
On Sat, Apr 25, 2015 at 05:39:20PM -0700, Jordan Justen wrote: On 2015-04-25 13:54:41, Ben Widawsky wrote: On Fri, Apr 24, 2015 at 04:33:06PM -0700, Jordan Justen wrote: Add some values for gen7 gen8. These are the number threads in a subslice. I forget if I asked this in the v1, but shouldn't we be moving to the awful^wrequired kernel interface which exposes this information? I think for BSW it's actually required. http://lists.freedesktop.org/archives/intel-gfx/2014-July/049917.html I guess I915_PARAM_SUBSLICE_TOTAL and I915_PARAM_EU_TOTAL will be in Linux 4.1, but I think mesa should come up with conservative defaults for this info and refine it with the kernel calls when they are available. What do you think? Yeah, maybe. Since we know until BSW, things are pretty predictable, maybe just exclude that for now (IIRC, we can't even guess a conservative default there)?? With the some thinking about whether to keep BSW in, on your part: Reviewed-by: Ben Widawsky b...@bwidawsk.net Regarding using the values, so threads per subslice would be (I915_PARAM_EU_TOTAL / I915_PARAM_SUBSLICE_TOTAL) * threads_per_eu? Since the kernel doesn't provide threads_per_eu, I guess we need to have that in brw_device_info? -Jordan You're right. I think this is incomplete. Jeff, how about platforms which might have different number of EUs per subslice? Can such a thing exist? If it cannot, then what Jordan said seems correct to me. Thread counts all look right afaict though. Signed-off-by: Jordan Justen jordan.l.jus...@intel.com Cc: Ben Widawsky b...@bwidawsk.net Cc: Kenneth Graunke kenn...@whitecape.org --- src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/i965/brw_context.h | 1 + src/mesa/drivers/dri/i965/brw_device_info.c | 12 +++- src/mesa/drivers/dri/i965/brw_device_info.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 25b50c7..7f8d430 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -835,6 +835,7 @@ brwCreateContext(gl_api api, brw-max_ds_threads = devinfo-max_ds_threads; brw-max_gs_threads = devinfo-max_gs_threads; brw-max_wm_threads = devinfo-max_wm_threads; + brw-max_cs_threads = devinfo-max_cs_threads; brw-urb.size = devinfo-urb.size; brw-urb.min_vs_entries = devinfo-urb.min_vs_entries; brw-urb.max_vs_entries = devinfo-urb.max_vs_entries; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 07847cc..56827d8 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1228,6 +1228,7 @@ struct brw_context int max_ds_threads; int max_gs_threads; int max_wm_threads; + int max_cs_threads; /* BRW_NEW_URB_ALLOCATIONS: */ diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index 928bf99..7999ba9 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -117,6 +117,7 @@ static const struct brw_device_info brw_device_info_ivb_gt1 = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 36, .urb = { .size = 128, .min_vs_entries = 32, @@ -135,6 +136,7 @@ static const struct brw_device_info brw_device_info_ivb_gt2 = { .max_ds_threads = 128, .max_gs_threads = 128, .max_wm_threads = 172, + .max_cs_threads = 64, /* Maybe 96? */ .urb = { .size = 256, .min_vs_entries = 32, @@ -154,6 +156,7 @@ static const struct brw_device_info brw_device_info_byt = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 32, .urb = { .size = 128, .min_vs_entries = 32, @@ -176,6 +179,7 @@ static const struct brw_device_info brw_device_info_hsw_gt1 = { .max_ds_threads = 70, .max_gs_threads = 70, .max_wm_threads = 102, + .max_cs_threads = 70, .urb = { .size = 128, .min_vs_entries = 32, @@ -193,6 +197,7 @@ static const struct brw_device_info brw_device_info_hsw_gt2 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 204, + .max_cs_threads = 70, .urb = { .size = 256, .min_vs_entries = 64, @@ -210,6 +215,7 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 408, + .max_cs_threads = 70, .urb = { .size = 512, .min_vs_entries =
[Mesa-dev] [PATCH v2 14/20] i965/cs: Add max_cs_threads
Add some values for gen7 gen8. These are the number threads in a subslice. Signed-off-by: Jordan Justen jordan.l.jus...@intel.com Cc: Ben Widawsky b...@bwidawsk.net Cc: Kenneth Graunke kenn...@whitecape.org --- src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/i965/brw_context.h | 1 + src/mesa/drivers/dri/i965/brw_device_info.c | 12 +++- src/mesa/drivers/dri/i965/brw_device_info.h | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 25b50c7..7f8d430 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -835,6 +835,7 @@ brwCreateContext(gl_api api, brw-max_ds_threads = devinfo-max_ds_threads; brw-max_gs_threads = devinfo-max_gs_threads; brw-max_wm_threads = devinfo-max_wm_threads; + brw-max_cs_threads = devinfo-max_cs_threads; brw-urb.size = devinfo-urb.size; brw-urb.min_vs_entries = devinfo-urb.min_vs_entries; brw-urb.max_vs_entries = devinfo-urb.max_vs_entries; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 07847cc..56827d8 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1228,6 +1228,7 @@ struct brw_context int max_ds_threads; int max_gs_threads; int max_wm_threads; + int max_cs_threads; /* BRW_NEW_URB_ALLOCATIONS: */ diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index 928bf99..7999ba9 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -117,6 +117,7 @@ static const struct brw_device_info brw_device_info_ivb_gt1 = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 36, .urb = { .size = 128, .min_vs_entries = 32, @@ -135,6 +136,7 @@ static const struct brw_device_info brw_device_info_ivb_gt2 = { .max_ds_threads = 128, .max_gs_threads = 128, .max_wm_threads = 172, + .max_cs_threads = 64, /* Maybe 96? */ .urb = { .size = 256, .min_vs_entries = 32, @@ -154,6 +156,7 @@ static const struct brw_device_info brw_device_info_byt = { .max_ds_threads = 36, .max_gs_threads = 36, .max_wm_threads = 48, + .max_cs_threads = 32, .urb = { .size = 128, .min_vs_entries = 32, @@ -176,6 +179,7 @@ static const struct brw_device_info brw_device_info_hsw_gt1 = { .max_ds_threads = 70, .max_gs_threads = 70, .max_wm_threads = 102, + .max_cs_threads = 70, .urb = { .size = 128, .min_vs_entries = 32, @@ -193,6 +197,7 @@ static const struct brw_device_info brw_device_info_hsw_gt2 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 204, + .max_cs_threads = 70, .urb = { .size = 256, .min_vs_entries = 64, @@ -210,6 +215,7 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_ds_threads = 280, .max_gs_threads = 256, .max_wm_threads = 408, + .max_cs_threads = 70, .urb = { .size = 512, .min_vs_entries = 64, @@ -231,10 +237,11 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { .max_hs_threads = 504, \ .max_ds_threads = 504, \ .max_gs_threads = 504, \ - .max_wm_threads = 384\ + .max_wm_threads = 384 static const struct brw_device_info brw_device_info_bdw_gt1 = { GEN8_FEATURES, .gt = 1, + .max_cs_threads = 42, .urb = { .size = 192, .min_vs_entries = 64, @@ -247,6 +254,7 @@ static const struct brw_device_info brw_device_info_bdw_gt1 = { static const struct brw_device_info brw_device_info_bdw_gt2 = { GEN8_FEATURES, .gt = 2, + .max_cs_threads = 56, .urb = { .size = 384, .min_vs_entries = 64, @@ -259,6 +267,7 @@ static const struct brw_device_info brw_device_info_bdw_gt2 = { static const struct brw_device_info brw_device_info_bdw_gt3 = { GEN8_FEATURES, .gt = 3, + .max_cs_threads = 56, .urb = { .size = 384, .min_vs_entries = 64, @@ -280,6 +289,7 @@ static const struct brw_device_info brw_device_info_chv = { .max_ds_threads = 80, .max_gs_threads = 80, .max_wm_threads = 128, + .max_cs_threads = 28, .urb = { .size = 192, .min_vs_entries = 34, diff --git a/src/mesa/drivers/dri/i965/brw_device_info.h b/src/mesa/drivers/dri/i965/brw_device_info.h index b921c2b..65c024c 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.h +++ b/src/mesa/drivers/dri/i965/brw_device_info.h @@ -71,6 +71,7 @@ struct brw_device_info unsigned max_ds_threads; unsigned max_gs_threads; unsigned max_wm_threads; + unsigned max_cs_threads; struct { unsigned size; -- 2.1.4