-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
VmaCountBitsSet crashes on older CPUs without support for POPCNT #58463
Comments
Are you sure about this? Can you confirm by doing a local revert of that commit ( Do you use any GDExtension? |
Actually what I wrote makes no sense, because fe95aa2 comes before alpha 3 commit. May be I should do some clean rebuild. |
Still crashed after clean build, however build of alpha 2 was successful, so I will need another day to bisect. |
@akien-mga I have traced my crash to this commit Some observation Curious if there is some difference in build process on Windows. From what I gather default scons build is with |
You need to have Vulkan SDK installed to build with |
Could you test this PR which further updates |
@bruvzg I have installed Vulkan SDK but 1) file it contains named |
It's probably was never tested with There's no special option to set up path. You can use generic |
@akien-mga unfortunately building #58491 didn't help |
I realized what's going on. My 10 years old CPU doesnt have POPCNT instruction. VmaCountBitsSet had been optimized with intrinsic but doesn't actually check
Replacing with latter implementation allowed Godot to launch. |
Out of curiosity, what CPU model do you have? |
@Calinou basically LGA 775 chipset with either Intel Core2Duo E8500 or Core2Quad Q9660 |
It would be good to contribute this fix upstream https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator and then we can update our version (or backport the patch). |
@akien-mga this is merely workaround for me and not a proper fix, I don't wanna users of godot on modern hardware get performance hit, in case vulkan uses it in some double loops in heap allocation algorithm IMHO proper fix would be either separate builds with, like, #define popcnt(v) implementation(v) for uncapable machines, or separate functions for choosing at runtime based on |
See also godotengine/godot-proposals#3932 which would benefit from |
I reported it upstream: GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#245 |
Looks like the fix was merged upstream and we now include that fix in Godot! GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator#245 |
Godot version
4.0.dev (fe95aa2)
System information
Windows 10, Vulkan, Nvidia 750ti (30.0.15.1123)
Issue description
4.0 master crash on startup. Same with --single-window, -e project.
I have bisected and found issue starting from commit
fe95aa2 is the first bad commit
Fix extension registration order.
Example of error message
Steps to reproduce
Minimal reproduction project
Not required
The text was updated successfully, but these errors were encountered: