[RFC PATCH] drm/panfrost: Add initial panfrost driver
Rob Herring
robh at kernel.org
Wed Mar 13 13:06:25 UTC 2019
On Fri, Mar 8, 2019 at 10:29 AM Eric Anholt <eric at anholt.net> wrote:
>
> Rob Herring <robh at kernel.org> writes:
>
> > From: "Marty E. Plummer" <hanetzer at 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.
Rob
More information about the dri-devel
mailing list