View
3.475
Download
2
Category
Preview:
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.
Citation preview
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Android Wave Is Not Google WaveA little 3D
Chia-I Wuolv@0xlab.org
Aug 16, 2009
Chia-I Wu olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
Surface
I Surface 是buffer
Chia-I Wu olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體限制
I 硬體要的是它能存取的buffer
Chia-I Wu olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org 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 olv@0xlab.org Android Wave Is Not Google Wave A little 3D
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Q & A
Questions?
Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
Recommended