imx6 android - dithering 24bit graphics on 18bit panel

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

imx6 android - dithering 24bit graphics on 18bit panel

跳至解决方案
9,671 次查看
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.

标签 (5)
标记 (2)
1 解答
7,375 次查看
Bio_TICFSL
NXP TechSupport
NXP TechSupport

This can be closed

在原帖中查看解决方案

0 项奖励
回复
24 回复数
891 次查看
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 项奖励
回复
891 次查看
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 项奖励
回复
891 次查看
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 项奖励
回复
891 次查看
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 项奖励
回复