i.mx6 SABRE-SD board use system's "Water" live Wallpaper, don't smooth

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

i.mx6 SABRE-SD board use system's "Water" live Wallpaper, don't smooth

1,237 Views
guohn
Contributor III

Hi,all

     We use i.mx6 SABRE-SD board, BSP version is android_jb4.3_1.1.0-ga. And We want use system's "Water" live Wallpaper. But when use lvds1 and hdmi to display,and It don't smooth. The cmdline is :

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 fb0base=0x27b00000 vmalloc=400M init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb2:off fbmem=30M androidboot.hardware=freescale

LVDS resolution is 1280*800.

    But we use single HDMI display, The "Water" run smooth,cmdline is:

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=hdmi,1920x1080M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=28M androidboot.hardware=freescale

    What's the problem?

Thanks all

Labels (2)
0 Kudos
5 Replies

735 Views
daiane_angolini
NXP Employee
NXP Employee

When you're using LVDS+HDMI, what is the real resolution you can see in HDMI?

0 Kudos

735 Views
guohn
Contributor III

The HDMI's resolution is not 1920x1080 display. Have you solved the hdmi real resolution to this problem?

0 Kudos

735 Views
adamduskett
Contributor II

I too am having the same issue.  HDMI is fine, but if I am using the bootargs:

console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1280x800M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=24M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale

live wallpaper is incredibly slow, around 13fps according to logcat.

Any suggestions?

0 Kudos

735 Views
adamduskett
Contributor II

Just as a follow up, I ended up finding out what was wrong.

If HDMI is the only selected output, SurfaceFlinger sets the refresh rate to 60.00hz, which is then the maximum FPS for Android.

If LDB is set to @60, SurfaceFlinger sees the refresh rate as 59.8hz, and rounds the max fps down to 30fps.

Setting the refresh rate to @61 forces SurfaceFlinger to set the refresh rate to 60.9hz, and thus sets the maximum fps to 60.

This works:

console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1280x800M@61,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=28M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale

This does not:

console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1280x800M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off fbmem=28M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale

0 Kudos

735 Views
adamduskett
Contributor II

I just wanted to touch back as I found the real cause of the issue:

1) The LCD screen we are using has different timings than the stock ones provided in the drivers/video/mxc/ldb.c

2) Specifying dev=ldb,1280x800M makes the kernel using the timings from drivers/video/modedb.c and not drivers/video/mxc/ldb.c

The proper bootargs for my device was:

video=mxcfb0:dev=ldb,LDB-WXGA video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 video=mxcfb2:off

fbmem=28M,28M vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale

The proper changes to the ldb.c file were:

"LDB-WXGA", 60, 1280, 800, 13812,

         40, 40,

         10, 3,

         80, 20,

         0,

         FB_VMODE_NONINTERLACED,

         FB_MODE_IS_DETAILED,

0 Kudos