android opengl es remote rendering 蕭從恩

17
VMFive Lab Demo by 蕭從恩 Tsung-en Hsiao Android OpenGL ES Remote Rendering Dec, 21, 2015

Upload: tsung-en-hsiao

Post on 12-Apr-2017

445 views

Category:

Documents


5 download

TRANSCRIPT

VMFive Lab Demo

by 蕭從恩 Tsung-en Hsiao

Android OpenGL ES Remote Rendering

Dec, 21, 2015

2

01 Android OpenGL ES Remote Rendering

Name: 蕭從恩 Tsung-en HsiaoCollege/Department: NCTU EECS 交大電資學士班 二年級

3

01 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

01 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/384https://github.com/apitrace/apitrace/pull/383https://github.com/apitrace/apitrace/graphs/contributors

5

01 Android OpenGL ES Remote Rendering

6

01 Android OpenGL ES Remote Rendering

Learning from the VMFive Lab?Use mailing lists to communite with awesome people!

This guy is from nVidia!!

7

01 Android OpenGL ES Remote Rendering

Learning from the VMFive Lab?Read, build, try to modify Android source

8

01 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

01 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

01 Android OpenGL ES Remote Rendering

Apitrace: record certain app frame by frame and replay the file it dumped.

11

01 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

01 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

01 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

01 Android OpenGL ES Remote Rendering

Result: Similar technique is used in Android emulator.In /device/generic/goldfish/openglhttps://android.googlesource.com/device/generic/goldfish/+/master/opengl/system/OpenglSystemCommon/HostConnection.cpp

15

01 Android OpenGL ES Remote Rendering

Result: Similar technique is used in Android emulator.They use qemu pipe instead of tcp / iphttps://android.googlesource.com/platform/sdk/+/android-4.1.2_r2/emulator/opengl/DESIGNBut in HostConnection.cpp,

/* Set to 1 to use a QEMU pipe, or 0 for a TCP connection */#define USE_QEMU_PIPE 1

16

01 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.