[Intel-gfx] [RFC PATCH i-g-t 2/3] tests/chamelium: Add test case for plane formats

Maxime Ripard maxime.ripard at bootlin.com
Tue Mar 13 15:05:56 UTC 2018


Hi Eric,

On Mon, Mar 12, 2018 at 12:02:26PM -0700, Eric Anholt wrote:
> > +static pixman_image_t *convert_frame_format(pixman_image_t *src,
> > +					    int format)
> > +{
> > +	pixman_image_t *converted;
> > +	unsigned int w = pixman_image_get_width(src);
> > +	unsigned int h = pixman_image_get_height(src);
> > +	void *data = malloc(w * h * 4);
> > +
> > +	memset(data, 0, w * h * 4);
> > +	converted = pixman_image_create_bits(format, w, h, data,
> > +					     PIXMAN_FORMAT_BPP(format) / 8 * w);
> > +	pixman_image_composite(PIXMAN_OP_ADD, src, NULL, converted,
> > +			       0, 0, 0, 0, 0, 0, w, h);
> > +	return converted;
> > +}
> 
> Instead of the memset, you could just use PIXMAN_OP_SRC.

I guess PIXMAN_OP_ADD will do a composition between the existing
buffer content and the new one, while PIXMAN_OP_SRC will just take
whatever comes from the buffer and overwrite the previous content?

> Also, instead of "* 4", probably want "* PIXMAN_FORMAT_BPP(format) / 8"
> there too.

Ah, yes, definitely.

> > +#define PIXEL_MASK	0x00f8f8f8
> 
> If we're going to have some tolerance, the tolerance should probably
> depend on the lowest depth of the channel involved.

Indeed, yes.

> However, I'm not sure this is needed -- we should be able to get
> bit-exact from VC4 by filling in the size-extension bits in the HVS.

I guess it really depends on what we're aiming for here. While it
would probably work with VC4, I think this part is rather generic, so
I guess we could end up in scenarios where the CRTC will not fill the
bits to our expected value and where it wouldn't be something we can
change.

I just looked at the Allwinner display engine for example, and it
didn't have such configuration (documented, at least).

That's why I went with this approach here (but I can definitely change
it if we want to deal with that theorical case later).

Maxime

-- 
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20180313/669f2d8a/attachment.sig>


More information about the Intel-gfx mailing list