SlideShare a Scribd company logo
1 of 28
Download to read offline
關於我
  libEGL and libGLESv1 CM
            GEM and KMS




Android Wave Is Not Google Wave
          A little 3D

                  Chia-I Wu
                olv@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 CM
        libagl
        libhgl



    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




      不會OpenGL
      不會演算法
      不會硬體
      不會驅動程式
      沒有在玩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?




      0xlab 成員
      數學系畢業




                 Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                  libEGL and libGLESv1 CM
                            GEM and KMS


Hurry Porter




       把Intel DRI 驅動程式移植到Android




                  Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                                libagl
                      libEGL and libGLESv1 CM
                                                libhgl
                                GEM and KMS


Outline




    關於我



    libEGL and libGLESv1 CM
        libagl
        libhgl



    GEM and KMS




                      Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                                  libagl
                        libEGL and libGLESv1 CM
                                                  libhgl
                                  GEM and KMS


libGLESv1 CM




      frameworks/base/opengl/libs/GLES CM/
      OpenGL ES API
      Entry points

       void glClear ( void ) {
         gl hooks t : : g l t const ∗ const 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
關於我
                                                    libagl
                         libEGL and libGLESv1 CM
                                                    libhgl
                                   GEM and KMS


libEGL




         frameworks/base/opengl/libs/EGL/
         dlopen libagl 跟libhgl
         libagl 提供軟體實作
         libhgl 提供硬體實作




                          Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                             libagl
                   libEGL and libGLESv1 CM
                                             libhgl
                             GEM and KMS


身為libhgl




      Android 傳過來的是egl native window t




                   Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                               libagl
                    libEGL and libGLESv1 CM
                                               libhgl
                              GEM and KMS


身為libhgl




      Android 傳過來的是egl native window t
      egl native window t 是EGLNativeWindowSurface




                     Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                               libagl
                    libEGL and libGLESv1 CM
                                               libhgl
                              GEM and KMS


身為libhgl




      Android 傳過來的是egl native window t
      egl native window t 是EGLNativeWindowSurface
      EGLNativeWindowSurface 是Surface




                     Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                               libagl
                     libEGL and libGLESv1 CM
                                               libhgl
                               GEM and KMS


身為libhgl




      Android 傳過來的是egl native window t
      egl native window t 是EGLNativeWindowSurface
      EGLNativeWindowSurface 是Surface
      Surface 是...




                     Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                                     libagl
                           libEGL and libGLESv1 CM
                                                     libhgl
                                     GEM and KMS


Surface




          Surface 是buffer




                           Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                        libagl
              libEGL and libGLESv1 CM
                                        libhgl
                        GEM and KMS


硬體




     硬體要的也是buffer




              Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                        libagl
              libEGL and libGLESv1 CM
                                        libhgl
                        GEM and KMS


硬體




     硬體要的也是buffer
     放座標




              Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                        libagl
              libEGL and libGLESv1 CM
                                        libhgl
                        GEM and KMS


硬體




     硬體要的也是buffer
     放座標
     放材質




              Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                         libagl
               libEGL and libGLESv1 CM
                                         libhgl
                         GEM and KMS


硬體




     硬體要的也是buffer
     放座標
     放材質
     放shader




               Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                         libagl
               libEGL and libGLESv1 CM
                                         libhgl
                         GEM and KMS


硬體




     硬體要的也是buffer
     放座標
     放材質
     放shader
     放硬體指令




               Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                         libagl
               libEGL and libGLESv1 CM
                                         libhgl
                         GEM and KMS


硬體




     硬體要的也是buffer
     放座標
     放材質
     放shader
     放硬體指令
     但是...




               Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                     libagl
           libEGL and libGLESv1 CM
                                     libhgl
                     GEM and KMS


硬體限制




   硬體要的是它能存取的buffer




           Chia-I Wu olv@0xlab.org   Android Wave Is Not Google Wave A little 3D
關於我
                                                 libagl
                      libEGL and libGLESv1 CM
                                                 libhgl
                                GEM and KMS


Intel




        a.k.a GEM Object
        讓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 CM
        libagl
        libhgl



    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




      GEM object 只是shared memory (man shmget(2))
      X server 配置
      應用程式繪圖
      compiz 合成
      跨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




      映射到AGP aperture
      CPU cache
      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




      Kernel Mode Setting
      叫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 ,
                         uint32 t crtcId ,
                         uint32 t bufferId ,
                         uint32 t x , uint32 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

More Related Content

More from National Cheng Kung University

給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明
給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明
給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明National Cheng Kung University
 
進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明
進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明
進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明National Cheng Kung University
 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsNational Cheng Kung University
 
Lecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and ImplementationLecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and ImplementationNational Cheng Kung University
 
中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學
中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學
中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學National Cheng Kung University
 
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsNational Cheng Kung University
 
進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明
進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明
進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明National Cheng Kung University
 
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例National Cheng Kung University
 

More from National Cheng Kung University (20)

Construct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTConstruct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoT
 
The Internals of "Hello World" Program
The Internals of "Hello World" ProgramThe Internals of "Hello World" Program
The Internals of "Hello World" Program
 
How A Compiler Works: GNU Toolchain
How A Compiler Works: GNU ToolchainHow A Compiler Works: GNU Toolchain
How A Compiler Works: GNU Toolchain
 
Virtual Machine Constructions for Dummies
Virtual Machine Constructions for DummiesVirtual Machine Constructions for Dummies
Virtual Machine Constructions for Dummies
 
給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明
給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明
給自己更好未來的 3 個練習:嵌入式作業系統設計、實做,與移植 (2015 年春季 ) 課程說明
 
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
 
進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明
進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明
進階嵌入式系統開發與實做 (2014 年秋季 ) 課程說明
 
Xvisor: embedded and lightweight hypervisor
Xvisor: embedded and lightweight hypervisorXvisor: embedded and lightweight hypervisor
Xvisor: embedded and lightweight hypervisor
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Implement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVMImplement Runtime Environments for HSA using LLVM
Implement Runtime Environments for HSA using LLVM
 
Priority Inversion on Mars
Priority Inversion on MarsPriority Inversion on Mars
Priority Inversion on Mars
 
Develop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM BoardsDevelop Your Own Operating Systems using Cheap ARM Boards
Develop Your Own Operating Systems using Cheap ARM Boards
 
Lecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and ImplementationLecture notice about Embedded Operating System Design and Implementation
Lecture notice about Embedded Operating System Design and Implementation
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 
中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學
中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學
中輟生談教育: 完全用開放原始碼軟體進行 嵌入式系統教學
 
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded SystemsF9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
 
Open Source from Legend, Business, to Ecosystem
Open Source from Legend, Business, to EcosystemOpen Source from Legend, Business, to Ecosystem
Open Source from Legend, Business, to Ecosystem
 
Summer Project: Microkernel (2013)
Summer Project: Microkernel (2013)Summer Project: Microkernel (2013)
Summer Project: Microkernel (2013)
 
進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明
進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明
進階嵌入式系統開發與實作 (2013 秋季班 ) 課程說明
 
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
 

Recently uploaded

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxNeo4j
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 

Recently uploaded (20)

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 

A Little 3D -- Implement New Hardware Accelerated OpenGL for Android

  • 1. 關於我 libEGL and libGLESv1 CM GEM and KMS Android Wave Is Not Google Wave A little 3D Chia-I Wu olv@0xlab.org Aug 16, 2009 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 2. 關於我 libEGL and libGLESv1 CM GEM and KMS Outline 關於我 libEGL and libGLESv1 CM libagl libhgl GEM and KMS Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 3. 關於我 libEGL and libGLESv1 CM GEM and KMS 3D and Me 不會OpenGL 不會演算法 不會硬體 不會驅動程式 沒有在玩3D 遊戲 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 4. 關於我 libEGL and libGLESv1 CM GEM and KMS Who am I? 0xlab 成員 數學系畢業 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 5. 關於我 libEGL and libGLESv1 CM GEM and KMS Hurry Porter 把Intel DRI 驅動程式移植到Android Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 6. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS Outline 關於我 libEGL and libGLESv1 CM libagl libhgl GEM and KMS Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 7. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS libGLESv1 CM frameworks/base/opengl/libs/GLES CM/ OpenGL ES API Entry points void glClear ( void ) { gl hooks t : : g l t const ∗ const 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
  • 8. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS libEGL frameworks/base/opengl/libs/EGL/ dlopen libagl 跟libhgl libagl 提供軟體實作 libhgl 提供硬體實作 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 9. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 身為libhgl Android 傳過來的是egl native window t Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 10. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 身為libhgl Android 傳過來的是egl native window t egl native window t 是EGLNativeWindowSurface Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 11. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 身為libhgl Android 傳過來的是egl native window t egl native window t 是EGLNativeWindowSurface EGLNativeWindowSurface 是Surface Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 12. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 身為libhgl Android 傳過來的是egl native window t egl native window t 是EGLNativeWindowSurface EGLNativeWindowSurface 是Surface Surface 是... Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 13. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS Surface Surface 是buffer Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 14. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體 硬體要的也是buffer Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 15. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體 硬體要的也是buffer 放座標 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 16. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體 硬體要的也是buffer 放座標 放材質 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 17. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體 硬體要的也是buffer 放座標 放材質 放shader Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 18. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體 硬體要的也是buffer 放座標 放材質 放shader 放硬體指令 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 19. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體 硬體要的也是buffer 放座標 放材質 放shader 放硬體指令 但是... Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 20. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS 硬體限制 硬體要的是它能存取的buffer Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 21. 關於我 libagl libEGL and libGLESv1 CM libhgl GEM and KMS Intel a.k.a GEM Object 讓Android 產生GEM object based Surface Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 22. 關於我 libEGL and libGLESv1 CM GEM and KMS Outline 關於我 libEGL and libGLESv1 CM libagl libhgl GEM and KMS Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 23. 關於我 libEGL and libGLESv1 CM GEM and KMS GEM in CPU GEM object 只是shared memory (man shmget(2)) X server 配置 應用程式繪圖 compiz 合成 跨process! Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 24. 關於我 libEGL and libGLESv1 CM GEM and KMS GEM in GPU 映射到AGP aperture CPU cache GPU cache Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 25. 關於我 libEGL and libGLESv1 CM GEM and KMS KMS Kernel Mode Setting 叫kernel 做解晰度設定 Chia-I Wu olv@0xlab.org Android Wave Is Not Google Wave A little 3D
  • 26. 關於我 libEGL and libGLESv1 CM GEM and KMS KMS i n t drmModeSetCrtc ( i n t fd , uint32 t crtcId , uint32 t bufferId , uint32 t x , uint32 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
  • 27. 關於我 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
  • 28. 關於我 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