Gerd Hoffmann
2019-Apr-29 07:54 UTC
[Spice-devel] [PATCH] Revert "drm/qxl: drop prime import/export callbacks"
On Fri, Apr 26, 2019 at 04:21:37PM +0200, Daniel Vetter wrote:> On Fri, Apr 26, 2019 at 7:33 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > > > This reverts commit f4c34b1e2a37d5676180901fa6ff188bcb6371f8. > > > > Simliar to commit a0cecc23cfcb Revert "drm/virtio: drop prime > > import/export callbacks". We have to do the same with qxl, > > for the same reasons (it breaks DRI3). > > > > Drop the WARN_ON_ONCE(). > > > > Fixes: f4c34b1e2a37d5676180901fa6ff188bcb6371f8 > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > > Maybe we need some helpers for virtual drivers which only allow > self-reimport and nothing else at all?The current gem prime helpers handle this reasonable well, I don't see a need for that. More useful would be some way to signal this self-reimport capability to userspace somehow. See DRM_PRIME_CAP_LOCAL patch. Right now I have the choice to set DRM_PRIME_CAP_{IMPORT,EXPORT}, in which case some userspace assumes it can do cross-driver export/import and trips over that not working. Or I do not set DRM_PRIME_CAP_{IMPORT,EXPORT}, which breaks DRI3 ...> I think there's qxl, virgl,export is implemented for virgl, and import should be possible too. qxl/bochs is simliar to vmgfx, it could be done but dma-bufs would basically be bounce buffers (need copy from/to vram) so probably not worth the effort. cheers, Gerd
Daniel Vetter
2019-Apr-29 07:58 UTC
[Spice-devel] [PATCH] Revert "drm/qxl: drop prime import/export callbacks"
On Mon, Apr 29, 2019 at 9:54 AM Gerd Hoffmann <kraxel at redhat.com> wrote:> > On Fri, Apr 26, 2019 at 04:21:37PM +0200, Daniel Vetter wrote: > > On Fri, Apr 26, 2019 at 7:33 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > > > > > This reverts commit f4c34b1e2a37d5676180901fa6ff188bcb6371f8. > > > > > > Simliar to commit a0cecc23cfcb Revert "drm/virtio: drop prime > > > import/export callbacks". We have to do the same with qxl, > > > for the same reasons (it breaks DRI3). > > > > > > Drop the WARN_ON_ONCE(). > > > > > > Fixes: f4c34b1e2a37d5676180901fa6ff188bcb6371f8 > > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > > > > Maybe we need some helpers for virtual drivers which only allow > > self-reimport and nothing else at all? > > The current gem prime helpers handle this reasonable well, > I don't see a need for that. > > More useful would be some way to signal this self-reimport capability > to userspace somehow. See DRM_PRIME_CAP_LOCAL patch.Userspace is supposed to test whether import/export works for a specific combo, not blindly assume it does and then keel over. I think we need to fix that, not add more flags - there's lots of reasons why a given pair of devices can't share buffers (e.g. all the contiguous allocations stuff on socs).> Right now I have the choice to set DRM_PRIME_CAP_{IMPORT,EXPORT}, in > which case some userspace assumes it can do cross-driver export/import > and trips over that not working. Or I do not set > DRM_PRIME_CAP_{IMPORT,EXPORT}, which breaks DRI3 ...Yeah that's not an option. -Daniel> > I think there's qxl, virgl, > > export is implemented for virgl, and import should be possible too. > > qxl/bochs is simliar to vmgfx, it could be done but dma-bufs would > basically be bounce buffers (need copy from/to vram) so probably not > worth the effort. > > cheers, > Gerd >-- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch
Gerd Hoffmann
2019-Apr-29 14:37 UTC
[Spice-devel] [PATCH] Revert "drm/qxl: drop prime import/export callbacks"
Hi,> > More useful would be some way to signal this self-reimport capability > > to userspace somehow. See DRM_PRIME_CAP_LOCAL patch. > > Userspace is supposed to test whether import/export works for a > specific combo, not blindly assume it does and then keel over. I think > we need to fix that, not add more flags - there's lots of reasons why > a given pair of devices can't share buffers (e.g. all the contiguous > allocations stuff on socs).Ok. Lets scratch the DRM_PRIME_CAP_LOCAL idea then and blame userspace instead.> > Right now I have the choice to set DRM_PRIME_CAP_{IMPORT,EXPORT}, in > > which case some userspace assumes it can do cross-driver export/import > > and trips over that not working. Or I do not set > > DRM_PRIME_CAP_{IMPORT,EXPORT}, which breaks DRI3 ... > > Yeah that's not an option.Good. Can I get an ack for this patch then, as it unbreaks DRI3 with qxl? thanks, Gerd