[Mesa-dev] [PATCH 13/16] nvc0: enable compute support by default on Fermi

Jan Vesely jan.vesely at rutgers.edu
Sat Oct 17 13:24:09 PDT 2015


On Sat, 2015-10-17 at 15:24 -0400, Ilia Mirkin wrote:
> "compute" in this context is "initialize the compute engine so that
> kernels may be executed", not "convert the llvm ir bitcode that
> clover
> hands us into nv50 ir". The former has actually been around for
> years,
> Samuel just fixed up a few fermi-specific bits.

Can't we use LLVM IR-> TGSI -> nv IR for that?

I understand there is more work to be done (for one we'd also need a
nouveau variant of libclc). Having a Fermi card in my nb, change from
"it will crash even if someone did the work" to "it's feasible if you
find someone with plenty of time on his/her hands" is still nice.

Jan

> 
> On Sat, Oct 17, 2015 at 3:11 PM, Jan Vesely <jan.vesely at rutgers.edu>
> wrote:
> > Does this mean it should be possible to hook up clover with
> > nouveau?
> > 
> > Jan
> > 
> > On Fri, 2015-10-16 at 19:22 +0200, Samuel Pitoiset wrote:
> > > Compute support was not enabled by default because weird effects
> > > on 3D state happened, but I can't reproduce them anymore.
> > > 
> > > This also enables MP performance counters by default on Fermi.
> > > 
> > > Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> > > ---
> > >  src/gallium/drivers/nouveau/nvc0/nvc0_query.c  | 3 +--
> > >  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 7 +------
> > >  2 files changed, 2 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
> > > b/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
> > > index c81b85a..80f311b 100644
> > > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
> > > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_query.c
> > > @@ -291,7 +291,6 @@ nvc0_screen_get_driver_query_info(struct
> > > pipe_screen *pscreen,
> > >              count += NVE4_HW_SM_QUERY_COUNT;
> > >           } else
> > >           if (screen->base.class_3d < NVE4_3D_CLASS) {
> > > -            /* NVC0_COMPUTE is not always enabled */
> > >              count += NVC0_HW_SM_QUERY_COUNT;
> > >           }
> > >        }
> > > @@ -358,7 +357,7 @@
> > > nvc0_screen_get_driver_query_group_info(struct
> > > pipe_screen *pscreen,
> > >              count++;
> > >           } else
> > >           if (screen->base.class_3d < NVE4_3D_CLASS) {
> > > -            count++; /* NVC0_COMPUTE is not always enabled */
> > > +            count++;
> > >           }
> > >        }
> > >     }
> > > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > index ba53d10..d6a4ac5 100644
> > > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > @@ -561,12 +561,7 @@ nvc0_screen_init_compute(struct nvc0_screen
> > > *screen)
> > >     switch (screen->base.device->chipset & ~0xf) {
> > >     case 0xc0:
> > >     case 0xd0:
> > > -      /* Using COMPUTE has weird effects on 3D state, we need to
> > > -       * investigate this further before enabling it by default.
> > > -       */
> > > -      if (debug_get_bool_option("NVC0_COMPUTE", false))
> > > -         return nvc0_screen_compute_setup(screen, screen
> > > ->base.pushbuf);
> > > -      return 0;
> > > +      return nvc0_screen_compute_setup(screen, screen
> > > ->base.pushbuf);
> > >     case 0xe0:
> > >        return nve4_screen_compute_setup(screen, screen
> > > ->base.pushbuf);
> > >     case 0xf0:
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151017/e7f386b2/attachment-0001.sig>


More information about the mesa-dev mailing list