a little 3d -- implement new hardware accelerated opengl for android
DESCRIPTION
(COSCUP 2009) olv talked about the internals inside Android OpenGL|ES stack and how to implement a new hardware accelerated GL|ES for Android. The reference hardware is Intel Integrated Graphics chip, and software stack is based on Mesa3D.TRANSCRIPT
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Android Wave Is Not Google WaveA little 3D
Chia-I [email protected]
Aug 16, 2009
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Outline
關於我
libEGL and libGLESv1 CMlibagllibhgl
GEM and KMS
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
3D and Me
I 不會OpenGL
I 不會演算法
I 不會硬體
I 不會驅動程式
I 沒有在玩3D 遊戲
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Who am I?
I 0xlab 成員
I 數學系畢業
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Hurry Porter
I 把Intel DRI 驅動程式移植到Android
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
Outline
關於我
libEGL and libGLESv1 CMlibagllibhgl
GEM and KMS
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
libGLESv1 CM
I frameworks/base/opengl/libs/GLES CM/
I OpenGL ES API
I Entry points
v o i d g l C l e a r ( v o i d ) {g l h o o k s t : : g l t c o n s t ∗ c o n s t c =
&g e t G l T h r e a d S p e c i f i c ()−> g l ;r e t u r n c−>g l C l e a r ( ) ;
}
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
libEGL
I frameworks/base/opengl/libs/EGL/
I dlopen libagl 跟libhgl
I libagl 提供軟體實作
I libhgl 提供硬體實作
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
身為libhgl
I Android 傳過來的是egl native window t
I egl native window t 是EGLNativeWindowSurface
I EGLNativeWindowSurface 是Surface
I Surface 是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
身為libhgl
I Android 傳過來的是egl native window t
I egl native window t 是EGLNativeWindowSurface
I EGLNativeWindowSurface 是Surface
I Surface 是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
身為libhgl
I Android 傳過來的是egl native window t
I egl native window t 是EGLNativeWindowSurface
I EGLNativeWindowSurface 是Surface
I Surface 是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
身為libhgl
I Android 傳過來的是egl native window t
I egl native window t 是EGLNativeWindowSurface
I EGLNativeWindowSurface 是Surface
I Surface 是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
Surface
I Surface 是buffer
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體
I 硬體要的也是buffer
I 放座標
I 放材質
I 放shader
I 放硬體指令
I 但是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體
I 硬體要的也是buffer
I 放座標
I 放材質
I 放shader
I 放硬體指令
I 但是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體
I 硬體要的也是buffer
I 放座標
I 放材質
I 放shader
I 放硬體指令
I 但是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體
I 硬體要的也是buffer
I 放座標
I 放材質
I 放shader
I 放硬體指令
I 但是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體
I 硬體要的也是buffer
I 放座標
I 放材質
I 放shader
I 放硬體指令
I 但是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體
I 硬體要的也是buffer
I 放座標
I 放材質
I 放shader
I 放硬體指令
I 但是...
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體限制
I 硬體要的是它能存取的buffer
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
Intel
I a.k.a GEM Object
I 讓Android 產生GEM object based Surface
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Outline
關於我
libEGL and libGLESv1 CMlibagllibhgl
GEM and KMS
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
GEM in CPU
I GEM object 只是shared memory (man shmget(2))
I X server 配置
I 應用程式繪圖
I compiz 合成
I 跨process!
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
GEM in GPU
I 映射到AGP aperture
I CPU cache
I GPU cache
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
KMS
I Kernel Mode Setting
I 叫kernel 做解晰度設定
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
KMS
i n t drmModeSetCrtc ( i n t fd ,u i n t 3 2 t c r t c I d ,u i n t 3 2 t b u f f e r I d ,u i n t 3 2 t x , u i n t 3 2 t y ,u i n t 3 2 t ∗ c o n n e c t o r s , i n t count ,drmModeModeInfoPtr mode ) ;
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
gitorious
http://gitorious.org/android-eeepc/pages/Home
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Q & A
Questions?
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D