This project aims to make a revolution on remote render. We replace the traditional tech such as x264 with OpenGL commands and also provide a tool to analysis textures on the OpenGL application.We also build an POC to prove our method.
1. 1
VMFive 2016
Summer interenship Project
by Yen-Kwan Wu( yenWu ) - App Streaming Team
Mentor “ Kobe ”
Remote Render - Texture Analysis Part
Aug, 26, 2016
2. 2
01 Who am I ?
Streaming
yenWu(吳彥寬)
● NCKU CSIE (Master, Now)
● NCKU Mathematics(Bachelor)
● C
● RTOS
● Microkernel
● Robotic
3. 3
● Ease the network traffic on server side
● Remote Render via OpenGL commads
○ Cons: Bursty traffic due to Textures
● Detect the stuff which would cause burst
● offline Implementation
02 What do we want ?
4. 4
03 What should we do first ?
● We need a way to concentrate the stuff which would
cause burst and send it at first.
● We need to pick OpenGL commands out from the game
on Android and also get the Texture
● Apitrace : Here you are ~
Reference: http://apitrace.github.io/
5. 5
04 What is Apitrace ?
● OpenGL Profiling tool
● trace , dump and replay opengl process
6. 6
05 What have I done on Apitrace ?
● Fix some bugs at #470
● Add required feature on yenWu/apitrace
● Finish a SOP which contain how to trace Android on emulator
7. 7
06 Notice! Apitrace has some features
● .trace file is binary format defined by the authors
● .trace file is very heavy because it contains all of the OpenGL
commands and the Textures
● Variable in pointer type would not only store the value but
also copy it to to specified memory address
8. 8
07 Next ? Texture Analysis
● We have the .trace file including OpenGL commands and
Textures now. It is time to work on the next stage.
● TextureAnalysis is the main project develped by me to
extract the specified OpenGL commands and the
Textures. Then use MD5 hash alogrithm to get rid of the
repeted Textures.
Github:yenWu/TextureAnalysis
10. 10
10 Proof Of Concept
● I modified the OpenGL example from NeHe, and make it pick the
correct Texture which matched the specified MD5
Github : NeHeSamples_glx/lesson06
12. 12
08 Future Work
● Remote Render base on Android Emulator
● Expand to other OpenGL commands( DrawArray … )
● Compress the binary file(Texture) before we send it
● Reduce the latency on remote side