SlideShare a Scribd company logo
Presented by
Date
Event
Graphics Stack Update
Jammy Zhou
March 9, 2016
BKK16
Agenda
● X11/Wayland/Android graphics overview
● Mali and Adreno driver status
● Linaro effort around graphics
● Discussion and Q&A
Wayland/X11 Graphics Architecture
Display Engine Graphics Engine
DRM/KMS
KMS driver
fbdev GPU driver
dma_buf TTM
libdrm libdrm_xxx Vendor IF library
DDX
Xserver EGL OpenGL ES
DRM
X11 Clients Wayland Clients
Window
Manager
GBMXWayland
Wayland Server
X11
Toolkits (GTK, QT...)
Wayland
fbdev
Hardware
Kernel
User space
components
Applications
RAM
Android Graphics Architecture
FB
SurfaceFlinger
Android Applications
HWUI/Skia
libsync
ION
OpenGL ES
Display Engine Graphics Engine
fbdev GPU driver
libdrm_xxx Vendor IF library
Hardware
Kernelsync
libdrm
DRM/KMS
KMS Driver
EGL
Activity Manager
Window Manager
HWC
KMS
libion
gralloc
FB DRM
RAM
ION
Framework
& Libraries
Applications
dma_buf
Mali Driver Status
● Proprietary driver from ARM
○ Open source components
■ Kernel mode driver
■ UMP user space library
■ DDX driver (xf86-video-mali, fbdev/UMP based, no 2D HW acceleration)
■ Gralloc
○ Binary user space drivers
■ EGL (DRI2 based for X11)
■ OpenGL ES (ES3.1 support only for Midgard)
■ OpenCL and Renderscript (Midgard only)
■ No GLX and OpenGL support
■ DDK r5p1 or newer should be used for Wayland
● Open source driver from community (lima and tamil)
Adreno Driver Status
● Proprietary driver from Qualcomm
○ Open source components
■ Kernel mode driver (kgsl)
■ xf86-video-msm DDX driver
○ Binary user space drivers (EGL, OpenGL ES, Renderscript, OpenCL, gralloc, etc)
● Open source driver from community (freedreno)
○ Kernel mode driver (msm.ko)
■ First merged in kernel 3.12 for Adreno 2xx/3xx support
■ Adreno 4xx support added in kernel 3.19
○ libdrm_freedreno (support both msm and kgsl kernel mode drivers)
○ mesa/gallium (msm_dri.so)
■ OpenGL 3.1 and OpenGL ES3.0 for A3xx/4xx (OGL 1.4 and ES2.0 for A2xx)
■ No OpenCL support
○ xf86-video-freedreno DDX driver (support both fbdev and KMS display driver)
■ 2D HW acceleration with XA state tracker of Gallium
LHG - Wayland and Android
● Wayland/weston enablement on member platforms
● Metrological WPE (WebkitForWayland)
● CEF support in Linaro RDK (Ozone-Wayland, etc)
● OpenSDK to support V4L2, DRM/KMS, GStreamer and
Wayland
● BKK16-209: Chromium V4L2 playback - is it ready
today?
● Demo: LHG OE Chr-Wayland/Weston on DB & HiKey
LMG - Android
● DRM/KMS support for hwcomposer/gralloc
● ION and ADF upstreaming
● GPGPU support (OpenCL, etc)
● BKK16-202: LMG Lightning Talks
● BKK16-403: Android HAL Consolidation Status
96Boards RPB Support
● Mali kernel mode driver is integrated in HiKey Linux RPB (no upstream)
● Kirin 620 ADE KMS driver is integrated in HiKey Linux RPB (upstream is ongoing)
● xf86-video-armsoc is used by HiKey Linux RPB now (no 2D HW accel, dma-buf based)
● The freedreno driver has been enabled for DB410c AOSP RPB
● The wayland/weston support will be enabled soon for OE/Yocto Linux RPB as well as
Debian Linux RPB (once there is good driver support)
● OpenCL is not supported yet in the RPBs
96Boards (SOC/GPU) OGL ES OCL Linux/X11 AOSP
HiKey (Kirin 620/Mali-450MP4) 2.0 N/A binary binary
DB410c (Snapdragon 410/Adreno 306) 3.0 1.1 EP freedreno binary/freedreno
Bubblegum96 (S900/PowerVR G6230) 3.1 1.2 binary(*)
binary(*)
Andromeda (IAP140/Vivante GC7000UL) 3.1 1.2 binary(*)
binary(*)
(*) to be confirmed
Discussion
● Wayland/X11
○ GBM library for DRM backend of weston (decouple gbm from mesa or use minigbm?)
○ Mali DDK support for GBM and Wayland platforms (similar for other proprietary drivers)
○ More advanced wayland display servers enablement on ARM (gnome-shell, kwin, etc)
○ Toolkits/apps porting and optimization on ARM (GNOME, QT, SDL, gstreamer, etc)
○ Xwayland support with xf86-video-modesetting and glamor
● APIs
○ Vulkan
○ OpenCL/OpenVX/OpenCV
○ GLVND for Linux
● Use cases
○ VR/AR, AI and deep learning, wearables and IoT, etc
● Other
○ GPU virtualization (VirGL renderer support from QEMU 2.5/Mesa 11.1/kernel 4.4)
○ Discrete graphics card support on ARM platform
Vulkan briefing
● New API spec from Khronos for graphics and compute, unified for desktop,
mobile, console and embedded
● Vulkan 1.0 announced on Feb 16th together with WSI extension and SPIR-V
● Designed to be implementable on hardware with OpenGL ES3.1 or OpenGL
4.x capability
○ ARM Mali: Midguard (T6xx/T7xx/T8xx) and later
○ Qualcomm Adreno: 4xx, 5xx and later
○ Imagination PowerVR: Series 6 and later
● More development work to be done for Linux and Android
○ Driver enablement by GPU vendors and community
■ Intel Anvil open source Vulkan driver for mesa is a good reference
■ DRI3 is required for X11 WSI support
■ SPIR-V support, Vulkan synchronization primitives, etc
○ SDK and tools support (LunarG SDK for Linux, etc)
○ Middleware and toolkit support (Qt Vulkan integration, etc)
Q&A
Thanks!

More Related Content

PDF
Project meeting: Android Graphics Architecture Overview
PDF
Understanding the Android System Server
PDF
Embedded Android : System Development - Part I
ODP
Q4.11: Porting Android to new Platforms
PDF
Low Level View of Android System Architecture
PDF
The Android graphics path, in depth
PDF
Explore Android Internals
PDF
Android Binder IPC for Linux
Project meeting: Android Graphics Architecture Overview
Understanding the Android System Server
Embedded Android : System Development - Part I
Q4.11: Porting Android to new Platforms
Low Level View of Android System Architecture
The Android graphics path, in depth
Explore Android Internals
Android Binder IPC for Linux

What's hot (20)

PDF
Android Internals at Linaro Connect Asia 2013
ODP
Embedded Android : System Development - Part III
PDF
Design and Concepts of Android Graphics
PPT
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
PDF
Android's HIDL: Treble in the HAL
PDF
Embedded Android : System Development - Part II (HAL)
PDF
Android OS Porting: Introduction
PDF
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
PPT
Learning AOSP - Android Linux Device Driver
PDF
Accessing Hardware on Android
PDF
Android IPC Mechanism
PDF
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
PPT
Learning AOSP - Android Booting Process
PDF
Introduction to Android Window System
PDF
Hardware Accelerated 2D Rendering for Android
PDF
Android Things : Building Embedded Devices
PDF
Android Internals
PDF
Embedded Android : System Development - Part IV
PDF
X / DRM (Direct Rendering Manager) Architectural Overview
PDF
Android Boot Time Optimization
Android Internals at Linaro Connect Asia 2013
Embedded Android : System Development - Part III
Design and Concepts of Android Graphics
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Android's HIDL: Treble in the HAL
Embedded Android : System Development - Part II (HAL)
Android OS Porting: Introduction
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Learning AOSP - Android Linux Device Driver
Accessing Hardware on Android
Android IPC Mechanism
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Learning AOSP - Android Booting Process
Introduction to Android Window System
Hardware Accelerated 2D Rendering for Android
Android Things : Building Embedded Devices
Android Internals
Embedded Android : System Development - Part IV
X / DRM (Direct Rendering Manager) Architectural Overview
Android Boot Time Optimization
Ad

Viewers also liked (17)

PDF
LCE13: Android Graphics Upstreaming
PPTX
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
PDF
Skia & Freetype - Android 2D Graphics Essentials
PDF
Android internals 07 - Android graphics (rev_1.1)
PDF
Sumit& archit osi nov-2011-displays-in-mobile-devices
PDF
PT-4056, Harnessing Heterogeneous Systems Using C++ AMP – How the Story is Ev...
PDF
Kernel Recipes 2014 - The Linux graphics stack and Nouveau driver
PDF
Case Study: Porting Qt for Embedded Linux on Embedded Processors
PDF
Overview of Brillo and Weave
PDF
Chrome & Webkit overview
PDF
Overview of Brillo (Android Things)
PDF
GPU power consumption and performance trends
PPT
Ns-2.35 Installation
PPTX
Introduction to graphics programming in c
PDF
BUD17-TR02: Upstreaming 101
PDF
Rhetoric in Graphic Design
PPTX
Introduction to linux ppt
LCE13: Android Graphics Upstreaming
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Skia & Freetype - Android 2D Graphics Essentials
Android internals 07 - Android graphics (rev_1.1)
Sumit& archit osi nov-2011-displays-in-mobile-devices
PT-4056, Harnessing Heterogeneous Systems Using C++ AMP – How the Story is Ev...
Kernel Recipes 2014 - The Linux graphics stack and Nouveau driver
Case Study: Porting Qt for Embedded Linux on Embedded Processors
Overview of Brillo and Weave
Chrome & Webkit overview
Overview of Brillo (Android Things)
GPU power consumption and performance trends
Ns-2.35 Installation
Introduction to graphics programming in c
BUD17-TR02: Upstreaming 101
Rhetoric in Graphic Design
Introduction to linux ppt
Ad

Similar to BKK16-315 Graphics Stack Update (20)

PDF
ALSF13: Xen on ARM - Virtualization for the Automotive Industry - Stefano Sta...
PDF
Embedded Recipes 2018 - Upstream multimedia on amlogic so cs from fiction t...
PDF
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
PDF
BKK16-403 Android HAL Consolidation Status
PDF
LMG Lightning Talks - SFO17-205
PDF
Memory Management in TIZEN - Samsung SW Platform Team
PDF
Container based android
PDF
BKK16-105 HALs for LITE
PDF
BKK16-209 Chromium with V4L2 playback - is it ready today?
PPTX
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
PDF
DRIVE PX 2
PDF
GPU Acceleration for Containers on Intel Processor Graphics
PDF
How Igalia Is Driving Innovation In Embedded Systems With Open Source Technol...
PDF
Porting Tizen-IVI 3.0 to an ARM based SoC Platform
PDF
Deep Learning on ARM Platforms - SFO17-509
PDF
Porting Android
PDF
MOVED: RDK/WPE Port on DB410C - SFO17-206
PDF
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
PDF
Embedded Recipes 2019 - Making embedded graphics less special
PDF
Microsoft RDS, VDI, RemoteFX and what Service Pack 1 will bring us
ALSF13: Xen on ARM - Virtualization for the Automotive Industry - Stefano Sta...
Embedded Recipes 2018 - Upstream multimedia on amlogic so cs from fiction t...
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
BKK16-403 Android HAL Consolidation Status
LMG Lightning Talks - SFO17-205
Memory Management in TIZEN - Samsung SW Platform Team
Container based android
BKK16-105 HALs for LITE
BKK16-209 Chromium with V4L2 playback - is it ready today?
GPU Accelerated Virtual Desktop Infrastructure (VDI) on OpenStack
DRIVE PX 2
GPU Acceleration for Containers on Intel Processor Graphics
How Igalia Is Driving Innovation In Embedded Systems With Open Source Technol...
Porting Tizen-IVI 3.0 to an ARM based SoC Platform
Deep Learning on ARM Platforms - SFO17-509
Porting Android
MOVED: RDK/WPE Port on DB410C - SFO17-206
XPDS13: Xen in OSS based In–Vehicle Infotainment Systems - Artem Mygaiev, Glo...
Embedded Recipes 2019 - Making embedded graphics less special
Microsoft RDS, VDI, RemoteFX and what Service Pack 1 will bring us

More from Linaro (20)

PDF
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
PDF
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
PDF
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
PDF
Bud17 113: distribution ci using qemu and open qa
PDF
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
PDF
HPC network stack on ARM - Linaro HPC Workshop 2018
PDF
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
PDF
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
PDF
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
PDF
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-100K1 - George Grey: Opening Keynote
PDF
HKG18-318 - OpenAMP Workshop
PDF
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
PDF
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
PDF
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
PDF
HKG18-TR08 - Upstreaming SVE in QEMU
PDF
HKG18-113- Secure Data Path work with i.MX8M
PPTX
HKG18-120 - Devicetree Schema Documentation and Validation
PPTX
HKG18-223 - Trusted FirmwareM: Trusted boot
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Bud17 113: distribution ci using qemu and open qa
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-100K1 - George Grey: Opening Keynote
HKG18-318 - OpenAMP Workshop
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-113- Secure Data Path work with i.MX8M
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-223 - Trusted FirmwareM: Trusted boot

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Electronic commerce courselecture one. Pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation theory and applications.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
KodekX | Application Modernization Development
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
Cloud computing and distributed systems.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Network Security Unit 5.pdf for BCA BBA.
Electronic commerce courselecture one. Pdf
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation theory and applications.pdf
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25 Week I
CIFDAQ's Market Insight: SEC Turns Pro Crypto
“AI and Expert System Decision Support & Business Intelligence Systems”
Mobile App Security Testing_ A Comprehensive Guide.pdf
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
MYSQL Presentation for SQL database connectivity
KodekX | Application Modernization Development
Reach Out and Touch Someone: Haptics and Empathic Computing
Diabetes mellitus diagnosis method based random forest with bat algorithm

BKK16-315 Graphics Stack Update

  • 1. Presented by Date Event Graphics Stack Update Jammy Zhou March 9, 2016 BKK16
  • 2. Agenda ● X11/Wayland/Android graphics overview ● Mali and Adreno driver status ● Linaro effort around graphics ● Discussion and Q&A
  • 3. Wayland/X11 Graphics Architecture Display Engine Graphics Engine DRM/KMS KMS driver fbdev GPU driver dma_buf TTM libdrm libdrm_xxx Vendor IF library DDX Xserver EGL OpenGL ES DRM X11 Clients Wayland Clients Window Manager GBMXWayland Wayland Server X11 Toolkits (GTK, QT...) Wayland fbdev Hardware Kernel User space components Applications RAM
  • 4. Android Graphics Architecture FB SurfaceFlinger Android Applications HWUI/Skia libsync ION OpenGL ES Display Engine Graphics Engine fbdev GPU driver libdrm_xxx Vendor IF library Hardware Kernelsync libdrm DRM/KMS KMS Driver EGL Activity Manager Window Manager HWC KMS libion gralloc FB DRM RAM ION Framework & Libraries Applications dma_buf
  • 5. Mali Driver Status ● Proprietary driver from ARM ○ Open source components ■ Kernel mode driver ■ UMP user space library ■ DDX driver (xf86-video-mali, fbdev/UMP based, no 2D HW acceleration) ■ Gralloc ○ Binary user space drivers ■ EGL (DRI2 based for X11) ■ OpenGL ES (ES3.1 support only for Midgard) ■ OpenCL and Renderscript (Midgard only) ■ No GLX and OpenGL support ■ DDK r5p1 or newer should be used for Wayland ● Open source driver from community (lima and tamil)
  • 6. Adreno Driver Status ● Proprietary driver from Qualcomm ○ Open source components ■ Kernel mode driver (kgsl) ■ xf86-video-msm DDX driver ○ Binary user space drivers (EGL, OpenGL ES, Renderscript, OpenCL, gralloc, etc) ● Open source driver from community (freedreno) ○ Kernel mode driver (msm.ko) ■ First merged in kernel 3.12 for Adreno 2xx/3xx support ■ Adreno 4xx support added in kernel 3.19 ○ libdrm_freedreno (support both msm and kgsl kernel mode drivers) ○ mesa/gallium (msm_dri.so) ■ OpenGL 3.1 and OpenGL ES3.0 for A3xx/4xx (OGL 1.4 and ES2.0 for A2xx) ■ No OpenCL support ○ xf86-video-freedreno DDX driver (support both fbdev and KMS display driver) ■ 2D HW acceleration with XA state tracker of Gallium
  • 7. LHG - Wayland and Android ● Wayland/weston enablement on member platforms ● Metrological WPE (WebkitForWayland) ● CEF support in Linaro RDK (Ozone-Wayland, etc) ● OpenSDK to support V4L2, DRM/KMS, GStreamer and Wayland ● BKK16-209: Chromium V4L2 playback - is it ready today? ● Demo: LHG OE Chr-Wayland/Weston on DB & HiKey
  • 8. LMG - Android ● DRM/KMS support for hwcomposer/gralloc ● ION and ADF upstreaming ● GPGPU support (OpenCL, etc) ● BKK16-202: LMG Lightning Talks ● BKK16-403: Android HAL Consolidation Status
  • 9. 96Boards RPB Support ● Mali kernel mode driver is integrated in HiKey Linux RPB (no upstream) ● Kirin 620 ADE KMS driver is integrated in HiKey Linux RPB (upstream is ongoing) ● xf86-video-armsoc is used by HiKey Linux RPB now (no 2D HW accel, dma-buf based) ● The freedreno driver has been enabled for DB410c AOSP RPB ● The wayland/weston support will be enabled soon for OE/Yocto Linux RPB as well as Debian Linux RPB (once there is good driver support) ● OpenCL is not supported yet in the RPBs 96Boards (SOC/GPU) OGL ES OCL Linux/X11 AOSP HiKey (Kirin 620/Mali-450MP4) 2.0 N/A binary binary DB410c (Snapdragon 410/Adreno 306) 3.0 1.1 EP freedreno binary/freedreno Bubblegum96 (S900/PowerVR G6230) 3.1 1.2 binary(*) binary(*) Andromeda (IAP140/Vivante GC7000UL) 3.1 1.2 binary(*) binary(*) (*) to be confirmed
  • 10. Discussion ● Wayland/X11 ○ GBM library for DRM backend of weston (decouple gbm from mesa or use minigbm?) ○ Mali DDK support for GBM and Wayland platforms (similar for other proprietary drivers) ○ More advanced wayland display servers enablement on ARM (gnome-shell, kwin, etc) ○ Toolkits/apps porting and optimization on ARM (GNOME, QT, SDL, gstreamer, etc) ○ Xwayland support with xf86-video-modesetting and glamor ● APIs ○ Vulkan ○ OpenCL/OpenVX/OpenCV ○ GLVND for Linux ● Use cases ○ VR/AR, AI and deep learning, wearables and IoT, etc ● Other ○ GPU virtualization (VirGL renderer support from QEMU 2.5/Mesa 11.1/kernel 4.4) ○ Discrete graphics card support on ARM platform
  • 11. Vulkan briefing ● New API spec from Khronos for graphics and compute, unified for desktop, mobile, console and embedded ● Vulkan 1.0 announced on Feb 16th together with WSI extension and SPIR-V ● Designed to be implementable on hardware with OpenGL ES3.1 or OpenGL 4.x capability ○ ARM Mali: Midguard (T6xx/T7xx/T8xx) and later ○ Qualcomm Adreno: 4xx, 5xx and later ○ Imagination PowerVR: Series 6 and later ● More development work to be done for Linux and Android ○ Driver enablement by GPU vendors and community ■ Intel Anvil open source Vulkan driver for mesa is a good reference ■ DRI3 is required for X11 WSI support ■ SPIR-V support, Vulkan synchronization primitives, etc ○ SDK and tools support (LunarG SDK for Linux, etc) ○ Middleware and toolkit support (Qt Vulkan integration, etc)