Skip to content

Conversation

@akien-mga
Copy link
Member

@akien-mga akien-mga commented Dec 16, 2025

Needs to be tested on all platforms where we support Vulkan, but also D3D12 and Metal for SPIR-V.
Our last sync was almost 2 years ago so this is long overdue, and thus would be good to include in 4.6.

Updated:

  • vulkan headers
  • volk
  • glslang
  • spirv-headers
  • spirv-cross
  • spirv-reflect
  • vk_mem_alloc 3.3.0

TODO:

Supersedes #107773.

Comment on lines +158 to +160
# GNU patch
*.orig
*.rej
Copy link
Member Author

Choose a reason for hiding this comment

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

I'm tired of having to manually delete .orig and .rej files generated by GNU patch (one had managed to slip through in this PR at first), so I'm gitignoring them. I don't expect it to conflict with legit file extensions we'd want to version.

VulkanMemoryAllocator not updated as it's not versioned together with the SDK, and it
often requires more work.

SPIRV-Reflect: Fix reflection code and remove Godot's SC parsing patch.

Co-authored-by: Dario <[email protected]>
@akien-mga akien-mga force-pushed the vulkan-sdk-1.4.335.0 branch from 95c0785 to dc5f635 Compare December 16, 2025 13:40
@akien-mga
Copy link
Member Author

SPIRV-Reflect now also updated to 1.4.335.0 with the upstream specialization constant support thanks to @DarioSamo!

@akien-mga
Copy link
Member Author

I added the VulkanMemoryAllocator update to 3.3.0 in the end, so we can test everything at once.
If you run into issues testing this PR, please try a local revert of the VMA update to see if that solves it.

@akien-mga akien-mga marked this pull request as ready for review December 16, 2025 15:45
@akien-mga akien-mga requested a review from a team as a code owner December 16, 2025 15:45
Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

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

Tested locally on several demo projects (Linux + NVIDIA), this causes reflection probe rendering to break on the 3D platformer demo. It appears as pure black and this error is printed every time a reflection probe is rendered:

ERROR: This render pipeline requires (4) bytes of push constant data, supplied: (16)
   at: draw_list_set_push_constant (./servers/rendering/rendering_device.cpp:4951)
ERROR: The shader in this pipeline requires a push constant to be set before drawing, but it's not present.
   at: draw_list_draw (./servers/rendering/rendering_device.cpp:4984)

This occurs on both Forward+ and Mobile. The issue happens with the first commit only (no VMA update), or when both commits are applied.

@akien-mga akien-mga modified the milestones: 4.6, 4.7 Dec 17, 2025
@akien-mga
Copy link
Member Author

Added a fix by @DarioSamo that should solve the issues @Calinou documented.

There might be more similar cases that will warrant extensive testing, so we decided to postpone this to 4.7. It should still be tested well (can be done now) and merged early in the dev phase, so we have time to be confident that it doesn't create regressions before 4.7 beta.

Copy link
Member

@Calinou Calinou left a comment

Choose a reason for hiding this comment

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

Works great now 🙂

I've also tested it on several other demos like the TPS demo, as well as baking lightmaps.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants