-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[vulkan] Reduce the number of descriptor sets used by compiling one entry-point per SPIR-V module #8452
base: main
Are you sure you want to change the base?
Conversation
…t per SPIR-V module. Use an amalgamation for the binary module returned by CodeGen Vulkan Dev. Decode amalgamation and cache each kernel module inside of cache entry.
Hook up dump() and dump_module() methods to debug options.
@steven-johnson Okay, testing this PR on the configs I have locally has everything passing. Can we re-enable testing on the Buildbots to see if there's any device or driver differences I need to catch? |
|
Done, please start testing |
I’ll investigate the three failures:
|
…ut validation errors.
Fixes added for #8466 |
@steven-johnson I believe the GPU lifetime and device memory leak errors are actually caused by the Validation Layer shared lib itself when invoked with ctest --parallel. It doesn't seem very robust at all. It's useful for diagnosing issues when they come up, but it doesn't seem production worthy. I'd like to suggest we remove the VK_INSTANCE_LAYERS env var from the buildbot config, and keep the Vulkan tests enabled. |
Done, change made and buildbot master restarted -- please try again :-) |
So, other than the build failures from LLVM20 interface changes, all the Vulkan tests and apps are actually passing now and reporting "SUCCESS". However, there's exception's being thrown at shutdown that I can't reproduce. |
Ah, wait. I was able to get a build that seems to reproduce the shutdown issues. Investigating now. |
…(from 32MB!). Ensure allocator.collect() is called when context is destroyed.
In order to avoid using up all descriptor sets for complicated pipelines, this PR changes the Vulkan CodeGen such that we encode each Kernel entry-point into it's own SPIR-V module and bind them as separate shaders to avoid running out of resources on constrained devices.
Fixes #8297 , #8296 , #8295 , and #8294. Re-enable performance wrap test #7559 .