Summary (good slide)
https://source.android.com/devices/graphics/
1) system/core
2) frameworks/native
SurfaceFlinger
- window manager
surfaceflinger
/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
Комментариев нет:
Отправить комментарий