-
-
Notifications
You must be signed in to change notification settings - Fork 967
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
Use LZ4 as external dependency #1566
Conversation
Looks good. Have you tested if it's actually compatible or breaking on compiled assets (build game before the change, copy generated assets from output, rebuild after the change, use copied assets and run game)? |
I don't know why this happened, but now is working perfectly fine. |
c400d5b
to
fb373aa
Compare
@manio143 I've tested the changes on a couple of projects and I didn't notice any regression. However, our LZ4Stream implementation must stay, because as it turned out K4os version is not quite complete :/ (e.g doesn't have an implementation of the Seek method or doesn't remember current position value). Otherwise I guess is fine |
Thank you for checking! Merging this PR is a great step towards removing native compilation in Stride. |
After sync'ing I ran into this. Something I did with the nuget sources seemed to resolve it though, and I'm having trouble reproducing it now.
The issue only occurred when starting a game, not while building. I'm using the local stride dev package source for my game. Since I hit this first thing after sync'ing I'm betting others will too. I'm still looking into it. |
Well, I did these steps:
I still can't seem to reproduce the error. |
If the assembly load error occured at game run it suggests at the time the dll wasn't copied over and rebuilding should have fixed it. I'm not sure why but I have a hunch that it's a caching issue around NuGet - not having a repro we can't pin it down, but it shouldn't occur for users once the new packages are released as they will be downloading fresh packages with an increased version, this skipping the cache. |
I fixed the issue by copying: 'C:\Users\x.nuget\packages\k4os.compression.lz4\1.2.16\lib\net5.0\K4os.Compression.LZ4.dll' into 'C:\Users\x.nuget\packages\stride.core.serialization\4.1.0.1\lib\net6.0'. Steps to reproduce:
At this point, the build error should occur. The main issue is the K4os.Compression.LZ4.dll isn't being packed with Stride.Core.Serialization. |
I see that missing DLL is a dependency of the Legacy package being referenced - could it be there's something blocking transitive dependency inclusion? But why would the issue get fixed some of the time 🤔 |
PR Details
This PR removes LZ4 compression algorithm from Stride repo and uses as a external package.
Related Issue
#1394
Types of changes
Checklist