On Sat, Jul 5, 2014 at 2:49 PM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > On nvc0, a counter can up to 6 sources instead of only one > for nve4+. This fixes a crash when a counter uses more than > one source. > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/gallium/drivers/nouveau/nvc0/nvc0_query.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_query.c > b/src/gallium/drivers/nouveau/nvc0/nvc0_query.c > index 70fe270..50cef1e 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_query.c > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_query.c > @@ -1067,6 +1067,7 @@ nvc0_mp_pm_query_begin(struct nvc0_context *nvc0, > struct nvc0_query *q) > { > struct nvc0_screen *screen = nvc0->screen; > struct nouveau_pushbuf *push = nvc0->base.pushbuf; > + const boolean is_nve4 = screen->base.class_3d >= NVE4_3D_CLASS; > const struct nvc0_mp_pm_query_cfg *cfg; > unsigned i, c; > unsigned num_ab[2] = { 0, 0 }; > @@ -1084,7 +1085,7 @@ nvc0_mp_pm_query_begin(struct nvc0_context *nvc0, > struct nvc0_query *q) > } > > assert(cfg->num_counters <= 4); > - PUSH_SPACE(push, 4 * 8 + 6); > + PUSH_SPACE(push, 4 * 8 * (is_nve4 ? 1 : 6) + 6); > > if (!screen->pm.mp_counters_enabled) { > screen->pm.mp_counters_enabled = TRUE; > @@ -1118,7 +1119,7 @@ nvc0_mp_pm_query_begin(struct nvc0_context *nvc0, > struct nvc0_query *q) > assert(c <= (d * 4 + 3)); /* must succeed, already checked for space */ > > /* configure and reset the counter(s) */ > - if (screen->base.class_3d >= NVE4_3D_CLASS) { > + if (is_nve4) { > if (d == 0) > BEGIN_NVC0(push, NVE4_COMPUTE(MP_PM_A_SIGSEL(c & 3)), 1); > else > -- > 2.0.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev