[PATCH 1/2] drm/nouveau: Add DRM_IOCTL_NOUVEAU_GET_ZCULL_INFO

Danilo Krummrich dakr at kernel.org
Fri Mar 28 11:09:13 UTC 2025


(CC: Ben, John)

On Thu, Mar 27, 2025 at 02:03:21PM -0400, M Henning wrote:
> On Thu, Mar 27, 2025 at 9:51 AM Danilo Krummrich <dakr at kernel.org> wrote:
> >
> > On Fri, Mar 21, 2025 at 06:06:34PM -0400, M Henning wrote:
> > > On Thu, Mar 20, 2025 at 2:18 PM Danilo Krummrich <dakr at kernel.org> wrote:
> > > > On Wed, Mar 12, 2025 at 05:36:14PM -0400, Mel Henning wrote:
> > > > > +     __u32 width_align_pixels;
> > > > > +     __u32 height_align_pixels;
> > > > > +     __u32 pixel_squares_by_aliquots;
> > > > > +     __u32 aliquot_total;
> > > > > +     __u32 zcull_region_byte_multiplier;
> > > > > +     __u32 zcull_region_header_size;
> > > > > +     __u32 zcull_subregion_header_size;
> > > > > +     __u32 subregion_count;
> > > > > +     __u32 subregion_width_align_pixels;
> > > > > +     __u32 subregion_height_align_pixels;
> > > > > +
> > > > > +     __u32 ctxsw_size;
> > > > > +     __u32 ctxsw_align;
> > > > > +};
> > > >
> > > > What if this ever changes between hardware revisions or firmware versions?
> > >
> > > There was some previous discussion of that here:
> > > https://gitlab.freedesktop.org/mesa/mesa/-/issues/12596#note_2796853
> > >
> > > From what I can tell, this structure hasn't really changed since
> > > FERMI_C (circa 2011), so I'm not too worried about it changing on us
> > > too quickly. When it does change, we have the option of appending more
> > > members to this struct in the usual way, or if the change is more
> > > fundamental we can return an error from this ioctl and add a new
> > > interface. Userspace needs to handle an error from this ioctl
> > > gracefully anyway since whether it works or not depends on the gpu
> > > generation and what firmware is loaded right now.
> >
> > We could also define it as
> >
> >         struct drm_nouveau_get_zcull_info {
> >                 __u32 version;
> >                 __u32 _pad;
> >
> >                 union {
> >                         struct drm_nouveau_get_zcull_info_v1 info;
> >                 }
> >         }
> >
> > just to be safe.
> 
> We can do that, although I don't see any other drm drivers using a
> similar pattern anywhere.

I think it's a bit cleaner than adding new members, leave existing ones unset or
add a new IOCTL in the worst case.

Maybe the NVIDIA folks can give us some hint on whether this is expected to
change at some point?


More information about the Nouveau mailing list