Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  DLL conflict on Focus 3 builds with libc++_shared.so
#1
Hi.

We are working with Obi rope in XR contexts so have to support multiple VR devices. Obi Rope has been great for the Oculus and we'd love to keep using it with HTC Focus 3.
The problem is that the libc++_shared.so DLL collides with one that's used by the HTC android platform, breaking the build.

Do you know a workaround or deconflicting method that would allow us to keep using it without having to roll our own inferior rope system? Any input at all is much appreciated.

- Dan
Reply
#2
(19-07-2022, 09:26 AM)Dan_Luminous Wrote: Hi.

We are working with Obi rope in XR contexts so have to support multiple VR devices. Obi Rope has been great for the Oculus and we'd love to keep using it with HTC Focus 3.
The problem is that the libc++_shared.so DLL collides with one that's used by the HTC android platform, breaking the build.

Do you know a workaround or deconflicting method that would allow us to keep using it without having to roll our own inferior rope system? Any input at all is much appreciated.

- Dan

Hi Dan,

If you're using the Burst backend (you really should since it's faster, plus the Oni backend got deprecated in 6.2), you can just get rid of the native plugins/libs. See: http://obi.virtualmethodstudio.com/manua...kends.html

kind regards,
Reply
#3
(19-07-2022, 09:31 AM)josemendez Wrote: Hi Dan,

If you're using the Burst backend (you really should since it's faster, plus the Oni backend got deprecated in 6.2), you can just get rid of the native plugins/libs. See: http://obi.virtualmethodstudio.com/manua...kends.html

kind regards,
Thanks, Jose. Is it everything in the plugins directory that can go?
Reply
#4
(19-07-2022, 10:51 AM)Dan_Luminous Wrote: Thanks, Jose. Is it everything in the plugins directory that can go?

Yes, you can remove the entire /Plugins folder. Keep in mind though that if any solver has its backend set to Oni, or if the Burst dependencies are not installed (which will cause Obi to attempt to fallback to the Oni plugins) then the engine will no longer work.

Let me know if you encounter any issues along the way, I'll be glad to assist.

cheers,
Reply
#5
(19-07-2022, 10:54 AM)josemendez Wrote: Yes, you can remove the entire /Plugins folder. Keep in mind though that if any solver has its backend set to Oni, or if the Burst dependencies are not installed (which will cause Obi to attempt to fallback to the Oni plugins) then the engine will no longer work.

Let me know if you encounter any issues along the way, I'll be glad to assist.

cheers,
Switched over to burst and installed burst package and deleted the libs. Was okay error wise getting rid of all except the x86-64 oni libs.  When I force deleted them from file explorer I get dll not found: libOni in something to do with collision solving.
I assume this will happen in builds for other platforms than x84, I don't have the focus hardware on me right now to check though. (working from home and oculus more expensive than oculus). Presumably I'm missing a step or setting and it's falling back on the Oni dlls?
Daniel Korsah - XR Developer, Luminous Group
Reply
#6
(19-07-2022, 01:58 PM)Dan_Luminous Wrote: Switched over to burst and installed burst package and deleted the libs. Was okay error wise getting rid of all except the x86-64 oni libs.  When I force deleted them from file explorer I get dll not found: libOni in something to do with collision solving.
I assume this will happen in builds for other platforms than x84, I don't have the focus hardware on me right now to check though. (working from home and oculus more expensive than oculus). Presumably I'm missing a step or setting and it's falling back on the Oni dlls?

Hi!

Could you share the exact dllnotfound exception you got? Also make sure of the following:

- Make sure the Burst backend is selected on all ObiSolver components.
- Make sure there's no warnings in the ObiSolver inspector (when it's falling back on the dlls, a warning will appear).
- Make sure there's no ObiProfiler components in your scene, as these are designed to profile the Oni backend and will make use of the dlls too.
Reply
#7
One of these once:
Code:
DllNotFoundException: libOni
Obi.OniBackend.CreateSolver (Obi.ObiSolver solver, System.Int32 capacity) (at Assets/Obi/Scripts/Common/Backends/Oni/OniBackend.cs:17)
Obi.ObiSolver.Initialize () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:851)
Obi.ObiSolver.AddActor (Obi.ObiActor actor) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1112)
Obi.ObiActor.AddToSolver () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:348)
Obi.ObiActor.OnEnable () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:323)

And this one ticking constantly:
Code:
DllNotFoundException: libOni
Obi.OniColliderWorld.SetColliders (Obi.ObiNativeColliderShapeList shapes, Obi.ObiNativeAabbList bounds, Obi.ObiNativeAffineTransformList transforms, System.Int32 count) (at Assets/Obi/Scripts/Common/Backends/Oni/OniColliderWorld.cs:40)
Obi.ObiColliderWorld.UpdateWorld (System.Single deltaTime) (at Assets/Obi/Scripts/Common/Collisions/ObiColliderWorld.cs:388)
Obi.ObiUpdater.BeginStep (System.Single stepDeltaTime) (at Assets/Obi/Scripts/Common/Updaters/ObiUpdater.cs:56)
Obi.ObiFixedUpdater.FixedUpdate () (at Assets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:46)

Have this warning on the components but the Burst package is installed in my project.
[Image: XEeRXMH.png]

Thanks for your time.
Daniel Korsah - XR Developer, Luminous Group
Reply
#8
It's definitely falling back to the dlls. The warning in the solver component only appears when the required packages are not installed, this is checked using version defines on the assembly definitions.

Make sure you've installed all required packages (not just the Burst package), and that their versions are above the minimum ones. See the manual:
http://obi.virtualmethodstudio.com/manua...html#burst

Quote:Using the Burst backend requires having the following Unity packages installed:

- Burst 1.3.3 or newer
- Collections 0.8.0-preview 5 or newer
- Mathematics 1.0.1 or newer
- Jobs 0.2.9-preview.15 or newer
Reply
#9
I am having the same issue although not the Vive SDK, but another plugin that has the same library embedded into it. I tried the method in this forum and while I am not getting any warning for Burst, it builds, but then crashes the app every time. Using Unity 2022.3.10.

Any ideas why it would keep crashing once switched correctly to Burst so I don't have this conflicting library?
Reply
#10
(18-10-2023, 04:02 PM)iiidefektiii Wrote: I am having the same issue although not the Vive SDK, but another plugin that has the same library embedded into it. I tried the method in this forum and while I am not getting any warning for Burst, it builds, but then crashes the app every time. Using Unity 2022.3.10.

Any ideas why it would keep crashing once switched correctly to Burst so I don't have this conflicting library?

Hi,

No idea, libc++_shared.so isn't used at all by Burst. Could you share your crash log, so that we may have some info about what's going on?

kind regards,
Reply