SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
關於我
  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

Weitere ähnliche Inhalte

Mehr von 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
 

Mehr von 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 總是打開你的心:從電玩模擬器看編譯器應用實例
 

Kürzlich hochgeladen

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 

Kürzlich hochgeladen (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

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