Origen: Mali Graphics Allocator does not support 1080p HDMI display

Bug #921975 reported by Amit Pundir
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro Android
Fix Released
Undecided
Unassigned
linaro-landing-team-samsung
Fix Released
High
Annamalai Lakshmanan

Bug Description

Description:
==========
Applications crash on Origen with 1080p HDMI display and hardware graphics support. It used to run fine with Software Graphics allocator.

Steps:
==========
Modify gralloc_ump project to set default display to HDMI by opening /dev/fb10 instead of /dev/fb0.

Hardware:
==========
2GB SanDisk SD card
Origen
HDMI out to Dell Monitor.
USB Mouse/Keyboard connected

Software:
==========
https://android-build.linaro.org/builds/~linaro-android/staging-origen/#build=161

logs:
==========

logcat:
--------- beginning of /dev/log/system
I/ActivityManager( 2187): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings} from9
W/NetworkManagementSocketTagger( 2187): setKernelCountSet(1000, 1) failed with errno -2
D/OpenGLRenderer( 2619): Flushing caches (mode 1)
D/dalvikvm( 2187): GC_CONCURRENT freed 296K, 22% free 8542K/10887K, paused 2ms+2ms
W/System.err( 2404): Removed 2131231186
W/System.err( 2404): Removed 2131231194
D/dalvikvm( 2404): GC_CONCURRENT freed 241K, 5% free 6820K/7175K, paused 2ms+2ms
D/libEGL ( 2404): loaded /system/lib/egl/libGLES_android.so
D/libEGL ( 2404): loaded /system/lib/egl/libEGL_mali.so
D/libEGL ( 2404): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL ( 2404): loaded /system/lib/egl/libGLESv2_mali.so
D/OpenGLRenderer( 2619): Flushing caches (mode 0)
E/gralloc_ump( 2082): gralloc_alloc_buffer() failed to allcoate UMP memory
W/GraphicBufferAllocator( 2082): alloc(1920, 1032, 1, 00000f02, ...) failed -1 (Operation not permitted)
E/SurfaceFlinger( 2082): GraphicBufferAlloc::createGraphicBuffer(w=1920, h=1032) failed (Operation not permitted), handle=0x0
E/SurfaceTexture( 2082): [com.android.settings/com.android.settings.Settings] dequeueBuffer: SurfaceComposer::createGraphicBuffer failed
E/ ( 2404): EGL unable to dequeue buffer in EGLBoolean __egl_platform_create_surface_window(egl_surface*, mali_base_ctx_handle)
D/AndroidRuntime( 2404): Shutting down VM
W/dalvikvm( 2404): threadid=1: thread exiting with uncaught exception (group=0x40a181f8)
E/AndroidRuntime( 2404): FATAL EXCEPTION: main
E/AndroidRuntime( 2404): java.lang.RuntimeException: createWindowSurface failed EGL_BAD_ALLOC
E/AndroidRuntime( 2404): at android.view.HardwareRenderer$GlRenderer.createSurface(HardwareRenderer.java:766)
E/AndroidRuntime( 2404): at android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.java:666)
E/AndroidRuntime( 2404): at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:505)
E/AndroidRuntime( 2404): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1300)
E/AndroidRuntime( 2404): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
E/AndroidRuntime( 2404): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 2404): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 2404): at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime( 2404): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2404): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 2404): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime( 2404): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime( 2404): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 2187): Force finishing activity com.android.settings/.Settings
W/ActivityManager( 2187): Activity pause timeout for ActivityRecord{41265a90 com.android.settings/.Settings}

Revision history for this message
Sangwook Lee (sangwook) wrote :

=== A snippet of information from Graphics Team ===

Current Android on Origen LEB doesn't support memory sharing between Mali and other devices. It has a long history but if I summarize briefly, Android on Origen LEB will use UMM for allocating and sharing memory in the future by replacing legacy reserved way of Samsung memory solution which isn't upstreamable at all. Meanwhile, UMP (gralloc_ump) was the only solution for Mali to support recent Android releases.

So, the first phase of Android on Origen LEB uses gralloc_ump for Mali which provides 3D acceleration, not support memory sharing with other devices. The second phase of Origen LEB will use UMP on UMM for Mali and UMM for other devices, which is supposed to provide all the memory sharing among all the devices.

Typical way of legacy display data stream for HDMI in Android on Origen was;
Application --> Mali (GPU) --> (FIMC) --> HDMI,
I believe the error happened somewhere at Mali--> FIMC or Mali --> HDMI.

=== END ==

Changed in linaro-landing-team-samsung:
status: New → Won't Fix
Revision history for this message
Annamalai Lakshmanan (annamalai-lakshmanan) wrote :

Hi Sangwook,

I think the Current Android does not support FIMC HAL layer, so 1080p will not work since FIMC driver is not getting used for scaling.
once added the FIMC HAL layer, with minor modifications in SurfaceFlinger we can acheive 1080p with less efforts.

Regards,
Annamalai

Revision history for this message
Sachin Kamat (sachin.kamat) wrote :
Changed in linaro-landing-team-samsung:
assignee: nobody → Annamalai Lakshmanan (annamalai-lakshmanan)
importance: Undecided → Medium
status: Won't Fix → In Progress
Revision history for this message
Sachin Kamat (sachin.kamat) wrote :

Inline with the following milestone plan:
https://launchpad.net/linaro-android/+milestone/12.03

Changed in linaro-landing-team-samsung:
importance: Medium → High
tags: added: linaro-android origen-staging
Revision history for this message
Annamalai Lakshmanan (annamalai-lakshmanan) wrote :

12.03 Build has HDMI support, Video Playback, and LCD stuff all gets shown 1080p

Changed in linaro-landing-team-samsung:
status: In Progress → Fix Committed
Changed in linaro-landing-team-samsung:
status: Fix Committed → Fix Released
Changed in linaro-android:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.