Android Graphics Overview
Android Stack
Android Graphics Stack
block-beta
columns 3
block:group1:3
%% columns auto (default)
A["WindowManager"]
B["SurfaceFlinger"]
C["..."]
end
block:group2:3
a["Gralloc"]
b["HWComposer"]
c["..."]
end
block:group3:3
a1["GPU"]
b1["DC"]
c1["..."]
end
%% **蓝
style group1 fill:#55AEF7
%% **橙
style group2 fill:#F87529
%% **绿
style group3 fill:#25A768
SurfaceFlinger (/f'lɪngər/
:抛投器)
HAL
Gralloc
HWComposer
drm-hwcomposer
一个基于 KMS 的 HWComposer 实现。
ARM drm-hwcomposer
给 Mali DP 量身定制的 drm-hwcomposer.
Android Sync Framework
Android Sync Framework 实现的是显式同步 (Explicit Synchronization), 所谓显式同步,指的是用户态可见,与隐式同步 (Implicit Synchronization) 相对,隐式同步用户态应用程序是不感知的。虽然隐式同步完全由驱动和内核控制,无需应用程序干预(这对应用开发者来说可能更简单些,但有时简单的方案可能不是最高效的),但显式同步比隐式同步更能发挥硬件的并行性,这应该也是 Android 实现的是显式同步的主要原因。
- sync_timeline
- control ordering
- sync_pt (point)
- represent a fence
- sync_fence (like sync file in Linux kernel)
- for fd passing across userspace processes like
SurfaceFlinger
and 3D applications
- for fd passing across userspace processes like