Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Android OpenGL ES remote rendering 蕭從恩

714 views

Published on

  • Be the first to comment

Android OpenGL ES remote rendering 蕭從恩

  1. 1. VMFive Lab Demo by 蕭從恩 Tsung-en Hsiao Android OpenGL ES Remote Rendering Dec, 21, 2015
  2. 2. 2 1 Android OpenGL ES Remote Rendering Name: 蕭從恩 Tsung-en Hsiao College/Department: NCTU EECS 交大電資學士班 二年級
  3. 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. 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. 5 1 Android OpenGL ES Remote Rendering
  6. 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. 7 1 Android OpenGL ES Remote Rendering Learning from the VMFive Lab? Read, build, try to modify Android source
  8. 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. 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. 10. 1 0 1 Android OpenGL ES Remote Rendering Apitrace: record certain app frame by frame and replay the file it dumped.
  11. 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. 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. 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. 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. 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. 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 :(
  17. 17. THANK YOU.

×