[Mesa-dev] [PATCH] nouveau: handle new CAPS

Ilia Mirkin imirkin at alum.mit.edu
Tue Jul 2 16:29:43 UTC 2019


On Tue, Jul 2, 2019 at 12:04 PM Karol Herbst <kherbst at redhat.com> wrote:
>
> On Tue, Jul 2, 2019 at 5:54 PM Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> >
> > Can you check on PIPE_CAP_COMPUTE_SHADER_DERIVATIVES ? I think we
> > should be able to just flip that on for nvc0. Also the
> > CS_DERIVED_SYSTEM_VALUES thing might be useful -- I had wanted to do
> > that a while ago but laziness defeated me. Now that it's there though
> > ... we have sysvals for many of those derived things.
> >
> > Or at least add commentary about each one, like "should be enabled
> > when we get to it" sort of thing.
> >
>
> I added a trello card for the PIPE_CAP_COMPUTE_SHADER_DERIVATIVES one,
> but I could add another one for CS_DERIVED_SYSTEM_VALUES

OK. I have a mild preference for there to be a comment about something
that should be supportable in the code, but I'm good either way.

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

>
> > On Tue, Jul 2, 2019 at 11:49 AM Karol Herbst <kherbst at redhat.com> wrote:
> > >
> > > Signed-off-by: Karol Herbst <kherbst at redhat.com>
> > > ---
> > >  src/gallium/drivers/nouveau/nv50/nv50_screen.c | 13 +++++++++++++
> > >  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 13 +++++++++++++
> > >  2 files changed, 26 insertions(+)
> > >
> > > diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> > > index b84330b4b38..24796aff1ce 100644
> > > --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> > > +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> > > @@ -320,6 +320,13 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
> > >     case PIPE_CAP_NIR_COMPACT_ARRAYS:
> > >     case PIPE_CAP_COMPUTE:
> > >     case PIPE_CAP_IMAGE_LOAD_FORMATTED:
> > > +   case PIPE_CAP_COMPUTE_SHADER_DERIVATIVES:
> > > +   case PIPE_CAP_ATOMIC_FLOAT_MINMAX:
> > > +   case PIPE_CAP_CONSERVATIVE_RASTER_INNER_COVERAGE:
> > > +   case PIPE_CAP_FRAGMENT_SHADER_INTERLOCK:
> > > +   case PIPE_CAP_CS_DERIVED_SYSTEM_VALUES_SUPPORTED:
> > > +   case PIPE_CAP_FBFETCH_COHERENT:
> > > +   case PIPE_CAP_TGSI_SKIP_SHRINK_IO_ARRAYS:
> > >        return 0;
> > >
> > >     case PIPE_CAP_VENDOR_ID:
> > > @@ -338,8 +345,14 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
> > >        return dev->vram_size >> 20;
> > >     case PIPE_CAP_UMA:
> > >        return 0;
> > > +
> > >     default:
> > >        debug_printf("%s: unhandled cap %d\n", __func__, param);
> > > +      /* fallthrough */
> > > +   /* caps where we want the default value */
> > > +   case PIPE_CAP_DMABUF:
> > > +   case PIPE_CAP_ESSL_FEATURE_LEVEL:
> > > +   case PIPE_CAP_MAX_FRAMES_IN_FLIGHT:
> > >        return u_pipe_screen_get_param_defaults(pscreen, param);
> > >     }
> > >  }
> > > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > index 3a543e54d1f..bf883631b86 100644
> > > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> > > @@ -355,6 +355,13 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
> > >     case PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS:
> > >     case PIPE_CAP_NIR_COMPACT_ARRAYS:
> > >     case PIPE_CAP_IMAGE_LOAD_FORMATTED:
> > > +   case PIPE_CAP_COMPUTE_SHADER_DERIVATIVES:
> > > +   case PIPE_CAP_ATOMIC_FLOAT_MINMAX:
> > > +   case PIPE_CAP_CONSERVATIVE_RASTER_INNER_COVERAGE:
> > > +   case PIPE_CAP_FRAGMENT_SHADER_INTERLOCK:
> > > +   case PIPE_CAP_CS_DERIVED_SYSTEM_VALUES_SUPPORTED:
> > > +   case PIPE_CAP_FBFETCH_COHERENT:
> > > +   case PIPE_CAP_TGSI_SKIP_SHRINK_IO_ARRAYS:
> > >        return 0;
> > >
> > >     case PIPE_CAP_VENDOR_ID:
> > > @@ -373,8 +380,14 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
> > >        return dev->vram_size >> 20;
> > >     case PIPE_CAP_UMA:
> > >        return 0;
> > > +
> > >     default:
> > >        debug_printf("%s: unhandled cap %d\n", __func__, param);
> > > +      /* fallthrough */
> > > +   /* caps where we want the default value */
> > > +   case PIPE_CAP_DMABUF:
> > > +   case PIPE_CAP_ESSL_FEATURE_LEVEL:
> > > +   case PIPE_CAP_MAX_FRAMES_IN_FLIGHT:
> > >        return u_pipe_screen_get_param_defaults(pscreen, param);
> > >     }
> > >  }
> > > --
> > > 2.21.0
> > >
> > > _______________________________________________
> > > mesa-dev mailing list
> > > mesa-dev at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list