24
RAMSES. TECHNICAL OVERVIEW RAMSES. TECHNICAL OVERVIEW TECHNICAL OVERVIEW . TECHNICAL OVERVIEW . Sven von Beuningen, Bernhard Kißlinger Kißlinger 30.11.2017

RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

RAMSES.TECHNICAL OVERVIEWRAMSES.TECHNICAL OVERVIEWTECHNICAL OVERVIEW.TECHNICAL OVERVIEW.

Sven von Beuningen, Bernhard KißlingerKißlinger30.11.2017

Page 2: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

DISPLAY CLUSTER POTENTIAL SOLUTIONS.

RAMSES - Technical Overview Seite 2

Page 3: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 4: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 5: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 6: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 7: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 8: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

ARCHITECTURE.

RAMSES - Technical Overview Seite 8

Page 9: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 10: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 11: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

RAMSES.COMPONENTS.

Client Renderer

Content provider

Content consumer

FrameworkFramework

Common functionality

RAMSES - Technical Overview Seite 11

Page 12: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 13: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

FEATURES.

RAMSES - Technical Overview Seite 13

Page 14: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 15: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 16: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 17: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 18: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 19: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

RENDERER C++ API.SCENE MAPPING.

Map scene to a buffer

Offscreen render buffer Frame buffer

RAMSES - Technical Overview Seite 19

Page 20: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 21: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 22: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

RAMSES STUDIO AUTHORING TOOL

RAMSES - Technical Overview Seite 22

Page 23: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

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

Page 24: RAMSES. TECHNICAL OVERVIEW. - at.projects.genivi.org

THANK YOU!Q&ATHANK YOU!Q&AQ&A.Q&A.

Sven von Beuningen, Bernhard KißlingerKißlinger30.11.2017