From: Daniel Vetter <daniel@ffwll.ch>
To: "Enrico Weigelt, metux IT consult" <enrico.weigelt@gr13.net>
Cc: dri devel <dri-devel@lists.freedesktop.org>
Subject: Re: RFC: hardware accelerated bitblt using dma engine
Date: Tue, 2 Aug 2016 16:04:48 +0200 [thread overview]
Message-ID: <20160802140448.GS6232@phenom.ffwll.local> (raw)
In-Reply-To: <57A09E44.3000101@gr13.net>
On Tue, Aug 02, 2016 at 03:21:08PM +0200, Enrico Weigelt, metux IT consult wrote:
> Hi folks,
>
>
> I'm currently thinking about adding an hw-accelerated bitblt operation.
> The idea goes like this:
>
> * we add some bitblt ioctl which copies rects between bo's.
> (it also handles memory layouts, pixfmt conversion, etc)
> * the driver can decide to let the GPU or IPU do that, if available
> * if we have an suitable DMA engine (maybe only the more complex ones
> which can handle lines on their own ...) we'll use that
> * as fallback, resort to memcpy().
>
>
> Whether an dma engine can/should be used might be highly hw specific,
> so that probably would be configured in DT.
>
> To use that feature, userland could actually allocate two BO's,
> one that's mapped as a framebuffer to some crtc, another one just
> a memory buffer. It could then render to the fast memory buffer and
> tell the DRM to only copy over the changed regions to the graphics
> memory via DMA (or whatever is best on that particular hw platform).
>
>
> What do you think about that idea ?
If you mean "add a generic hw-accelerated bitblt operation": This is not
hw drm works. The generic kms stuff is about display only, with just very
basic (hence "dumb") buffer allocation support in a generic way.
If you mean "expose the dma engine I have here to userspace in
driver-private ioctls with the trade-off logic between that, kms
compositing using the display block and memcpy in userspace", then go
ahead ;-) But if you do that, pls don't don't forget that for any uapi the
drm subsytem requires correspoding open source userspace (in a real
app/compositor, not just some toy test or something similar).
Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-08-02 14:04 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-02 13:21 RFC: hardware accelerated bitblt using dma engine Enrico Weigelt, metux IT consult
2016-08-02 14:04 ` Daniel Vetter [this message]
2016-08-02 21:43 ` Enrico Weigelt, metux IT consult
2016-08-02 23:12 ` Rob Clark
2016-08-03 3:33 ` Enrico Weigelt, metux IT consult
2016-08-03 3:47 ` Dave Airlie
2016-08-03 4:39 ` Enrico Weigelt, metux IT consult
2016-08-03 9:24 ` Marek Szyprowski
2016-08-03 11:47 ` Daniel Vetter
2016-08-03 23:32 ` Enrico Weigelt, metux IT consult
2016-08-04 7:50 ` Daniel Vetter
2016-08-04 10:09 ` Daniel Stone
2016-08-04 23:16 ` Enrico Weigelt, metux IT consult
2016-08-05 4:37 ` Enrico Weigelt, metux IT consult
2016-08-05 7:49 ` Daniel Vetter
2016-08-05 7:47 ` Daniel Vetter
2016-08-03 23:19 ` Enrico Weigelt, metux IT consult
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160802140448.GS6232@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=enrico.weigelt@gr13.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.