On Wed, Mar 13, 2019 at 11:09 AM Eric Anholt <e...@anholt.net> wrote: > > Rob Herring <r...@kernel.org> writes: > > > On Fri, Mar 8, 2019 at 10:29 AM Eric Anholt <e...@anholt.net> wrote: > >> > >> Rob Herring <r...@kernel.org> writes: > >> > >> > From: "Marty E. Plummer" <hanet...@startmail.com> > >> > > >> > This adds the initial driver for panfrost which supports Arm Mali > >> > Midgard and Bifrost family of GPUs. Currently, only the T860 Midgard GPU > >> > has been tested. > > > > [...] > > > >> It looks like you've got v3d's silliness with the fences -- we reserve a > >> shared slot, then use excl only anyway. For v3d I'm planning on moving > >> to just excl -- only one of my entrypoints has info on write vs > >> read-only, and I don't know of a usecase where having multiple read-only > >> consumers of a shared buffer simultaneously matters. > >> > >> More importantly, I think you also have my bug of not doing implicit > >> synchronization on buffers, which will break X11 rendering > >> sometimes. X11's GL requirements are that previously-submitted rendering > >> by the client fd will execute before X11's rendering on its fd to the > >> same buffers. If you're running a single client, X11's copies are cheap > >> enough that it'll probably work out most of the time. > > > > Is there a fix for this? I didn't find anything that looked like one. > > > >> > >> > --- /dev/null > >> > +++ b/include/uapi/drm/panfrost_drm.h > >> > >> > +#define DRM_IOCTL_PANFROST_SUBMIT DRM_IOWR(DRM_COMMAND_BASE > >> > + DRM_PANFROST_SUBMIT, struct drm_panfrost_submit) > >> > +#define DRM_IOCTL_PANFROST_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE > >> > + DRM_PANFROST_WAIT_BO, struct drm_panfrost_wait_bo) > >> > +#define DRM_IOCTL_PANFROST_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE > >> > + DRM_PANFROST_CREATE_BO, struct drm_panfrost_create_bo) > >> > +#define DRM_IOCTL_PANFROST_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE > >> > + DRM_PANFROST_MMAP_BO, struct drm_panfrost_mmap_bo) > >> > +#define DRM_IOCTL_PANFROST_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE > >> > + DRM_PANFROST_GET_PARAM, struct drm_panfrost_get_param) > >> > +#define DRM_IOCTL_PANFROST_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE > >> > + DRM_PANFROST_GET_BO_OFFSET, struct drm_panfrost_get_bo_offset) > >> > >> SUBMIT and WAIT_BO might be IOR instead of IOWR > > > > Huh? Perhaps WAIT_BO should be IOW as we don't update the timeout > > being absolute, but both have input parameters and SUBMIT has output > > params. > > Sorry, IOW was what I meant. I'm not seeing the output param of SUBMIT > -- are you thinking of how the syncobj gets updated?
Yeah, I was assuming out_sync was set on output, but now that I actually look at it I see that's not the case as only the object is updated. Rob _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel