feat: NVIDIA Linux accelerated OSR support#197
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR improves Linux Vulkan accelerated OSR reliability on NVIDIA proprietary drivers by completing the DMA-BUF import + synchronization path between CEF and Godot, and documenting the required nvidia-drm.modeset=1 configuration.
Changes:
- Inject additional Vulkan device extensions on Linux needed for DRM modifier metadata and external/foreign queue ownership handling.
- Update the Linux Vulkan DMA-BUF importer to include explicit plane layouts, image format probing, per-image memory requirements/type selection, and external ownership acquire/release barriers.
- Enable CEF/ANGLE Vulkan feature selection on Linux when Godot is using Vulkan, and document the NVIDIA DRM modeset requirement.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Documents the NVIDIA nvidia-drm.modeset=1 requirement and links to the Vulkan support guide. |
| docs/api/vulkan-support.md | Adds an NVIDIA driver requirement section with bootloader steps and verification command. |
| docs/zh_CN/api/vulkan-support.md | Chinese translation of the NVIDIA driver requirement section with the same setup steps. |
| crates/gdcef/src/vulkan_hook/linux.rs | Extends Linux Vulkan hook to request DRM modifier + queue family foreign extensions when supported. |
| crates/gdcef/src/accelerated_osr/windows/vulkan.rs | Plumbs shared copy-context changes (memory requirements function pointer + external queue family field default). |
| crates/gdcef/src/accelerated_osr/vulkan_common.rs | Adds external-queue acquire/release barriers for DMA-BUF-backed source images during copy submission. |
| crates/gdcef/src/accelerated_osr/linux/vulkan.rs | Implements NVIDIA-focused DMA-BUF import robustness: modifier plane layouts, format probing, per-image memory requirements, and queue-submit locking. |
| crates/cef_app/src/lib.rs | Enables Vulkan-related Chromium/ANGLE feature flags for Linux when the Godot backend is Vulkan. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Fix Linux Vulkan accelerated OSR on NVIDIA proprietary drivers by addressing the full DMA-BUF import path: CEF Vulkan feature selection, required Vulkan extensions, DRM format modifier handling, memory allocation requirements, and external queue ownership transfer.
This makes the Linux Vulkan DMA-BUF path work more reliably on NVIDIA, while documenting the required
nvidia-drm.modeset=1kernel parameter.Before this patch, the Linux OSR support has already been working on Intel and AMD GPUs.
Related Issues
Related to #4
Fixes #162
Changes Made
VK_EXT_image_drm_format_modifierandVK_EXT_queue_family_foreignthrough the Linux Vulkan hook.Testing Performed
cargo xtask bundlesuccessfully on Linux.nvidia-drm.modeset=1enabled.Checklist