-
Notifications
You must be signed in to change notification settings - Fork 179
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
Recompile libdxcompiler.so to remove depencency on libtinfo.so #47
Conversation
emove depencency on libtinfo.so
Thanks for pointing this out and showing how to fix the issue! Building it on Linux looks way easier than on Windows xD Hmm... maybe it would be possible to set up some automated CI process to do this because you're quite right about checking in fat binaries. Regarding Also, is the binary in this PR a fully stripped one? That's quite a big size difference :o |
I copied the CI for DirectXShaderCompiler and compiled it clang instead of gcc and that resulted in a bit of a size reduction:
I did also check this package just now and it does provide |
None of the binaries (DirectXShaderCompiler CI artifacts or compiled by me) are stripped but that's an option if the size really matters |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okays, this size is quite reasonable! Thanks! Will merge after testing on Arch 🙂
Upstream also disabled microsoft/DirectXShaderCompiler@47f3137 (I'm randomly looking around the Kajiya repo for DXC changes/updates after receiving a bug report on both these issues on the |
🥳 🎉 that's great, thanks for letting us know ❤️ Sounds like an upgrade is in order! |
Yup, as long as your shaders keep compiling... 😬 😰 |
@h3r2tic I see you already started pushing to https://github.com/EmbarkStudios/kajiya/compare/hassle-rs-10, nice stuff (but I don't recall us switching all our ternary if's to |
Hah, nice spying @MarijnS95, and thanks for the tip xD I also checked by running ... how did you manage to dodge switching your ternary operators to |
Maybe you didn't use ternary with vector types? |
Ouuu, our RayTracing app ran on Steam Deck... half a year ago... in fact I found a
What error are you getting? We just... didn't have to do it... but we are on microsoft/DirectXShaderCompiler@0392e60 from Nov 11th so it may have been a more recent change that causes it.
Just checked and we definitely are. Will keep you posted after pulling in a more recent version, we want to get rid of |
Wat. I'm getting horrible crashes as soon as I even try and trace shadows 😂 Depending on the
Don't remember the exact text, but basically the error literally told me to use Ah, there we go, same as here: GPUOpen-Effects/FidelityFX-FSR#28
Hah, then prepare for the same fun I had! |
Hah, I'll keep you posted whether I can get anything to run... But we do run on phones (Samsung Xclipse 920) too already though 😬 (probably need a fresh issue/discussion for this instead of sidetracking here).
Ooooeh, using a vector in the conditional part; I only see us using vectors in the true/false expression bit which should still be fine 😬
No worries about fun. DXC will give me plenty. We're already starting with:
https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/interlockedadd the third argument is clearly annotated as |
Sounds good, thanks :D
Yeah, vectors as the conditional part was the fun thing about the old ternary :P
That's weird indeed! At least I didn't get any of those 🙈 |
Closing in favor of #76 |
Nice! Fortunately we're already working with a friendly DXC developer to get the issue fleshed out :) |
At the moment, attempting to run kajiya on my arch linux install (on #46) fails with:
Running
ldd libdxcompiler.so
lists the following dynamic library dependencies:The missing one,
libtinfo.so.5
is not installable on arch. Thecore/ncurses
package (version6.3-1
) providedlibtinfo.6
, but this newer version is not compatible. This library is literally only used for theterminalHasColors
function and is useless inlibdxcompiler.so
which should not be printing anything. The solution to this is to either bundlelibtinfo.5
which is gross, or to recompilelibdxcompiler.so
without terminfo like so:The generated library no longer depends on it:
The compiled library is a bit bigger, but I believe that is because the original one was compiled on Windows or something along those lines.
Instead of merging in random binaries it might be better for someone at Embark to recompile it themselves.