running android on the mainline graphics stack€¦ · mainline atomic kms abi introduced ... -...

76
Open First Running Android on the Mainline Graphics Stack Robert Foss Senior Software Engineer [email protected] @memcpy_io

Upload: others

Post on 17-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Open First

Running Android on theMainline Graphics StackRobert FossSenior Software Engineer

[email protected]@memcpy_io

Page 2: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

● Android History● Android on Mainline● Current Status● Big Picture

Agenda

Page 3: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

Page 4: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

v3.10 v3.14 v3.18 v4.4 v4.90

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

Qualcomm diff against mainline, # lines

Android History

Page 5: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel

Page 6: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel– Better Graphics stack was needed

Page 7: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel– Better Graphics stack was needed– Support for low power was lacking

Page 8: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel– Better Graphics stack was needed– Support for low power was lacking– Support for atomic operations missing

Page 9: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created

Page 10: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created

– Not extensible or generic

Page 11: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created

– Not extensible or generic– Only atomic for plane updates

Page 12: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created

– Not extensible or generic– Only atomic for plane updates– Not compatible with current ABI

Page 13: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created

– Not extensible or generic– Only atomic for plane updates– Not compatible with current ABI– Not upstreamable

Page 14: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created● Mainline Atomic KMS ABI introduced

Page 15: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created● Mainline Atomic KMS ABI introduced

– Supports the ADF usecases

Page 16: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created● Mainline Atomic KMS ABI introduced

– Supports the ADF usecases– Uses Properties to be generic

Page 17: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android History

● Android forked the Kernel● Android Atomic Display Framework created● Mainline Atomic KMS ABI introduced

– Supports the ADF usecases– Uses Properties to be generic– Is now replacing ADF in vendor drivers

Page 18: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android on Mainline

Page 19: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Page 20: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

The Really Good Stuff ™

Page 21: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

The Really Good Stuff ™ - No really, this is the whole point!

Page 22: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

Interface between applications and hardware

Page 23: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

Page 24: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

Status Bar

Page 25: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

Na

vig

ati

on B

ar

Status Bar

Page 26: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

Na

vig

ati

on B

ar

Status Bar

Background

Page 27: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

SurfaceFlinger speaks HWC to the Composer

Page 28: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics StackWhat does the Hardware Composer do?

Page 29: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics StackWhat does the Hardware Composer do?

Get LayersThrough HWC API

Page 30: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics StackWhat does the Hardware Composer do?

Get LayersThrough HWC API

 Optimize Layers forDisplay

Page 31: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics StackWhat does the Hardware Composer do?

Get LayersThroughHWC API

 Optimize Layers forDisplay

OutputLayers ToDisplay HW

Page 32: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

The non-kernel part of the graphics driver

Page 33: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

The non-kernel part of the graphics driver - Hardware Composer

Page 34: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

The non-kernel part of the graphics driver - Hardware Composer - OpenGL, Vulkan, memory allocator, etc.

Page 35: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Android Graphics Stack

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Subtitle Karla regular28pt

The Linux Kernel

Page 36: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

● Mainline now has good Graphics ABI

Page 37: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

● Mainline now has good Graphics ABI● Google Pixel C shipped using Atomic KMS

Page 38: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

● Mainline now has good Graphics ABI● Google Pixel C shipped using Atomic KMS

– Android requires HWC implementation

Page 39: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

● Mainline now has good Graphics ABI● Google Pixel C shipped using Atomic KMS

– Android requires HWC implementation– Mesa and the Kernel does not implement it

Page 40: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

● Mainline now has good Graphics ABI● Google Pixel C shipped using Atomic KMS

– Android requires HWC implementation– Mesa and the Kernel does not implement it– drm_hwcomposer does!

Page 41: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics StackWhat is the Hardware Composer?

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Page 42: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

Proprietary}

What is the Hardware Composer?

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Page 43: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

Kernel

SurfaceFlinger

Apps

HWC2

???

What is the Hardware Composer?

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Page 44: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics StackWhat is the Hardware Composer?

Kernel

SurfaceFlinger

Apps

HWC2

drm_hwc

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Driver

Page 45: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

Kernel

SurfaceFlinger

Apps

HWC2

DRM

drm_hwc

libdrmmesa{

What is the Hardware Composer?

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Kernel

SurfaceFlinger

Apps

HWC2

drm_hwc

Driver

Page 46: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Mainline Graphics Stack

Kernel

SurfaceFlinger

Apps

HWC2

DRM

drm_hwc

libdrmmesa {

What is the Hardware Composer?

Kernel

Vendor driver

HWC2

SurfaceFlinger

Apps

HWC2

Kernel

SurfaceFlinger

Apps

HWC2

drm_hwc

Driver

Kernel

SurfaceFlinger

Apps

HWC2

DRM

drm_hwc

mesagralloc libdrm

Page 47: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

Page 48: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

● Android added buffer Fence support

Page 49: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

● Android added buffer Fence support– Ensures ordering between operations

Page 50: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

● Android added buffer Fence support– Ensures ordering between operations– Synchronizes buffer sharing

Page 51: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

● Android added buffer Fence support● HWC version 2 is improved using Fences

Page 52: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

● Android added buffer Fence support● HWC version 2 is improved using Fences● Mainline received Fence support

Page 53: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposerWhat is HWC2?

● Android added buffer Fence support● HWC version 2 is improved using Fences● Mainline received Fence support● drm_hwcomposer implemented HWC2

Page 54: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposer

● Previously hosted within ChromiumOS

Project Hosting

Page 55: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposer

● Previously hosted within ChromiumOS● Now hosted on Freedesktop.org

Project Hosting

Page 56: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposer

● Previously hosted within ChromiumOS● Now hosted on Freedesktop.org

– Thanks Google:● Sean Paul● Puneet Kumar● Marissa Wall

Project Hosting

Page 57: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

drm_hwcomposer

● Previously hosted within ChromiumOS● Now hosted on Freedesktop.org● Contribute at gitlab.freedesktop.org

Project Hosting

Page 58: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Current Status

Page 59: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Current statusTested platforms

Page 60: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Current status

● iMX6– GPU: Vivante GC3000

Tested platforms

Page 61: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Current status

● Dragonboard 410c– GPU: Adreno 306

Tested platforms

Page 62: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Current status

● HiKey 960– GPU: Mali G71

Under Development

Page 63: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big Picture

Page 64: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PictureMerging Android Features

Page 65: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PictureMerging Android Features

● A new feature is introduced in Android

Page 66: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PictureMerging Android Features

● A new feature is introduced in Android● Slowly migrated into the kernel

Page 67: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PictureMerging Android Features

● A new feature is introduced in Android● Slowly migrated into the kernel● This does not to apply to all subsystems

Page 68: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

5.00%

6.50%

3.50%

13.40%

11.90%

11.90%

3.30%

7.10%

5.40%

Qualcomm v4.9 Diff

arch/arm64/

arch/

drivers/clk/

drivers/gpu/

drivers/media/

drivers/platform/

drivers/power/

drivers/soc/qcom/

include/

Big PictureMerging Android Features

Page 69: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PictureMerging Android Features

● A new feature is introduced in Android● Slowly migrated into the kernel● This does not to apply to all subsystems● The diff size for drivers seem fairly constant

Page 70: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

v3.10 v3.14 v3.18 v4.4 v4.90

500000

1000000

1500000

2000000

2500000

3000000

3500000

4000000

Qualcomm diff against mainline, # lines

Big PictureMerging Android Features

Page 71: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PicturePush industry towards Open Source

Page 72: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PicturePush industry towards Open Source

● Increase device development speed

Page 73: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PicturePush industry towards Open Source

● Increase device development speed● Lower driver development costs

Page 74: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PicturePush industry towards Open Source

● Increase device development speed● Lower driver development costs● Increase driver quality

Page 75: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Big PicturePush industry towards Open Source

● Increase device development speed● Lower driver development costs● Increase driver quality● Push Open Source adoption forward

Page 76: Running Android on the Mainline Graphics Stack€¦ · Mainline Atomic KMS ABI introduced ... - OpenGL, Vulkan, memory allocator, etc. Android Graphics Stack Kernel Vendor driver

Thank you!@memcpy_io