From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Jean-Francois Moine <moinejf@free.fr>
Cc: Jason Cooper <jason@lakedaemon.net>,
David Airlie <airlied@linux.ie>,
dri-devel@lists.freedesktop.org, Rob Clark <robdclark@gmail.com>,
Darren Etheridge <darren.etheridge@gmail.com>,
linux-arm-kernel@lists.infradead.org,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Subject: Re: [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver
Date: Sun, 19 May 2013 09:59:20 +0100 [thread overview]
Message-ID: <20130519085920.GO18614@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20130517194023.0c385ea0@armhf>
On Fri, May 17, 2013 at 07:40:23PM +0200, Jean-Francois Moine wrote:
> Maybe I did not explain correctly: the colored cursor maybe RGB888 +
> transparency (64x64) or full ARGB (64x32 or 32x64). I coded the first
> case. And, yes, I better like a hardware cursor: it asks for less
> computation, and I get it immediately at graphic starting time!
Having looked at this now, using the RGB+transparency is less than ideal
because we're having to reduce an alpha channel down to a simple on/off
transparency. X cursors really are alphablended components!
So, the options here are:
(a) use "software" rendered cursor
+ correct and expected cursor size
+ correct rendering
+ possible to use the GPU (I believe mine does)
- maybe time consuming as it has to be removed/replaced on the screen
(b) use RGB+transparency for 64x64 hardware cursor
+ correct and expected cursor size
+ does not have to be removed/replaced when screen contents change
- incorrect rendering due to reducing the alpha channel to a simple
on/off transparency mask
- has to be reloaded when the pointer is close to the edges of the
screen which is CPU intensive
- cursor image data passed into DRM is required to be ARGB (I've
discussed this with David Airlie last night.) This means we have
to do translation to RGB+T in the kernel which is *not* nice.
(c) use ARGB 32x64 or 64x32 hardware cursor
+ does not have to be removed/replaced when screen contents change
+ correct rendering of cursor
- unexpected cursor size; user clients do not expect to be restricted
to 32 rows or 32 lines of cursor
- can only select maximum cursor size on initialization of hardware
cursor; can't dynamically switch between 32x64 and 64x32 sizes
- has to be reloaded when the pointer is close to the edges of the
screen which is CPU intensive
While I would like to have hardware cursor support, I don't think it's
worth the effort. The one which tips it for me is the need to reload
the cursor near the edges - note the restriction in the documentation
that the cursor position + cursor size can't be outside the active
size. Also, cursors generally have 7 or so transparent pixels to the
left of them (which of course changes depending on the cursor shape.)
It's also less CPU intensive to (probably) allow the GPU to render it
than it is for the CPU to deal with these hardware restrictions.
I would've liked to see hardware cursor support, but I think what I'm
going to be doing is stripping the cursor code out of the main driver
into a separate optional patch which will ultimately be dropped.
next prev parent reply other threads:[~2013-05-19 8:59 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-16 19:25 [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver Russell King - ARM Linux
2013-05-16 19:25 ` [RFC 1/8] DRM: Add Dove DRM driver Russell King
2013-05-16 19:25 ` [RFC 2/8] drm/i2c: nxp-tda998x: fix EDID reading on TDA19988 devices Russell King
2013-05-16 19:26 ` [RFC 3/8] drm/i2c: nxp-tda998x: ensure VIP output mux is properly set Russell King
2013-05-18 6:56 ` Jean-Francois Moine
2013-05-19 10:30 ` Russell King - ARM Linux
2013-05-16 19:26 ` [RFC 4/8] drm/i2c: nxp-tda998x: fix npix/nline programming Russell King
2013-05-16 19:26 ` [RFC 5/8] drm/i2c: nxp-tda998x: prepare for video input configuration Russell King
2013-05-16 19:27 ` [RFC 6/8] drm/i2c: nxp-tda998x: add video and audio " Russell King
2013-05-22 21:08 ` Rob Clark
2013-05-16 19:27 ` [RFC 7/8] DRM: Dove: add support for drm tda19988 driver Russell King
2013-05-16 19:27 ` [RFC 8/8] DRM: dove: provide a couple of generic slave encoder helpers Russell King
2013-05-17 11:33 ` [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver Jean-Francois Moine
2013-05-17 11:58 ` Sebastian Hesselbarth
2013-05-17 12:01 ` Russell King - ARM Linux
2013-05-17 17:40 ` Jean-Francois Moine
2013-05-17 18:00 ` Russell King - ARM Linux
2013-05-17 18:05 ` Russell King - ARM Linux
2013-05-17 18:57 ` Jean-Francois Moine
2013-05-19 8:59 ` Russell King - ARM Linux [this message]
2013-05-20 13:36 ` Alex Deucher
2013-05-20 20:15 ` Russell King - ARM Linux
2013-05-20 20:23 ` Alex Deucher
2013-05-21 6:30 ` Jean-Francois Moine
2013-05-19 11:25 ` Russell King - ARM Linux
2013-05-18 17:12 ` [RFC 0/4] Add DT support to rmk's Dove DRM driver Sebastian Hesselbarth
2013-05-18 17:12 ` [RFC 1/4] ARM: dove: add lcd controller DT nodes Sebastian Hesselbarth
2013-05-18 17:12 ` [RFC 2/4] ARM: dove: add video card node for SolidRun CuBox Sebastian Hesselbarth
2013-05-18 17:33 ` Jean-Francois Moine
2013-05-18 18:33 ` Sebastian Hesselbarth
2013-05-18 17:12 ` [RFC 3/4] DRM: add OF support for Dove DRM driver Sebastian Hesselbarth
2013-05-18 17:45 ` Jean-Francois Moine
2013-05-18 18:20 ` Sebastian Hesselbarth
2013-05-18 19:18 ` Jean-Francois Moine
2013-05-20 10:16 ` Russell King - ARM Linux
2013-05-18 20:46 ` Russell King - ARM Linux
2013-05-18 17:12 ` [RFC 4/4] DRM: tda998x: add missing include Sebastian Hesselbarth
2013-05-18 17:46 ` Jean-Francois Moine
2013-05-18 18:21 ` Sebastian Hesselbarth
2013-05-18 18:23 ` Rob Clark
2013-05-18 18:58 ` Jean-Francois Moine
2013-05-18 19:11 ` Rob Clark
2013-05-18 19:30 ` Sebastian Hesselbarth
2013-05-18 20:26 ` Russell King - ARM Linux
2013-05-18 20:50 ` Sebastian Hesselbarth
2013-05-19 6:01 ` Jean-Francois Moine
2013-05-19 8:30 ` Sebastian Hesselbarth
2013-05-19 16:49 ` Jean-Francois Moine
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=20130519085920.GO18614@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=airlied@linux.ie \
--cc=darren.etheridge@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jason@lakedaemon.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=moinejf@free.fr \
--cc=robdclark@gmail.com \
--cc=sebastian.hesselbarth@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox