-
-
Notifications
You must be signed in to change notification settings - Fork 51
Integrate Vulkan support #1445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate Vulkan support #1445
Conversation
…hanced graphics rendering
…ed resource management
…proved performance
…e, VulkanDevice, and VulkanCommandPool classes for improved structure and resource handling
…d resource cleanup
…e and VulkanPhysicalDeviceInfo for improved GPU handling and resource management
…phics settings management
There was a problem hiding this 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".
There was a problem hiding this 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.
Co-authored-by: Copilot <[email protected]>
|
No TODO comments were found. |
Minimum allowed line rate is |
Introduce Vulkan support alongside Metal for improved graphics rendering. No breaking changes introduced.