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
When you're using LVDS+HDMI, what is the real resolution you can see in HDMI?
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?
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
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,