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
![Page 1: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/1.jpg)
關關關於於於我我我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
![Page 2: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/2.jpg)
關關關於於於我我我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
![Page 3: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/3.jpg)
關關關於於於我我我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
![Page 4: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/4.jpg)
關關關於於於我我我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
![Page 5: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/5.jpg)
關關關於於於我我我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
![Page 6: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/6.jpg)
關關關於於於我我我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
![Page 7: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/7.jpg)
關關關於於於我我我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
![Page 8: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/8.jpg)
關關關於於於我我我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
![Page 9: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/9.jpg)
關關關於於於我我我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
![Page 10: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/10.jpg)
關關關於於於我我我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
![Page 11: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/11.jpg)
關關關於於於我我我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
![Page 12: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/12.jpg)
關關關於於於我我我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
![Page 13: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/13.jpg)
關關關於於於我我我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
![Page 14: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/14.jpg)
關關關於於於我我我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
![Page 15: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/15.jpg)
關關關於於於我我我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
![Page 16: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/16.jpg)
關關關於於於我我我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
![Page 17: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/17.jpg)
關關關於於於我我我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
![Page 18: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/18.jpg)
關關關於於於我我我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
![Page 19: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/19.jpg)
關關關於於於我我我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
![Page 20: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/20.jpg)
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
libagllibhgl
硬體限制
I 硬體要的是它能存取的buffer
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D
![Page 21: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/21.jpg)
關關關於於於我我我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
![Page 22: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/22.jpg)
關關關於於於我我我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
![Page 23: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/23.jpg)
關關關於於於我我我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
![Page 24: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/24.jpg)
關關關於於於我我我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
![Page 25: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/25.jpg)
關關關於於於我我我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
![Page 26: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/26.jpg)
關關關於於於我我我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
![Page 27: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/27.jpg)
關關關於於於我我我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
![Page 28: A Little 3D -- Implement New Hardware Accelerated OpenGL for Android](https://reader034.vdocuments.site/reader034/viewer/2022051818/54bd16e64a7959ff308b462a/html5/thumbnails/28.jpg)
關關關於於於我我我libEGL and libGLESv1 CM
GEM and KMS
Q & A
Questions?
Chia-I Wu [email protected] Android Wave Is Not Google Wave A little 3D