-
Notifications
You must be signed in to change notification settings - Fork 417
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
Version 1.3.268 does not load in app for which 1.3.236 loads correctly (Android 12) #7385
Comments
UPDATE: |
my only guess is this is related to the problem in #7340 I guess we slowly built up to many objects in the symbol namespace, this has been fixed on ToT |
@Izhido looking into this more, it seems the reason it is failing is because the path name might be wrong. I can exhibit th same behavior if I change the name of the binary on my local Android test app |
@spencer-lunarg sorry for the way, way, waaay late answer. Now that we know that the path name might be wrong somewhere, what would be the next step towards a fix for this? |
@Izhido no problem, can you confirm you are still having issues with the latest 1.3.280 SDK version |
ok, I should be able to find time this week to take a look at this again and try to get a solution, thanks for pinging this again |
@Izhido I am looking at your error message
And the
Makes it seem like the issue is you just have the path wrong in your building of your app and not an issue of the VVL binary itself So for a normal app that has the layers built inside of it, if you go
|
as explained in the previous comment, from the error message, the issue seems to be the path is looking for a Windows path and not a valid Android path Closing as this doesn't seem like an issue with the Android binary of VVL |
I apologize in advance if what I'm doing right now is in bad taste. I believe, however, that I now have evidence to support the argument that the problem is currently in the build process of the library itself. This was hinted to me by https://stackoverflow.com/questions/47279824/android-ndk-dlopen-failed , after checking for some other people that might have a similar problem. Indeed, by running the readelf command mentioned there in the 1.3.236 and the 1.3.283 versions of the library, this is what I get: The absence of the SONAME entry in the new library actually explains why the old library works, while the new one doesn't. Do you think you could reconsider giving this a new chance? |
UPDATE:
And I was able to confirm that the newly compiled library works fine. (I'm pretty sure that is not the correct way, in this project, of adding the missing linking flags. I'll let you determine the right place for it.) |
@Izhido thanks for keep looking into this Can you make an PR with your purpose fix (I want to see what worked for you) if what works for you still works on our CI machine (and my local devices) then it is a win-win and we can merge it in |
#8116 <--- this is the one. Took me a while to write a proper commit message, but I think I finally managed to do it :D . Please, let me know if anything happens. |
To double-confirm: the newest changes by @spencer-lunarg fixed the issue! (I also discovered, with this, that there is a component called Vulkan Loader that is generating some validation errors. But that will be for another team, another time.) Thank you so much for your effort! |
That doesn't fully explain the situation. Why does it work in LunarG CI but not on your local environment? That issue you linked to is relevant for shared libraries you link to. But you don't link to the validation layers. It's opened via the vulkan loader via dlopen. So soname shouldn't matter AFAIK. |
I noticed there was one recent release (1.3.290), which still exhibits the same behavior. |
sorry, there were concerns on the #8124 and I didn't have time to look into if they are valid or not... going to ping someone who is working more with Android to help confirm this/push it through now... sorry for the delay (I'm not a build expert by any means 😢 ) |
@lzhido: how did you build your app? It looks like you linked the validation layer libraries directly. I think that's the problem. Vulkan loads those at runtime as long as that layer ( |
@DanAlbert : Thank you, so much, for the (definitive) tip! I was indeed linking the validation layers directly to the project. After removing the linking, and when I copied the libs to the jniLibs folder, as stated in the Android docs you posted above, the problem disappeared, completely. Now I'm a bit afraid of what else I've been missing regarding setup on my project - I think I need to review the existing docs a bit more thoroughly. But, for now, this means my original request is not needed anymore. Feel free to close the PR, as it is no longer relevant for the validation layers in Android. Also, thanks everyone for your patience on this issue! |
Glad I could help. You may want to subscribe on #8167, which would let you do this even more simply. |
Environment:
Describe the Issue
Loading version 1.3.268 of the validation layer lib causes an java.lang.UnsatisfiedLinkError at runtime. Latest known version that works, with unchanged settings, is 1.3.236.
Expected behavior
Valid Usage ID
Additional context
The reported error is as follows:
The text was updated successfully, but these errors were encountered: