Android ICS -> Lollipop upgrade on IMx6 creates image binding

cancel
Showing results for 
Search instead for 
Did you mean: 

Android ICS -> Lollipop upgrade on IMx6 creates image binding

Jump to solution
2,002 Views
mikaelpersson
Contributor III

Hi,

I am experience color binding issue when running Android Lollipop on boundary nitrogen6x platform(IMx6).

The same color binding is not present when running Android ICS on the same device.

I have tested:

- Disable OpenGL rendering on GPU, no effect.

- Change the device tree setting for interface_pix_fmt between RGB24/RGB565/RGB666

- Change the device tree setting for default_bpp from 16 to 32.

The binding is still visible on the attached image, but more obvious on the device I am running.

screen.png

Any ideas on what could effect these bindings other than bpp which seems to make no difference..?

Thank you in advance for your help!

Regards,

Mikael

Labels (5)
0 Kudos
1 Solution
488 Views
mikaelpersson
Contributor III

Hi Gary,

Don't know if you heard but nxp has found an issue in device/fsl-proprietary/fsl-hwc/hwcomposer_fsl.imx6.so.

I have tested a fixed version and it looks fine!

I will probably just miss-out some detail so better that they explain.. anyway my issue is resolved, and they will update this library.

Thanks for all your support!

Regards,

Mikael

View solution in original post

0 Kudos
32 Replies
489 Views
mikaelpersson
Contributor III

Hi Gary,

Don't know if you heard but nxp has found an issue in device/fsl-proprietary/fsl-hwc/hwcomposer_fsl.imx6.so.

I have tested a fixed version and it looks fine!

I will probably just miss-out some detail so better that they explain.. anyway my issue is resolved, and they will update this library.

Thanks for all your support!

Regards,

Mikael

View solution in original post

0 Kudos
388 Views
damienhuang
Contributor IV

Hi Mikael/Gary,

I am having this color binding issue on boundarydevice l5.0.0 ga release as well.

Do you know if NXP has patch on l5.0.0?

Cheers,

Damien

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi,

You can try the above work around which consists of removing the hwcomposer.

Otherwise, yes there has been a patch release for graphics for l5.0.0 however this has not been ported to boundary release yet. We recommend to use m6.0.1 instead which uses the same updated graphics.

Regards,

Gary

0 Kudos
388 Views
damienhuang
Contributor IV

Thanks Gary,

Do you have a link to the "patch release for graphics for l5.0.0"?, I

may want to port it into boundary l5.0.0.

Cheers,

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi,

Please check NXP release webpage, it's there.

i.MX 6 Series Software and Development Tool|NXP 

Regards,

Gary

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

Good, not surprised it comes from the hwcomposer. Please close this thread.

Hopefully NXP will make this patched library available to everyone since this is a pretty important issue.

Regards,

Gary

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Can you try again with both fb bpp as 16-bit and disabling overlays hw via the menu instead of removing the HWC libraries?

Not sure it's HWC, I actually haven't tried removing the libraries but the procedure above worked for me. Note that you shouldn't reboot after changing the setting, just press the HOME button. Rebooting resets the value and overlays are enabled again.

Regards,

Gary

0 Kudos
388 Views
mikaelpersson
Contributor III

Ok, this was weired.

If LVDS bpp=16 & HDMI bpp=16 & Disable HW Overlays => No banding!

If LVDS bpp=16 & HDMI bpp=16 & Enable HW Overlays => Banding

If LVDS bpp=32 & HDMI bpp=32 & Disable/Enable HW Overlays=> Banding

If LVDS bpp=16 & HDMI bpp=32 & Disable/Enable HW Overlays => Banding

So there is a dependency on the bpp for the different interfaces.

Anyway non of these configurations are good, I would like to have HW overlays enabled and 32bpp for LVDS.

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

I agree that LVDS only works with 16-bit + HW Overlays disabled.

But I definitely don't see the issue with HDMI 32-bit on Marshmallow (on both SabreLite and SabreSD). Also, your LVDS bpp=16 & HDMI bpp=32 setting should show a strange HDMI output. What kind of HDMI display do you have connected? Have you tried HDMI only?

Anyway, since this issue also occurs on SabreSD, this is not Boundary Devices specific, we therefore need the input from the NXP Android Team.

Regards,

Gary

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

Just to let you know that the NXP Android Team reproduced the issue and is working on a fix. I will keep you updated once I know more.

Regards,

Gary

0 Kudos
388 Views
mikaelpersson
Contributor III

Hi Gary,

Great, thx for keeping me updated!

Regards,

Mikael

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

Let's put the LVDS aside for a minute, we don't have the same behavior on HDMI and that bothers me. I've focused on HDMI since that is the only interface I can test on both SabreSD and Nitrogen6x.

On both platforms I get the same result with the DisplayTester app:

- if default_bpp is 16 the banding is there

- if default_bpp is 32 it is gone

Please confirm you have the same HDMI behavior. As a FYI, I just tried again with Marshmallow release on both SabreSD and Nitrogen6x:

https://boundarydevices.com/android-marshmallow-6-0-1-ga-release-mx6-boards/

Now, back to LVDS, indeed I can see the issue with DisplayTester with both 16 and 32-bit setup. I'll investigate and let you know my findings.

Regards,

Gary

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

You actually not the only one reporting this issue, and this the second post is not on our platforms it is definitely not a problem from our release but the base one.

imx6 android - dithering 24bit graphics on 18bit panel

After more testing, I confirm that (on Marshmallow), disabling HW overlay fixes the issue on both HDMI and LVDS if the default_bpp is 16 for both. If it is 32-bit, HDMI doesn't have the issue (with HW overlay either enabled or disabled) but LVDS is still having the issue whatever the state of HW overlay. This seems to point to a HWComposer issue.

Regards,

Gary

0 Kudos
388 Views
mikaelpersson
Contributor III

I have been testing to disable Hwcomposer by removing hwcomposer_viv.imx6.so & hwcomposer_fsl.imx6.so and no difference, do you still think it's Hwcomposer? Any other ideas?

Regards, Mikael

0 Kudos
388 Views
mikaelpersson
Contributor III

Where you able to reproduce the issue on NXP SabreSD platform?

Regards,

Mikael

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

No I was attending the NXP FTF this week and therefore haven't had time to do any testing. I actually just retrieved a SabreSD platform but I might have to use HDMI with it. Could you confirm that the banding issue also happens on HDMI output?

Your second screenshot does look good in my opinion so I can't wait to try it on on my displays. I might not be able to come back to you on this before next Tuesday or Wednesday.

Regards,

Gary

0 Kudos
388 Views
mikaelpersson
Contributor III

Hi,

Ok, no problem.

Yes, it's the same issue on the HDMI output.

Regards,

Mikael

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi Mikael,

So I've downloaded your app and tested it on our platform. I confirm that you can see the banding when the fb format is 16bpp. But then modifying the device to use 32bpp fixes it for me.

Can you make sure to try with 32bpp, making sure that the following command gives the same output?

# cat /sys/class/graphics/fb0/fsl_disp_fb_format

RBG32

Regards,

Gary

0 Kudos
388 Views
mikaelpersson
Contributor III

Hi,

Ok, good news!

Could you please provide info how you did this configuration change?

I don't have /sys/class/graphics/fb0/fsl_disp_fb_format on the device, what does this mean? (I have an old ICS platform where I don't have the banding issue and that is also missing fsl_disp_fb_format).

cat sys/class/graphics/fb0/bits_per_pixel

32 and imx6.gralloc( 169):bpp = 32

Regards,

Mikael

0 Kudos
388 Views
gary_bisson
Senior Contributor III

Hi,

I just modified the device tree to use bpp=32:

linux-imx6/imx6qdl-nitrogen6_max.dtsi at boundary-imx-l5.1.1_2.1.0-ga · boundarydevices/linux-imx6 ·...

As for the sysfs entry, it should be there, are you sure you are using the 5.1.1 release with a 3.14.52 kernel?

Regards,

Gary

0 Kudos