Skip to content

Conversation

@yuto-trd
Copy link
Member

Introduce Vulkan support alongside Metal for improved graphics rendering. No breaking changes introduced.

…e, VulkanDevice, and VulkanCommandPool classes for improved structure and resource handling
…e and VulkanPhysicalDeviceInfo for improved GPU handling and resource management
@yuto-trd yuto-trd marked this pull request as ready for review December 25, 2025 14:47
Copilot AI review requested due to automatic review settings December 25, 2025 14:47
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR integrates Vulkan support alongside Metal to provide improved graphics rendering capabilities across multiple platforms. The implementation introduces a unified graphics backend abstraction layer that allows the application to seamlessly work with either Vulkan or Metal depending on the platform.

Key Changes:

  • New graphics backend abstraction with IGraphicsContext and ISharedTexture interfaces supporting both Vulkan and Metal
  • Comprehensive Vulkan implementation including instance, device, command pool, and texture management
  • GPU selection UI in settings with automatic and manual selection options
  • Removal of OpenGL/GLFW dependencies and ILGPU packages in favor of Vulkan

Reviewed changes

Copilot reviewed 75 out of 76 changed files in this pull request and generated 25 comments.

Show a summary per file
File Description
src/Beutl.Engine/Graphics/Backend/*.cs Core Vulkan and Metal backend implementation including context factory, device management, and texture handling
src/Beutl/ViewModels/SettingsPages/*.cs GPU selection and information display in settings UI
src/Beutl/Pages/SettingsPages/*.axaml UI changes for GPU selection dropdown and Vulkan version display
src/Beutl.Language/*.resx Localization strings for GPU settings in English and Japanese
src/Beutl.Configuration/GraphicsConfig.cs New configuration class for storing selected GPU preference
src/Beutl.Engine/Graphics/Rendering/RenderTarget.cs Updated to use new graphics backend abstraction with texture creation
src/Beutl.Engine/Graphics/FilterEffects/*.cs Added canvas.Clear() calls for proper Vulkan texture initialization
Directory.Packages.props Updated dependencies: added Silk.NET Vulkan packages, removed ILGPU and OpenTK.GLFW
Files not reviewed (1)
  • src/Beutl.Language/SettingsPage.Designer.cs: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Contributor

No TODO comments were found.

@github-actions
Copy link
Contributor

Code Coverage

Package Line Rate Branch Rate Complexity Health
Beutl.Operators 3% 0% 140
Beutl.Core 34% 32% 3144
Beutl.Engine 26% 23% 10169
Beutl.Threading 100% 94% 118
Beutl.Utilities 73% 67% 358
Beutl.Configuration 39% 19% 288
Beutl.Extensibility 2% 0% 105
Beutl.ProjectSystem 17% 10% 1867
Beutl.Language 0% 0% 663
Summary 26% (10616 / 40143) 24% (2822 / 11527) 16852

Minimum allowed line rate is 0%

@yuto-trd yuto-trd merged commit f371f01 into main Dec 25, 2025
4 checks passed
@yuto-trd yuto-trd deleted the feat/vulkan branch December 27, 2025 16:27
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