-
Notifications
You must be signed in to change notification settings - Fork 744
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
Enable vulkan for ffmpeg (Windows, Linux, Mac) #1460
Conversation
@saudet I'm not sure but I guess a ndk update is needed. Unfortunately it seems the build script depends on a lot of deprecated features https://github.com/android/ndk/wiki/Changelog-r21 Some of them are no longer available in ndk 22 and above. I tried to play around with it in a different branch but no chance to get OpenSSL build with ndk 26. I already modified the Android patch as I think some of the stuff isn't needed anymore. Even though I update the path to include clang it still complains that clang can't be found. If we can build ffmpeg with vulkan supported with ndk 21 it might not be needed but ndk 21 don't contain the vulkan headers so I think that's the reason why it always complain about vulkan requested but not found. Overall that seems to be not a trivial task and might need a lot of refactoring. |
@saudet not 100% sure yet but I think vulkan decoding features are not fully supported yet by ndk 26 (latest release so far). The ffmpeg configure checks if the vulkan headers version is >= 255 https://github.com/FFmpeg/FFmpeg/blob/34a47b97de9d90a28ead36ca200f6a19a08ce2df/configure#L7216 The highest header version included by ndk 26 is 237. Which means to make it work a ndk upgrade is needed (currently ndk 21 is used) and even then I don't think these features will work as some headers and structures needed for the decoding are simply not yet included. |
So I guess wait for ndk 27? I try some other things out but so far no luck. Including headers from the official latest vulkan SDK is clashing with ndk headers and is producing some weird errors during compilation. Is it possible to split this pull request up and include the Android vulkan support when ndk 27 is released at a later point? At least Mac, Windows and Linux can benefit from vulkan support in the meantime? |
I suppose we can do that, but the builds are not working on Linux, Mac, and Windows, so please fix that |
@saudet isn't that just because ffmpeg.yml workflow is using the the wrong action scripts for the steps bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions I updated the deploy action scripts for windows, ubuntu and macosx to install the vulkan sdk. As this is not done in your action scripts in the branch @actions the builds are failing of course. Just tell me what is the correct approach of how to handle that and I will update my pull request. |
@saudet my pull request adapted the deploy action scripts for ubuntu, windows and macos but I realize now that these changes most likely should be merged to the actions branch first (to include the installation of the vulkan sdk) and afterwards I can merge this branch with the master branch as the builds should no longer fail with the |
Ok, I've temporarily added the changes to the actions branch and it looks like it's building fine, but we might need to bundle some dependencies... Could you show me what |
Of course, I have tested it on my PCs. The dumpbin output is like that
The ouput of the readelf looks like this
You can also check yourself as I have built a test branch based on this branch which is uploading the .m2 folder for windows and linux after a successful build. This way you can just download https://github.com/streamingdv/javacpp-presets/actions/runs/7535219075 |
The build for Triton Inference Server is failing: |
This is the new error? https://github.com/streamingdv/javacpp-presets/actions/runs/7549490774/job/20553572039 Which uncommented line do you mean? Where exactly is the build failing now? |
The lines you added to deploy-ubuntu/action.yml don't work on Jammy. That needs to be fixed |
|
Okay I will check, I have currently a test build running. I guess the fix will look like this
|
Builds seem to pass with the changes mentioned above (ignore the incorrect branch name) https://github.com/streamingdv/javacpp-presets/actions/runs/7553279625 https://github.com/streamingdv/javacpp-presets/actions/runs/7553088153 I will integrate these changes in the pull request and will push it. It has to be adapted in the actions branch as well. Will you do that? |
Thanks! It's working: https://github.com/bytedeco/javacpp-presets/actions/runs/7373605597/job/20569555502 |
This is is an attempt to enable vulkan for ffmpeg.
Unfortuently builds for Android are not passing because of following error
vulkan requested but not found
It seems the Android builds require more configuration in order to find the Vulkan SDK. Other builds seem to work fine and it seems to be enough to install vulkan in the specifc deploy action scripts. Help and feedback is appreciated.