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 = 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 > > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev