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
Cyber engine tweaks fails to load on Linux when calling ImGui_ImplDX12_CreateDeviceObjects #660
Comments
Same here. The two lines are repeated over and over in the logs. scripting.log reports all mods are loading successfully but apparently ImGui cannot be initialized. |
As extra information for the bug, or a possible workaround: |
The game is using vkd3d-proton, not dxvk. I was testing it with very recent build of the master branch: https://github.com/HansKristian-Work/vkd3d-proton/commits/master Wine-staging 7.2. @njibhu: Can you please check if it fails for you with 7.2? If it does, it can be some regression in Wine itself. |
Leaving this open if someone wants to help, but none of the devs working on this project run a Linux box and we don't officially support proton, so hopefully someone else can figure it out/provide a fix. |
@Yamashi: Is there some way to increase the logging level, to get more info what exactly is failing? |
This is an error in imgui which is an external library, sadly we don't have a way to add logging to it easily |
Since it's about DX12, it could be vkd3d-proton bug. I can try using some older tag for it. It's this one? https://github.com/ocornut/imgui |
I see it's using d3d compiler. I remember Wine's implementation of it was incomplete. But strange thing that it was working fine with 1.31. |
Just a hunch, may be installing native d3dcompiler_47 might help. |
I'll close this, since it's the usual |
You might want to add such kind of workaround to your wiki somewhere, to help other Linux gamers who use your plugin in case they'll have hard time finding this bug report. |
For those who want to dive into it, supposedly https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/d3dcompiler_47/d3dcompiler_47.spec#l2 And this gui library is doing this:
So it shouldn't be failing here? I'll file a Wine bug. |
Oh, I see it now:
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/d3dcompiler_43/compiler.c#l765 That's unfortunate. So it's not a bug per se, Wine's d3dcompiler just didn't catch up yet. Opened issue if anyone wants to track this: https://bugs.winehq.org/show_bug.cgi?id=51713 |
Thanks for looking into this, been pulling my hair out over this exact issue. |
I added a note on the wiki regarding this, I do not know the proper way of doing this, if someone feels inspired and wishes to write a small explanation on how to install d3dcompiler_47, I would gladly add it to the wiki! |
I installed it with winetricks. Assuming your wine binary is located in $PATH1, and your Wine prefix is $PATH2
Proton users would need to adjust it to use protontricks. Most Wine / Proton users know how to install native library overrides, or at least can figure it out relatively easily. |
Installing d3dcompiler_47 through protontricks did not work for me though, still getting the same error (using whatever versions were used in Proton-7.2-GE-2, presumably 7.2 something). @shmerl, did you install any other libraries besides this one and version? |
No, just that one d3dcompiler_47. Without it you can also observe in wine log that error I pointed out above: |
Looks like https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/d3dcompiler_43/compiler.c#l940 I'll test if it works with Wine 7.5 without native override. |
Just tested it - while the game isn't crashing anymore, you still need the override because the plugin UI isn't working without it either. |
i got it to work with proton GE:
that should be it, if you followed all instructions correctly it should crossedfingers work |
@Yamashi maybe it makes sense to update the documentation? or give me access to the linux section and i'll do it. |
Current Wine has major problems with stack size, so CP2077 is completely broken with it. But that's unrelated to Cyberengine tweaks. It still needs d3dcompiler_47 regardless until built-in Wine HLSL compiler will mature. |
yeah, that would explain why such a weird small sub selection of protons work for me... |
I'd avoid putting such details as using GE and etc. in the wiki for cyberengine tweaks specifically. Wine situation will be pretty much in flux. Just put in the detail that native |
why? it may not be related to CET, but it will still keep people from having success and generate support tickets like this. at least saying that the user should try different versions can improve success greatly. and yes, wine is in flux, which requires constant tinkering/updating. |
Because not everyone is using GE and there are a bunch of variants of Wine. It's not really CET task to prescribe a specific wine version or explain why some Wine is broken for CP2077 proper. Just to give guidance on what is needed for CET itself to work (for any kind of wine), which is basically |
If you want to add something to the wiki, feel free :) Here is a copy: Just dont merge changes ideally without someone looking at it first. Would be good if you went to our Discord and pinged someone when you do changes in #wiki channel (direct invite to the channel: https://discord.gg/DHGB4PgY ) |
ok, forget please that i added a specific version, i'm sorry. but not mentioning something that can help people because they may not have used it before is... bad service. |
I'd say it's good enough to simply give notes on how to install Not everyone is using Steam setup either btw, for example with GOG version of the game. |
there is an extra section for the GoG version... |
@SebiTimeWaster Just tuning in to say that CET works fine for me even with the latest version of GE-Proton ( |
Just to follow up, since Wine started implementing d3dcompiler features. As of Wine 7.16, you still need native |
I just tested Cyberpunk 2077 with CyberEngine Tweaks using built in d3dcompiler_47.dll (Wine 8.19) and it works fine! So there is clearly some progress to it and it doesn't need the native override anymore. |
With latest update to patch 1.5 and CET for 1.5 (v2), it stopped working for me on Linux (wine-staging, vkd3d-proton).
version.dll override exists as before (native, builtin) and it all worked fine with 1.31.
I see this in
cyber_engine_tweaks.log
:Where is this function
ImGui_ImplDX12_CreateDeviceObjects
from? It doesn't seem to be a standard Windows one.The text was updated successfully, but these errors were encountered: