Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
RAMSES.TECHNICAL OVERVIEWRAMSES.TECHNICAL OVERVIEWTECHNICAL OVERVIEW.TECHNICAL OVERVIEW.
Sven von Beuningen, Bernhard KißlingerKißlinger30.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 orH.264)H.264)(E.g. Display of a navigation map from HeadUnit inside instrument cluster)
IC-DisplayHUD-Display
Main-Display
Instrument Cluster
HeadUnit
Video stream
• 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.)g p p ( g , , )
Page 3RAMSES, JC-1, .2017-05-03
Connecting all displays to one ECU(E.g. Connecting main display and instrument cluster display to one powerful ECU)
IC-Display HUD-Display
Main-DisplayDisplay mirrors
Display xyz
HeadUnit
• Would solve distribution challenge, but we still have to exchange content between local processesWould 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
Page 4RAMSES, JC-1, .2017-05-03
Usage of a dedicated protocol per UseCase(E.g. Display of entertainment lists inside the instrumet cluster)
Entertainment lists
IC-DisplayHUD-Display
Main-Display
Instrument Cluster
HeadUnit
Entertainment lists
Guiding information
Use-Case xyz
• Development effort for each use case
y
• Hard to change or extend after the protocol is defined, especially at late phase of the development phase
Page 5RAMSES, JC-1, .2017-05-03
Stream of OpenGL commands over the wire(glGenBuffers, glBindBuffer, glBufferData, glDrawElements, etc)
IC-DisplayHUD-Display
Main-Display
Instrument Cluster
HeadUnitOpenGL commands surface 1..n
• Description for each single frame has to be transferred. Therefore a lot of duplicate information is communicated.p g p
• 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• No compression artefacts.
Page 6RAMSES, JC-1, .2017-05-03
THE RAMSES WAY.
IC-DisplayHUD-Display
Main-Display Left-Display Right-Display
Instrument Cluster
HeadUnit Logical scenes
RearSeatLogical scenes
• Distribution of graphical content on a logical SceneGraph levelC t t id (A li ti ) d C t t C (R d ) l i ll lit d diff t ECU• Content provider (Application) and Content Consumer (Renderer) are logically 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 ECUsGraphical 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
Page 7RAMSES, JC-1, .2017-05-03
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 / protocolFlexible, 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 Split application logic from display location One render engine for all displays
RAMSES - Technical Overview Seite 9
CONTENT TO SCREEN.LAYERS.
HMI application
WidgetsNavigationDB LookupWidgets
Scene graphDB Lookup
Zero copy local SomeIP
OpenGL ESRenderer
RAMSESpy
communication SomeIP
GPUOS/Driver
OpenGL ES
GPU
RAMSES - Technical Overview Seite 10
RAMSES.COMPONENTS.
Client Renderer
Content provider
Content consumer
FrameworkFramework
Common functionality
RAMSES - Technical Overview Seite 11
COMPONENTS.HIGH-LEVEL FEATURES.
Renderer
C++ Renderer
Client
C++ Client Scene APIOpenGL ES 3.1 Rendering Device
Embedded Wayland Compositor
APIText Rendering
mapping/linking
Framework
DeviceWindow abstraction
CompositorFile assetPost processing
FrameworkPlatform abstraction
LoggingScene graph provider / consumer
Resource provider / consumer
SOME/IP services / communication
Process-internal communication
Plain TCP based communication
Stack adapter
RAMSES - Technical Overview Seite 12
Platform dependent SOME/IP stacks
FEATURES.
RAMSES - Technical Overview Seite 13
C++ CLIENT API.
Standard data structures: SceneScene Node, TransformationNode, GroupNode, MeshNode, TextNode Appearance, Shaders (glslang input parsing), TextureSampler, Texture2D/3D/Cube, Index/Vertex array
inputsinputs Camera RenderGroup
RenderPass RenderPass RenderTarget
Defining static animations
RAMSES - Technical Overview Seite 14
TEXT/FONT RENDERING.
Support for multiple font rendering engines FreetypeFreetype RT-Font
Harfbuzz based font shaping support e.g. for Thai renderingFont cascades 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 loadingFast 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 ECUsCurrently 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 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 Data object linking Texture linking
RAMSES - Technical Overview Seite 20
EMBEDDED WAYLAND COMPOSITOR.
Renderer implements wayland-based compositor
RendererWayland application
Waylandwayland-ivi protocol(surface id)
Client textureSampler withstreamTexture(ref ivi surface id) ( )
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 scenesGraphical tooling available (RAMSES studio) to create scenes• C++ API, SomeIP-based serialization for IPC• Supported platforms:
• Windows• Windows• Linux• Integrity• Android (planned)
• OpenGL ES 3.1 support
RAMSES - Technical Overview Page 23
THANK YOU!Q&ATHANK YOU!Q&AQ&A.Q&A.
Sven von Beuningen, Bernhard KißlingerKißlinger30.11.2017