A Little 3D -- Implement New Hardware Accelerated OpenGL for Android
-
Upload
jim-huang -
Category
Technology
-
view
3.472 -
download
2
description
Transcript of A Little 3D -- Implement New Hardware Accelerated OpenGL for Android
關關關於於於我我我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