Skip to content

Add support for Venus GPU mode - #3167

Open
valentineburley wants to merge 5 commits into
google:mainfrom
valentineburley:venus
Open

Add support for Venus GPU mode#3167
valentineburley wants to merge 5 commits into
google:mainfrom
valentineburley:venus

Conversation

@valentineburley

@valentineburley valentineburley commented Sep 10, 2026

Copy link
Copy Markdown

Based on the original implementation for Mesa CI by @ao2.

This adds a new GPU mode using the Venus Vulkan driver, ANGLE, SkiaVK,
and drm_hwcomposer, utilizing the cross-domain context type.

It supports Intel (both i915 and xe) and Qualcomm (msm) platforms, using
ANV and Turnip as the host Vulkan drivers.

Bug: b/549217582
Test: cvd create --gpu_mode=venus

The first commit fixes kHostVulkanIsNonSoftwareRenderer on internal GPUs.

The following three patches add the virglrenderer, venus_protocol, and minigbm dependencies.

The final commit introduces the new GPU mode.

Previously, graphics_detector only categorized discrete GPUs as
TYPE_DISCRETE_GPU and tagged all other devices (including integrated
GPUs) as TYPE_OTHER.

As a result, kHostVulkanIsNonSoftwareRenderer incorrectly rejected
hosts with integrated GPUs as having no non-software Vulkan driver.

Bug: b/549217582
These dependencies will be used by the upcoming Venus GPU mode.

Bug: b/549217582
This dependency will be used by the upcoming Venus GPU mode.

Bug: b/549217582
These dependencies are required by the upcoming Venus GPU mode.

Bug: b/549217582
Based on the original implementation for Mesa CI by @ao2.

This adds a new GPU mode using the Venus Vulkan driver, ANGLE, SkiaVK,
and drm_hwcomposer.

It supports Intel (both i915 and xe) and Qualcomm (msm) platforms, using
ANV and Turnip as the host Vulkan drivers.

Bug: b/549217582
Test: cvd create --gpu_mode=venus
Comment thread base/debian/control
libcap-dev,
libclang-dev,
libcurl4-openssl-dev,
libepoxy-dev,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed that the change in crosvm_manager.cpp has {"androidboot.hardware.egl", "angle"},.

IIRC, epoxy was the GL func pointer loader/helper.

Does venus not support running in a VK only mode? How much work would it be to carve that out and remove the epoxy dep?

@jmacnak jmacnak left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(note for internal build: cl/979356492)

CUTTLEFISH_FLAGS_GPU_MODE_GUEST_VIRGL_RENDERER = 8;
CUTTLEFISH_FLAGS_GPU_MODE_NONE = 9;
CUTTLEFISH_FLAGS_GPU_MODE_GUEST_LAVAPIPE = 10;
CUTTLEFISH_FLAGS_GPU_MODE_GUEST_VENUS = 11;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop the GUEST. Looks like some of the other GUEST_ prefixes might just be a copy paste fail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants