RAMSES. TECHNICAL OVERVIEW. Sven von Beuningen, Bernhard Kißlinger 30.11.2017
DISPLAY CLUSTER POTENTIAL SOLUTIONS. RAMSES - Technical Overview Seite 2
Rendering on one ECU and transfer via video to another ECU (e.g. APIX2 or H.264) (E.g. Display of a navigation map from HeadUnit inside instrument cluster) HUD- Display IC-Display Main-Display Instrume nt Cluster Video stream HeadUn it Needs very high permanent bandwith for good quality on the network, and maybe also a dedicated link between the ECUs (Hardware costs) Can have compression artefacts Computation power is calculated in the sending ECU, even if the receiving ECU is not build in the car No graphical interaction between local and remote content possible (e.g. Reflections, Shadows, etc.) RAMSES, JC-1,.2017-05-03 Page 3
Connecting all displays to one ECU (E.g. Connecting main display and instrument cluster display to one powerful ECU) Display xyz Display mirrors IC-Display HUD- Display Main-Display HeadUn it Would solve distribution challenge, but we still have to exchange content between local processes May be suitable for HeadUnit and instrument cluster, but does not scale very well for higher amount of displays Computation power have to be calculated in this one ECU for all possible combinations RAMSES, JC-1,.2017-05-03 Page 4
Usage of a dedicated protocol per UseCase (E.g. Display of entertainment lists inside the instrumet cluster) HUD- Display Instrume nt Cluster IC-Display Entertainment lists Guiding information Use-Case xyz Main-Display HeadUn it Development effort for each use case Hard to change or extend after the protocol is defined, especially at late phase of the development phase RAMSES, JC-1,.2017-05-03 Page 5
Stream of OpenGL commands over the wire (glgenbuffers, glbindbuffer, glbufferdata, gldrawelements, etc) HUD- Display IC-Display Main-Display Instrume nt Cluster OpenGL commands surface 1..n HeadUn it Description for each single frame has to be transferred. Therefore a lot of duplicate information is communicated. High amount of bandwidth needed for 60fps with about 1000 draw calls. No graphical interaction possible, because the command stream is rendered into a surface and just integrated as is, into the remote scene. No compression artefacts. RAMSES, JC-1,.2017-05-03 Page 6
THE RAMSES WAY. HUD- Display IC-Display Main-Display Left-Display Right-Display Instrume nt Cluster Logical scenes HeadUn it Logical scenes RearSe at Distribution of graphical content on a logical SceneGraph level Content t provider (Application) and Content t Consumer (Renderer) are logically ll split, and can run on different ECUs (decoupling) Updates or late changes in the development cycle on application side possible without changes on the rendering side Graphical interaction possible between scenes from different ECUs Animated transitions for content from one screen to another Several times less bandwidth needed during runtime, compared to video distribution RAMSES, JC-1,.2017-05-03 Page 7
ARCHITECTURE. RAMSES - Technical Overview Seite 8
DISPLAY CLUSTER. ARCHITECTURE GOALS. Distributed rendering of arbitrary content by providing a consistent look and feel of same content classes Flexible, extensible use case independent architecture / protocol Handling different variants (Low/High, with HUD/without HUD) Independent of deployment and ECU partitioning Split application logic from display location One render engine for all displays RAMSES - Technical Overview Seite 9
CONTENT TO SCREEN. LAYERS. HMI application Widgets Zero copy local communication Navigation DB Lookup Scene graph SomeIP Renderer OpenGL ES OS/Driver GPU RAMSES RAMSES - Technical Overview Seite 10
RAMSES. COMPONENTS. Client Renderer Content provider Content consumer Framework Common functionality RAMSES - Technical Overview Seite 11
COMPONENTS. HIGH-LEVEL FEATURES. Client Renderer C++ Client API Text Rendering File asset C++ Renderer API OpenGL ES 3.1 Rendering Device Window abstraction Scene mapping/linking Embedded Wayland Compositor Post processing Framework Scene graph provider / consumer Resource provider / consumer Platform abstraction Logging SOME/IP services / communication Stack adapter Process-internal communication Plain TCP based communication Platform dependent SOME/IP stacks RAMSES - Technical Overview Seite 12
FEATURES. RAMSES - Technical Overview Seite 13
C++ CLIENT API. Standard data structures: Scene Node, TransformationNode, GroupNode, MeshNode, TextNode Appearance, Shaders (glslang input parsing), TextureSampler, Texture2D/3D/Cube, Index/Vertex array inputs Camera RenderGroup RenderPass RenderTarget Defining static animations RAMSES - Technical Overview Seite 14
TEXT/FONT RENDERING. Support for multiple font rendering engines Freetype RT-Font Harfbuzz based font shaping support e.g. for Thai rendering Font cascades Configuration of text style attributes (height, ascender, descender, etc.) RAMSES - Technical Overview Seite 15
ASSETS. LOADING SCENE AND RESOURCES FROM FILE. Store and load scene and resources in a RAMSES specific format Fast loading Startup requirements, especially needed e.g. for the Instrument Cluster RAMSES - Technical Overview Seite 16
SOME/IP BASED COMMUNICATION. Standard communication protocol for all Ethernet based ECUs in our cars. Currently different SomeIP Stacks with different toolchains and APIs are used on different ECUs RAMSES - Technical Overview Seite 17
RENDERER C++ API. WINDOW AND DISPLAY CONFIGURATION. Window support for WGL, EGL, X11, Integrity Display configuration such as Display Size Viewport settings Camera parameters Stereo rendering support Warping support Multi-sampling RAMSES - Technical Overview Seite 18
RENDERER C++ API. SCENE MAPPING. Map scene to a buffer Offscreen render buffer Frame buffer RAMSES - Technical Overview Seite 19
RENDERER C++ API. DATA LINKING. Interaction between scenes Data links: Transformation linking Data object linking Texture linking RAMSES - Technical Overview Seite 20
EMBEDDED WAYLAND COMPOSITOR. Renderer implements wayland-based compositor Client Renderer texturesampler with Wayland streamtexture wayland-ivi protocol (ref ivi surface id) (surface id) Wayland application RAMSES - Technical Overview Seite 21
RAMSES STUDIO AUTHORING TOOL RAMSES - Technical Overview Seite 22
TECH FACTS. RAMSES provides a SDK Graphical tooling available (RAMSES studio) to create scenes C++ API, SomeIP-based serialization for IPC Supported platforms: Windows Linux Integrity Android (planned) OpenGL ES 3.1 support RAMSES - Technical Overview Page 23
THANK YOU! Q&A. Sven von Beuningen, Bernhard Kißlinger 30.11.2017