[PATCH] drm/sun4i: Implement zpos for DE2

Jernej Škrabec jernej.skrabec at siol.net
Wed Jun 27 20:58:28 UTC 2018


Dne sreda, 27. junij 2018 ob 20:25:00 CEST je Maxime Ripard napisal(a):
> Hi!
> 
> On Wed, Jun 27, 2018 at 06:45:14PM +0200, Jernej Skrabec wrote:
> > Initial implementation of DE2 planes only supported fixed zpos.
> > 
> > Expand implementation with configurable zpos property.
> > 
> > Signed-off-by: Jernej Skrabec <jernej.skrabec at siol.net>
> 
> Thanks for that work. I guess you should expand a bit on the exact
> setup you're doing here.

OK.

> 
> Are the pipes working the same way on the DE2 than on DE1, ie does the
> pipe blending applies before the alpha blending, and therefore you
> need to make sure that there's not two planes with alpha going to the
> same pipe?

I'm not familiar with DE1 and I'm not sure what the problem is.

However, there is an issue in DE2 when alpha blending multiple planes if 
bottom-most plane doesn't cover all screen. In this case alpha blending 
produce weird result on screen. Fortunately, there is elegant solution. Black 
opaque fill color is enabled for pipe 0 (always at the bottom), which covers 
any "undefined region" and that makes alpha blending happy again.

Alternatively, blending modes between planes could be tweaked or disabled, but 
I found aforementioned solution is much simpler and you set it only once.

> 
> Also, you seem to use the pipe and channels indifferently now, why is
> that?

Why do you think so?

Channel always represents HW unit, for example, on H3, mixer0, channel 0 
always represents VI plane, channel 1, represents first UI, plane, channel 2, 
second UI plane, etc.

Pipe 0 always represent channel at the bottom, pipe 1 channel on top pipe 0, 
etc. Initial, fixed zpos implementation really had 1:1 mapping, but now it can 
be different.

Register SUN8I_MIXER_BLEND_ROUTE holds pipe <-> channel mappings.
Bits 3:0 represents pipe 0 and holds channel number. Bits 7:4 represents pipe 
1, etc.

Additionaly,  there can be holes, for example, pipe 3 and pipe 0 are enabled 
and pipe 1 and 2 are disabled.

I hope I answered your questions.

Best regards,
Jernej





More information about the dri-devel mailing list