Skip to content

feat(vulkan): add Vulkan compatibility#564

Open
MohannedElfatih wants to merge 1 commit into
clshortfuse:mainfrom
MohannedElfatih:renovk
Open

feat(vulkan): add Vulkan compatibility#564
MohannedElfatih wants to merge 1 commit into
clshortfuse:mainfrom
MohannedElfatih:renovk

Conversation

@MohannedElfatih

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

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 adds Vulkan compatibility across the shader compilation, live reload, resource upgrade, swapchain, render-pass, and devkit inspection paths, while adding/adjusting Smash Bros Ultimate Vulkan shader assets.

Changes:

  • Adds Vulkan shader compilation/disassembly support via Slang/glslang/SPIR-V tooling and CMake integration.
  • Extends shader/resource/render/swapchain utilities for Vulkan descriptor, push constant, render pass, and resource clone behavior.
  • Adds and updates Smash Bros Ultimate Slang shaders and swapchain proxy setup for Vulkan/HDR10 workflows.

Reviewed changes

Copilot reviewed 63 out of 64 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
CMakeLists.txt Adds Vulkan/SPIR-V tools, shader dependency analyzer, SPIR-V build rules, and Vulkan linkage.
src/analyze_shader_deps.cpp Replaces HLSL-only dependency analyzer with generalized shader include dependency analyzer.
src/analyze_hlsl_deps.cpp Removes old HLSL dependency analyzer.
src/addons/devkit/addon.cpp Adds Vulkan shader disassembly/decompilation/resource bind support and live reload API wiring.
src/mods/swapchain_v1.hpp Uses modern API helper and updates usage log formatting.
src/mods/swapchain_v2.hpp Enables Vulkan swapchain format handling and DXGI-only flag formatting.
src/utils/bitwise.hpp Adds HasAnyFlag/MaskFlags and keeps return-value flag mutation helpers.
src/utils/constants.hpp Adds Vulkan-aware shader stage handling for push constants.
src/utils/descriptor.hpp Adds Vulkan dynamic buffer descriptor cloning handling.
src/utils/device.hpp Adds IsModernAPI helper for D3D12/Vulkan checks.
src/utils/draw.hpp Adds Vulkan barriers and render pass load/store setup for swapchain proxy rendering.
src/utils/pipeline.hpp Clones and destroys shader entry point strings with pipeline subobjects.
src/utils/pipeline_layout.hpp Adds Vulkan injection metadata and descriptor table storage.
src/utils/render.hpp Adds Vulkan descriptor layout/table behavior and render-pass load/store handling.
src/utils/resource.hpp Adds Vulkan resource view helpers, minimum dimensions, and view usage normalization.
src/utils/resource_upgrade.hpp Extends resource cloning/view upgrade/copy/clear/barrier behavior for Vulkan.
src/utils/shader.hpp Adds entry point normalization and snapshots Vulkan pipeline layout metadata.
src/utils/shader_compiler_vulkan.hpp Adds Slang/glslang/SPIR-V compile, disassemble, and decompile helpers.
src/utils/shader_compiler_watcher.hpp Adds Slang/GLSL live reload parsing and Vulkan compile dispatch.
src/utils/trace.hpp Updates usage log formatting and skips Vulkan dynamic buffer descriptor trace cases.
src/games/smashbros-ultimate/addon.cpp Enables swapchain v2/resource upgrades and Vulkan-oriented Smash configuration.
src/games/smashbros-ultimate/shared.h Adjusts push constants and HDR10 swapchain preset definitions.
src/games/smashbros-ultimate/swap_chain_proxy_vertex_shader.vert.slang Adds Vulkan/Slang swapchain proxy vertex shader.
src/games/smashbros-ultimate/swap_chain_proxy_pixel_shader.frag.slang Adds Vulkan/Slang swapchain proxy pixel shader.
src/games/smashbros-ultimate/tonemap/eden/tonemap_0xC3859336.frag.slang Adds Eden tonemap shader.
src/games/smashbros-ultimate/outputs/eden/output_0xB9B0AD14.frag.slang Adds Eden output shader.
src/games/smashbros-ultimate/outputs/ryubing/output_0xF3C7B934.frag.slang Updates Ryujinx output include path and disables swapchain pass call.
src/games/smashbros-ultimate/outputs/ryubing/smaa_0xBDDC863F.comp.slang Adds SMAA compute shader.
src/games/smashbros-ultimate/bloom/ryubing/blur_0x6F8D57E9.frag.slang Fixes postprocess include path.
src/games/smashbros-ultimate/bloom/ryubing/blur_0xCC16E269.frag.slang Fixes postprocess include path.
src/games/smashbros-ultimate/bloom/ryubing/blur_0xD09BE0D4.frag.slang Fixes postprocess include path.
src/games/smashbros-ultimate/bloom/ryubing/blur_0xFDF58568.frag.slang Fixes postprocess include path.
src/games/smashbros-ultimate/bloom/ryubing/composite_0x24DE6815.frag.slang Fixes shared include path.
src/games/smashbros-ultimate/bloom/ryubing/mask_0x26FB90CB.frag.slang Switches to postprocess common include and comments unused bindings.
src/games/smashbros-ultimate/bloom/ryubing/upscale_0x574C469C.frag.slang Fixes postprocess include path.
src/games/smashbros-ultimate/bloom/ryubing/upscale_0xA6888F9A.frag.slang Fixes postprocess include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x0E55B73E.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x15E86781.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x184EDCF0.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x1CB1BC38.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x2F28B6FD.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x2FDA3677.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x49A57476.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x5202C090.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x5A9CBEC5.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x62A90A5F.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x65EF2115.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x6663BDB0.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x7525D6CA.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x7BFE0326.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x7FE28868.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x85D1DB2F.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0x8D399572.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xA0D2AFC8.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xA376C572.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xA63F36B1.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xA79248F1.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xA8DC96A8.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xB18FD192.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xB3B47AE5.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xC1FB811D.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xCC8CEB7C.frag.slang Fixes common include path.
src/games/smashbros-ultimate/tonemap/ryubing/tonemap_0xF26A2193.frag.slang Fixes common include path.

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

Comment thread src/utils/descriptor.hpp Outdated
Comment thread src/utils/resource.hpp Outdated
Comment thread src/utils/shader_compiler_watcher.hpp
Comment thread src/utils/shader_compiler_watcher.hpp
@MohannedElfatih MohannedElfatih force-pushed the renovk branch 5 times, most recently from 11f1fd5 to 4c7b582 Compare June 3, 2026 22:25
@MohannedElfatih

Copy link
Copy Markdown
Contributor Author

@clshortfuse I rebased and resolved the issues copilot found

@MohannedElfatih MohannedElfatih force-pushed the renovk branch 9 times, most recently from 9ac8729 to a18bc9e Compare June 16, 2026 12:23
Comment thread src/mods/shader.hpp Outdated
Comment thread src/mods/shader.hpp Outdated
Comment thread src/mods/shader.hpp Outdated
Comment thread src/mods/shader.hpp Outdated
Comment thread src/mods/shader.hpp Outdated
Comment thread src/utils/resource_upgrade.hpp Outdated
Comment thread src/utils/resource_upgrade.hpp Outdated
Comment thread src/utils/shader.hpp Outdated
Comment thread src/utils/shader_compiler_vulkan.hpp Outdated
Comment thread CMakeLists.txt Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 73 out of 74 changed files in this pull request and generated 5 comments.

Comment thread src/utils/resource_upgrade.hpp
Comment thread src/utils/constants.hpp
Comment thread src/utils/resource.hpp
Comment thread src/mods/swapchain_v2.hpp Outdated
Comment thread src/games/smashbros-ultimate/addon.cpp

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 74 out of 75 changed files in this pull request and generated 2 comments.

Comment thread src/utils/descriptor.hpp
Comment thread src/utils/shader_compiler_vulkan.hpp
fix(resource): ensure Vulkan compatibility in buffer-to-texture copy and descriptor updates

feat(render): enhance Vulkan descriptor handling and binding order

feat(vulkan): Correct rebase errors

feat(resource): implement FindViewUpgrade for centralized bitwise check format upgrades

fix(shader): improve descriptor injection handling for Vulkan

feat(shader): Add vulkan descriptor sets support

feat(workflows): add Vulkan SDK setup to CI workflows

fix(cmake): spv-dis depends on spv embed

feat(setup): add Vulkan SDK installation and validation to setup script

fix(cmake): prioritize vulkan sdk slangc over bin

refactor(workflows): update Vulkan SDK setup and remove Slang binaries download
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.

3 participants