imx6 android - dithering 24bit graphics on 18bit panel

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6 android - dithering 24bit graphics on 18bit panel

Jump to solution
5,401 Views
mrabe
Contributor II

Hi,

We have a few problems with dithering in Android.

In our test arrangement, we've connected a 18bit panel via LVDS to an i.mx6 Quad.

Running Android 5.0 on it, a gradient test image shows a lot of chunks (as limited by the 18bit panel) - So It seems like dithering is not working. - But if we enable "Disable HW-Overlay" in the developer settings, everything get's dithered correctly.

Has anyone experienced similar problems, and/or got any idea on how to fix this problem?

Thanks in advance.

Labels (5)
Tags (2)
1 Solution
3,105 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

This can be closed

View solution in original post

0 Kudos
Reply
24 Replies
343 Views
SergioSolis
NXP Employee
NXP Employee

Hello Matthias,

Was the change made in the Device Tree file to change the display from RGB666 to RGB565?

0 Kudos
Reply
343 Views
mrabe
Contributor II

Hello Sergio,

yes, we tried this before, but there seems to be no difference between RGB666 an RGB565 with a 16Bit framebuffer.

Although RGB666 with 32Bit is a little bit better (as mentioned above).

0 Kudos
Reply
343 Views
gary_bisson
Senior Contributor III

Hi,

This is the same issue as this one:

Android ICS -> Lollipop upgrade on IMx6 creates image binding

Have you tried setting the bpp to 32-bit? Are you sure your LVDS display framebuffer is actually 24-bit (check the sysfs entries)?

Otherwise the difference with or without the HW overlays is the use of the GPU2D, when HW overlays are disabled everything goes through GPU3D instead of GPU2D.

Regards,

Gary

0 Kudos
Reply
343 Views
mrabe
Contributor II

Hi,

thanks for the response.

Yes, we've tried setting the default_bpp to 32 and it's a little bit better (since now, we can use the full RGB666 not only RGB565).

But it's still not great.

Our devicetree setting look like this - Can you see anything wrong with that?

/ {
        mxcfb1: fb@0 {
                disp_dev = "ldb";
                interface_pix_fmt = "RGB666";
                default_bpp = <32>;
                int_clk = <0>;
                late_init = <0>;
                status = "okay";
        };
};

&ldb {
        status = "okay";

        lvds-channel@0 {
                fsl,data-mapping = "spwg";
                fsl,data-width = <18>;
                crtc = "ipu2-di0";
                primary;
                status = "okay";

                display-timings {
                        /* ... */
                };
        };
};

Thanks again,

- Matthias Rabe

0 Kudos
Reply