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

Karol Herbst kherbst at redhat.com
Tue Jul 2 16:04:33 UTC 2019


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

> 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