i.mx6q hardware decode failed when work in ddr 400MHz mode

Showing results for 
Search instead for 
Did you mean: 

i.mx6q hardware decode failed when work in ddr 400MHz mode

Contributor I


Since our custom i.mx6q board(based on sabresd) cann't pass the ddr stress tool test in 528MHz ddr clock mode, we have decrease the ddr clock to 400MHz as described in this thread iMX6Q with 3.10.17 linux kernel and 400MHz DDR clock

Now we cann't play any video file(always stop at the start point) in android 5.0.2 with hardware decoder, software decoder is OK. We are not sure if it is caused by the ddr clock change. Does the VPU has any relation with the ddr clock. The logcat message when we play a video file is as following:

E/BufferQueueProducer(  140): [com.android.launcher3/com.android.launcher3.Launcher] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count

D/libEGL  ( 1134): loaded /system/lib/egl/libEGL_VIVANTE.so

D/libEGL  ( 1134): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so

W/InputMethodManagerService(  429): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@13196cbe attribute=null, token = android.os.BinderProxy@1e2d693c

D/libEGL  ( 1134): loaded /system/lib/egl/libGLESv2_VIVANTE.so

I/OpenGLRenderer( 1134): Initialized EGL, version 1.4

W/OpenGLRenderer(  694): Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...

D/OpenGLRenderer( 1134): Enabling debug mode 0

E/BufferQueueProducer(  140): [com.rtc.mysshd/com.rtc.mysshd.MainActivity] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count

I/Choreographer( 1134): Skipped 40 frames!  The application may be doing too much work on its main thread.

D/TaskPersister(  429): removeObsoleteFile: deleting file=27_task.xml

D/TaskPersister(  429): removeObsoleteFile: deleting file=27_task_thumbnail.png

I/GlobalDismissManager( 1080): no sender configured

D/AlertService( 1080): Beginning updateAlertNotification

D/AlertService( 1080): No fired or scheduled alerts

D/AlertService( 1080): Scheduling next alarm with AlarmScheduler. sEventReminderReceived: null

D/AlarmScheduler( 1080): No events found starting within 1 week.

I/ActivityManager(  429): Waited long enough for: ServiceRecord{1778c3ac u0 com.android.calendar/.alerts.InitAlarmsService}

D/NetUtils(  429): dhcp_do_request failed : eth0 (new)

E/EthernetNetworkFactory(  429): DHCP request error:Timed out waiting for DHCP to finish

E/dhcpcd  (  666): timed out

D/InitAlarmsService( 1080): Clearing and rescheduling alarms.

D/AndroidRuntime( 1189):

D/AndroidRuntime( 1189): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<

D/AndroidRuntime( 1189): CheckJNI is OFF

E/cutils-trace( 1189): Error opening trace file: No such file or directory (2)

E/memtrack( 1189): Couldn't load memtrack module (No such file or directory)

E/android.os.Debug( 1189): failed to load memtrack module: -2

D/AndroidRuntime( 1189): Calling main entry com.android.commands.am.Am

I/ActivityManager(  429): START u0 {act=android.intent.action.VIEW dat=/mnt/sdcard/Movies/MPEG4--Sono-RTC.mp4 flg=0x10000000 cmp=com.android.gallery3d/.app.MovieActivity} from uid 0 on display 0

D/AndroidRuntime( 1189): Shutting down VM

I/ActivityManager(  429): Start proc com.android.gallery3d for activity com.android.gallery3d/.app.MovieActivity: pid=1202 uid=10032 gids={50032, 9997, 3003, 1028, 1015} abi=armeabi-v7a

I/art     (  429): Explicit concurrent mark sweep GC freed 8193(429KB) AllocSpace objects, 2(32KB) LOS objects, 33% free, 7MB/11MB, paused 1.847ms total 112.986ms

I/MediaFocusControl(  429):  AudioFocus  requestAudioFocus() from android.media.AudioManager@1c8f7737

D/OpenGLRenderer( 1202): Render dirty regions requested: true

D/Atlas   ( 1202): Validating map...

D/libEGL  ( 1202): loaded /system/lib/egl/libEGL_VIVANTE.so

D/libEGL  ( 1202): loaded /system/lib/egl/libGLESv1_CM_VIVANTE.so

D/libEGL  ( 1202): loaded /system/lib/egl/libGLESv2_VIVANTE.so

I/OpenGLRenderer( 1202): Initialized EGL, version 1.4

D/OpenGLRenderer( 1202): Enabling debug mode 0

E/BufferQueueProducer(  140): [com.android.gallery3d/com.android.gallery3d.app.MovieActivity] dequeueBuffer: can't dequeue multiple buffers without setting the buffer count

I/MediaFocusControl(  429):  AudioFocus  requestAudioFocus() from android.media.AudioManager@1c8f7737

I/OMXPlayer(  146): Loading content: sharedfd://10:0:24150500:0

I/OMXPlayer(  146): LEVEL: 1 FUNCTION: MediaTypeInspect LINE: 1929

I/OMXPlayer(  146): Can't inspect media content type by subfix.

I/OMXPlayer(  146): MediaTypeInspectByContent role: parser.mp4

I/OMXPlayer(  146): Core parser MPEG4PARSER_06.09.13  build on Mar 16 2015 17:13:31

I/OMXPlayer(  146): port index 1

I/OMXPlayer(  146): LEVEL: 1 FUNCTION: prepare LINE: 549

I/OMXPlayer(  146): failed to open file: /data/system/audio_pass_through_pref.

I/Choreographer( 1202): Skipped 37 frames!  The application may be doing too much work on its main thread.

I/OMXPlayer(  146): nPreCacheSize = 862517

I/vpu-lib (  146): <gpu> alloc handle: 0x74327230, paddr: 0x6a2e4000, vaddr: 0x6a8ee000

I/vpu-lib (  146): <gpu> alloc handle: 0x74327290, paddr: 0x71a00000, vaddr: 0x7060d000

I/vpu-lib (  146): <gpu> alloc handle: 0x743272d0, paddr: 0x71d00000, vaddr: 0x68211000

I/vpu-lib (  146): Product Info: i.MX6Q/D/S

I/vpu-lib (  146): <gpu> alloc handle: 0x73b27230, paddr: 0x72b00000, vaddr: 0x67c3d000

I/vpu-lib (  146): <gpu> alloc handle: 0x73b27250, paddr: 0x6a5dd000, vaddr: 0x6abe7000

I/vpu-lib (  146): bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0

I/ActivityManager(  429): Displayed com.android.gallery3d/.app.MovieActivity: +3s287ms (total +39s203ms)

D/TaskPersister(  429): removeObsoleteFile: deleting file=25_task.xml

I/MediaFocusControl(  429):  AudioFocus  abandonAudioFocus() from android.media.AudioManager@21b7a0e5com.android.music.MediaPlaybackService$3@245377ba

I/ActivityManager(  429): Start proc com.android.musicfx for broadcast com.android.musicfx/.ControlPanelReceiver: pid=1232 uid=10010 gids={50010, 9997, 3003, 3002} abi=armeabi-v7a

V/MusicFXControlPanelReceiver( 1232): onReceive

V/MusicFXControlPanelReceiver( 1232): Action: android.media.action.CLOSE_AUDIO_EFFECT_CONTROL_SESSION

V/MusicFXControlPanelReceiver( 1232): Package name: com.android.music

V/MusicFXControlPanelReceiver( 1232): Audio session: 5

V/MusicFXControlPanelEffect( 1232): closeSession(android.app.ReceiverRestrictedContext@5f47e62, com.android.music, 5)

Labels (3)
0 Kudos
2 Replies

NXP TechSupport
NXP TechSupport

Hi Ionsn,

Apparently the issue is also on GPU drivers. gpu works independently from cpu and its frequency and should not affect gpu performance. limit may be caused by ddr/buses bandwidth, also some performance figures can be found on


Links that might be helpful

Memory Reserved on i.MX6 for VPU

Memory Management on i.MX6 Android 

i.MX6Q: How to increase the VPU frequency?

Hope this helps

0 Kudos

Contributor I


I have updated original post for the logcat since the original logcat message is the second time output and maybe not correct. The new logcat message is the first time we play a video file, please help to check again.

Our platform is i.mx6q 1G/DDR3 64bit 2Gbytes. gpumem=256M,fbmem=128M, lcd resolution is 1920x1200, Attachment is kernel dmesg info.

1: Is the bandwidth enough for DDR3 400MHz/64bit to play 1920x1080 video on lcd resolution 1920x1200?

2: Since software decoder is OK for 1080p decode, can I make sure the GPU performance is enough?

3: How can I check VPU work status? We have changed the ddr clock from PLL2_396M instead of 528M, doest it have any impact on the VPU?

4. I have changed the kernel config to let VPU to work at 352M, it will let kernel crash randomly.

0 Kudos