imx6 android - dithering 24bit graphics on 18bit panel

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx6 android - dithering 24bit graphics on 18bit panel

ソリューションへジャンプ
6,439件の閲覧回数
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 解決策
4,143件の閲覧回数
Bio_TICFSL
NXP TechSupport
NXP TechSupport
0 件の賞賛
返信
24 返答(返信)
483件の閲覧回数
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 件の賞賛
返信
483件の閲覧回数
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 件の賞賛
返信
483件の閲覧回数
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 件の賞賛
返信
483件の閲覧回数
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 件の賞賛
返信