SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
VMFive Lab Demo
by 蕭從恩 Tsung-en Hsiao
Android OpenGL ES Remote Rendering
Dec, 21, 2015
2
1 Android OpenGL ES Remote Rendering
Name: 蕭從恩 Tsung-en Hsiao
College/Department: NCTU EECS 交大電資學士班
二年級
3
1 Android OpenGL ES Remote Rendering
Why to join the VMFive Lab?
System software is very cool.
Want to build fundamental things in the future.
4
1 Android OpenGL ES Remote Rendering
Learning from the VMFive Lab?
Not afraid to read document and source code.
Contributing to open source is not that hard.
My first pull request being merged!!
https://github.com/apitrace/apitrace/pull/384
https://github.com/apitrace/apitrace/pull/383
https://github.com/apitrace/apitrace/graphs/con
tributors
5
1 Android OpenGL ES Remote Rendering
6
1 Android OpenGL ES Remote Rendering
Learning from the VMFive Lab?
Use mailing lists to communite with awesome
people!
This guy is from
nVidia!!
7
1 Android OpenGL ES Remote Rendering
Learning from the VMFive Lab?
Read, build, try to modify Android source
8
1 Android OpenGL ES Remote Rendering
Android OpenGL Remote Rendering
Most app streaming is done by streaming video
frames.
How about streaming the OpenGL commands
with better GPUs on smartphones nowadays?
9
1 Android OpenGL ES Remote Rendering
OpenGL is composed of text commands w/
parameters and static assets.
Streaming compressed commands and play on
the client side.
1
0
1 Android OpenGL ES Remote Rendering
Apitrace: record certain app frame by frame
and replay the file it dumped.
1
1
1 Android OpenGL ES Remote Rendering
Apitrace: record certain app frame by frame
and replay the file it dumped.
Good compressing rate!
This show that maybe streaming these
commands is possible.
1
2
1 Android OpenGL ES Remote Rendering
How to test it on android?
https://
github.com/apitrace/apitrace/blob/master/docs
/Dalvik.markdown
(The original building and running steps are not
usable, this document was modified by me)
1
3
1 Android OpenGL ES Remote Rendering
Problem: apitrace is a debug tool for OpenGL
developers.
Traces are dumped to files, not real time
streaming.
So I sent the letter to the mailing list of
apitrace, asking how can I modify the code to
stream them in real-time.
1
4
1 Android OpenGL ES Remote Rendering
Result: Similar technique is used in Android
emulator.
In /device/generic/goldfish/opengl
https://android.googlesource.com/device/gene
ric/goldfish/+/master/opengl/system/OpenglSy
stemCommon/HostConnection.cpp
1
5
1 Android OpenGL ES Remote Rendering
Result: Similar technique is used in Android
emulator.
They use qemu pipe instead of tcp / ip
https://android.googlesource.com/platform/sdk/
+/
android-4.1.2_r2/emulator/opengl/DESIGN
But in HostConnection.cpp,
/* Set to 1 to use a QEMU pipe, or 0 for
a TCP connection */
#define USE_QEMU_PIPE 1
1
6
1 Android OpenGL ES Remote Rendering
But in HostConnection.cpp,
/* Set to 1 to use a QEMU pipe, or 0 for
a TCP connection */
#define USE_QEMU_PIPE 1
I modified it and tried to run the emulator, but
it didn’t work. Still trying to let it work :(
THANK YOU.

Más contenido relacionado

La actualidad más candente

Favorites of spain js (the rollingscopes #3)
Favorites of spain js (the rollingscopes #3)Favorites of spain js (the rollingscopes #3)
Favorites of spain js (the rollingscopes #3)
Alex Karlovich
 

La actualidad más candente (20)

Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile PoetsMobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
Mobile Fest 2018. Enrique López Mañas. TensorFlow for Mobile Poets
 
Ios vs android
Ios vs androidIos vs android
Ios vs android
 
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
Go native  benchmark test su dispositivi x86: java, ndk, ipp e tbbGo native  benchmark test su dispositivi x86: java, ndk, ipp e tbb
Go native benchmark test su dispositivi x86: java, ndk, ipp e tbb
 
TensorFlow for Mobile Platforms. UA Mobile 2017
TensorFlow for Mobile Platforms. UA Mobile 2017TensorFlow for Mobile Platforms. UA Mobile 2017
TensorFlow for Mobile Platforms. UA Mobile 2017
 
Silverlight 2 with Visual Studio 2008 and Expression Blend
Silverlight 2 with Visual Studio 2008 and Expression BlendSilverlight 2 with Visual Studio 2008 and Expression Blend
Silverlight 2 with Visual Studio 2008 and Expression Blend
 
Adobe MAX Recap
Adobe MAX RecapAdobe MAX Recap
Adobe MAX Recap
 
PhoneGap Day 2016 USA
PhoneGap Day 2016 USAPhoneGap Day 2016 USA
PhoneGap Day 2016 USA
 
IO17就是講義氣
IO17就是講義氣IO17就是講義氣
IO17就是講義氣
 
Fight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and SonarFight your technical debt with Jenkins, Jacoco and Sonar
Fight your technical debt with Jenkins, Jacoco and Sonar
 
Hands on Android
Hands on AndroidHands on Android
Hands on Android
 
Android Things
Android ThingsAndroid Things
Android Things
 
How to Automate Mobile P2P Application with Appium
How to Automate Mobile P2P Application with AppiumHow to Automate Mobile P2P Application with Appium
How to Automate Mobile P2P Application with Appium
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
Favorites of spain js (the rollingscopes #3)
Favorites of spain js (the rollingscopes #3)Favorites of spain js (the rollingscopes #3)
Favorites of spain js (the rollingscopes #3)
 
Fusing Artificial Intelligence with Augmented Reality on Android - 1 Feb. 2019
Fusing Artificial Intelligence with Augmented Reality on Android - 1 Feb. 2019Fusing Artificial Intelligence with Augmented Reality on Android - 1 Feb. 2019
Fusing Artificial Intelligence with Augmented Reality on Android - 1 Feb. 2019
 
DSC Android Study Jam
DSC Android Study JamDSC Android Study Jam
DSC Android Study Jam
 
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
 
Flutter Bootcamp
Flutter BootcampFlutter Bootcamp
Flutter Bootcamp
 
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
It’s All About Developers. Discover Cisco DevNet. - Jason Goecke - Codemotion...
 
Google DSC Android Study Jams Session 1
Google DSC Android Study Jams Session 1Google DSC Android Study Jams Session 1
Google DSC Android Study Jams Session 1
 

Destacado

Destacado (10)

Remote Android Rendering
Remote Android RenderingRemote Android Rendering
Remote Android Rendering
 
Android in the Cloud
Android in the CloudAndroid in the Cloud
Android in the Cloud
 
Hypori Performance Webinar
Hypori Performance WebinarHypori Performance Webinar
Hypori Performance Webinar
 
Mobilecloud
MobilecloudMobilecloud
Mobilecloud
 
OpenGL - Bringing the 3D World into the Android
OpenGL - Bringing the 3D World into the AndroidOpenGL - Bringing the 3D World into the Android
OpenGL - Bringing the 3D World into the Android
 
Emulador Android Genymotion
Emulador Android GenymotionEmulador Android Genymotion
Emulador Android Genymotion
 
SierraVMI Virtual Mobile Infrastructure (VMI). Android-based VDI.
SierraVMI Virtual Mobile Infrastructure (VMI). Android-based VDI.SierraVMI Virtual Mobile Infrastructure (VMI). Android-based VDI.
SierraVMI Virtual Mobile Infrastructure (VMI). Android-based VDI.
 
OpenGL ES Presentation
OpenGL ES PresentationOpenGL ES Presentation
OpenGL ES Presentation
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 
H. pylori
H. pyloriH. pylori
H. pylori
 

Similar a Android OpenGL ES remote rendering 蕭從恩

Android Internals (This is not the droid you’re loking for...)
Android Internals (This is not the droid you’re loking for...)Android Internals (This is not the droid you’re loking for...)
Android Internals (This is not the droid you’re loking for...)
Giacomo Bergami
 
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docxPhase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
randymartin91030
 
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko3D
 
C/C++ Remote Development Overview
C/C++ Remote Development OverviewC/C++ Remote Development Overview
C/C++ Remote Development Overview
Thitipong Jampajeen
 

Similar a Android OpenGL ES remote rendering 蕭從恩 (20)

Android Developer Meetup
Android Developer MeetupAndroid Developer Meetup
Android Developer Meetup
 
Android Internals (This is not the droid you’re loking for...)
Android Internals (This is not the droid you’re loking for...)Android Internals (This is not the droid you’re loking for...)
Android Internals (This is not the droid you’re loking for...)
 
Java Applications with Visual Studio
Java Applications with Visual StudioJava Applications with Visual Studio
Java Applications with Visual Studio
 
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docxPhase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
 
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
A Multiplatform, Multi-Tenant Challenge - Droidcon Lisbon 2023
 
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSLMinko - Targeting Flash/Stage3D with C++ and GLSL
Minko - Targeting Flash/Stage3D with C++ and GLSL
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017   ember.js - escape the javascript fatigueNode.js meetup 17.05.2017   ember.js - escape the javascript fatigue
Node.js meetup 17.05.2017 ember.js - escape the javascript fatigue
 
Use React tools for better Angular apps
Use React tools for better Angular appsUse React tools for better Angular apps
Use React tools for better Angular apps
 
GPU Programming 360iDev
GPU Programming 360iDevGPU Programming 360iDev
GPU Programming 360iDev
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Using cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexityUsing cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexity
 
Using cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexityUsing cyclomatic complexity to measure code complexity
Using cyclomatic complexity to measure code complexity
 
C/C++ Remote Development Overview
C/C++ Remote Development OverviewC/C++ Remote Development Overview
C/C++ Remote Development Overview
 
Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
SLUGUK BUILD Round-up
SLUGUK BUILD Round-upSLUGUK BUILD Round-up
SLUGUK BUILD Round-up
 
Intro to Github
Intro to GithubIntro to Github
Intro to Github
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 

Android OpenGL ES remote rendering 蕭從恩

  • 1. VMFive Lab Demo by 蕭從恩 Tsung-en Hsiao Android OpenGL ES Remote Rendering Dec, 21, 2015
  • 2. 2 1 Android OpenGL ES Remote Rendering Name: 蕭從恩 Tsung-en Hsiao College/Department: NCTU EECS 交大電資學士班 二年級
  • 3. 3 1 Android OpenGL ES Remote Rendering Why to join the VMFive Lab? System software is very cool. Want to build fundamental things in the future.
  • 4. 4 1 Android OpenGL ES Remote Rendering Learning from the VMFive Lab? Not afraid to read document and source code. Contributing to open source is not that hard. My first pull request being merged!! https://github.com/apitrace/apitrace/pull/384 https://github.com/apitrace/apitrace/pull/383 https://github.com/apitrace/apitrace/graphs/con tributors
  • 5. 5 1 Android OpenGL ES Remote Rendering
  • 6. 6 1 Android OpenGL ES Remote Rendering Learning from the VMFive Lab? Use mailing lists to communite with awesome people! This guy is from nVidia!!
  • 7. 7 1 Android OpenGL ES Remote Rendering Learning from the VMFive Lab? Read, build, try to modify Android source
  • 8. 8 1 Android OpenGL ES Remote Rendering Android OpenGL Remote Rendering Most app streaming is done by streaming video frames. How about streaming the OpenGL commands with better GPUs on smartphones nowadays?
  • 9. 9 1 Android OpenGL ES Remote Rendering OpenGL is composed of text commands w/ parameters and static assets. Streaming compressed commands and play on the client side.
  • 10. 1 0 1 Android OpenGL ES Remote Rendering Apitrace: record certain app frame by frame and replay the file it dumped.
  • 11. 1 1 1 Android OpenGL ES Remote Rendering Apitrace: record certain app frame by frame and replay the file it dumped. Good compressing rate! This show that maybe streaming these commands is possible.
  • 12. 1 2 1 Android OpenGL ES Remote Rendering How to test it on android? https:// github.com/apitrace/apitrace/blob/master/docs /Dalvik.markdown (The original building and running steps are not usable, this document was modified by me)
  • 13. 1 3 1 Android OpenGL ES Remote Rendering Problem: apitrace is a debug tool for OpenGL developers. Traces are dumped to files, not real time streaming. So I sent the letter to the mailing list of apitrace, asking how can I modify the code to stream them in real-time.
  • 14. 1 4 1 Android OpenGL ES Remote Rendering Result: Similar technique is used in Android emulator. In /device/generic/goldfish/opengl https://android.googlesource.com/device/gene ric/goldfish/+/master/opengl/system/OpenglSy stemCommon/HostConnection.cpp
  • 15. 1 5 1 Android OpenGL ES Remote Rendering Result: Similar technique is used in Android emulator. They use qemu pipe instead of tcp / ip https://android.googlesource.com/platform/sdk/ +/ android-4.1.2_r2/emulator/opengl/DESIGN But in HostConnection.cpp, /* Set to 1 to use a QEMU pipe, or 0 for a TCP connection */ #define USE_QEMU_PIPE 1
  • 16. 1 6 1 Android OpenGL ES Remote Rendering But in HostConnection.cpp, /* Set to 1 to use a QEMU pipe, or 0 for a TCP connection */ #define USE_QEMU_PIPE 1 I modified it and tried to run the emulator, but it didn’t work. Still trying to let it work :(