понедельник, 23 февраля 2015 г.

Android graphic system


Summary (good slide)

https://source.android.com/devices/graphics/

1) system/core

2) frameworks/native

SurfaceFlinger
-  window manager

surfaceflinger + libsurfaceflinger.so

/services/surfaceflinger

3) vendor specific library

GPU blobs:
libMali.so
pvr libs

hwcomposer.PLATFORM.so
gralloc.PLATFORM.so

HWComposer

Gralloc

- gralloc alloc: allocates graphic buffers
- gralloc framebuffer: interface to Linux framebuffer device, e.g. /dev/graphics/fb0

- gralloc alloc allocates all graphic buffers using a kernel memory manager, typically ION


4) hardware/libhardware/include/hardware/
gralloc.h
hwcomposer.h


Details

About all
http://events.linuxfoundation.org/sites/events/files/slides/android-graphics-abs-2014_0.pdf

About surfaceflinger, BufferQueue, GraphiBuffer
https://charleszblog.wordpress.com/2014/02/23/understanding-android-internals-surfaceflinger-iii/

About EGL, eglSwapBuffers
https://katatunix.wordpress.com/2014/09/17/lets-talk-about-eglmakecurrent-eglswapbuffers-glflush-glfinish/

Debug

setprop debug.egl.trace 1

show all gl call

Комментариев нет:

Отправить комментарий