https://bugs.winehq.org/show_bug.cgi?id=50878
Bug ID: 50878 Summary: Neon Noir Benchmark crashes on Wine-Staging before showing the first scene. Product: Wine-staging Version: 6.3 Hardware: x86-64 URL: https://www.cryengine.com/marketplace/product/neon-noi r OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: lvb.crd@protonmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: ---
Since Wine-Staging-6.3 it silent crash after clicking to start benchmark button and loading but before scene rendering after black screen. I'm already done bisecting. The problem appeared after this commit: https://github.com/wine-staging/wine-staging/commit/750044c08c49c7a117fcc911506a198969379144
Also I did some more tests on current Wine-Staging and found that preventing the 0035 patch from applying (and all subsequent ones) - helps. While if you add patch 0035 applying, but prevent the applying of 0036 and subsequent - the problem appears again.
0035 patch: "ntdll: Treat undecoded unix symlinks as NT symlinks." https://github.com/wine-staging/wine-staging/blob/7b199110bb31100c78aa3ffb753d093e1edcc607/patches/ntdll-Junction_Points/0035-ntdll-Treat-undecoded-unix-symlinks-as-NT-symlinks.patch
The benchmark is free, but requires registering an account and a separate launcher to download it (it will not be necessary to run it, you can simply copy the Neon_Noir_Ray_Tracing_Benchmark_2527 directory with it inside the fresh prefixes).
On the site need only add the benchmark to your account https://www.cryengine.com/marketplace/product/neon-noir
For launcher need use `WINEDLLOVERRIDES="libglesv2=d"` because Bug 44985 and `winetricks -q mfc140` need for benchmark itself Bug 44856 Bug 48866
It also seems this application requires `d3d11-Deferred_Context` from Staging, but the strange thing is, on vanilla Wine without it, it crashes in the same place and from the outside it seems that the behavior is identical. Please, check it. And can anyone reproduce it.
https://bugs.winehq.org/show_bug.cgi?id=50878
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |erich.e.hoover@gmail.com Keywords| |download
--- Comment #1 from Zebediah Figura z.figura12@gmail.com --- Thanks for the bisect, adding Erich to CC.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #2 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- (In reply to Dmitry Skvortsov (Iglu47) from comment #0)
(it will not be necessary to run it, you can simply copy the Neon_Noir_Ray_Tracing_Benchmark_2527 directory with it inside the fresh prefixes).
Sorry, I just noticed and I wrote the significant thing wrong. If "copy" application directory (so that these files also take up disk space), then the problem does not arise (apparently, since there are no symbolic links). However, if create the soft symbolic link to the application directory that is outside the prefix (the Z disk was described for the prefix), only then does the crash occur.
https://bugs.winehq.org/show_bug.cgi?id=50878
Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Neon Noir Benchmark crashes |Neon Noir Benchmark |on Wine-Staging before |(through symlink) crashes |showing the first scene. |on Wine-Staging before | |showing the first scene.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #3 from Erich E. Hoover erich.e.hoover@gmail.com --- (In reply to Dmitry Skvortsov (Iglu47) from comment #2)
... Sorry, I just noticed and I wrote the significant thing wrong. If "copy" application directory (so that these files also take up disk space), then the problem does not arise (apparently, since there are no symbolic links). However, if create the soft symbolic link to the application directory that is outside the prefix (the Z disk was described for the prefix), only then does the crash occur.
Would you mind stepping me through exactly what you have here? It sounds like you're saying that you have two wine prefixes, one for downloading utilities and another for testing where you have a symlink from the second one to the first one. If that's the case (or something similar), could you tell me exactly what your symlink is?
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #4 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- (In reply to Erich E. Hoover from comment #3)
Would you mind stepping me through exactly what you have here? It sounds like you're saying that you have two wine prefixes, one for downloading utilities and another for testing where you have a symlink from the second one to the first one. If that's the case (or something similar), could you tell me exactly what your symlink is?
Yes, approximately it is, only the directory with the application itself remained from the first prefix.
original: some_foldder/Neon_Noir_Ray_Tracing_Benchmark_2527 link: some_foldder/prefix/drive_c/Program Files (x86)/Crytek/CRYENGINE Launcher/Crytek/Neon_Noir_Ray_Tracing_Benchmark_2527 commands for the creation: cd "some_folder" mkdir -p "prefix/drive_c/Program Files (x86)/Crytek/CRYENGINE Launcher/Crytek" ln -sr Neon_Noir_Ray_Tracing_Benchmark_2527 "prefix/drive_c/Program Files (x86)/Crytek/CRYENGINE Launcher/Crytek" where WINEPREFIX="some_foldder/prefix"
A soft symbolic link is actually usually only used in cases where need to do a lot of testing of different versions of Wine with the fresh prefix each time (just small QoL thing at work with 50-sh GB applications) and such the situation can be easily avoided by creating, for example, the drive D by standard means, instead of manually creating soft symbolic links by users. So in fact it might be necessary to clarify here whether this is consistent with how that is supposed to work and is there really a problem or the report can be closed.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #5 from Erich E. Hoover erich.e.hoover@gmail.com --- This should be fixed by staging commit 8e5c8cc63b57dbe9b2cf2ff075c12648845b22fa, would you mind retesting?
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #6 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- (In reply to Erich E. Hoover from comment #5)
This should be fixed by staging commit 8e5c8cc63b57dbe9b2cf2ff075c12648845b22fa, would you mind retesting?
Sorry, I should have written this before. I was testing this already about two weeks ago when I noticed this commit. I found that more things started working correctly, but the behavior of this problem persists, and still preventing part of this patchset from applying fixes the initially described problem.
I think I will retest on 8e5c8cc63b57dbe9b2cf2ff075c12648845b22fa or a newer version (if there are no some changes that interfere with the work of this application again).
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #7 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- Created attachment 70065 --> https://bugs.winehq.org/attachment.cgi?id=70065 wine-staging-6.8.r2.g8e5c8cc6.log (through symlink) WINEDEBUG=""
I made fresh builds of wine-staging-6.8.r2.g8e5c8cc6 and wine-staging-6.9.r4.g34afd80e: if the main application folder in prefix is a soft link - the application crashes.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #8 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- I just noticed https://bugs.winehq.org/show_bug.cgi?id=50770#c13 and tried to create a symlink where an absolute path is used instead of a relative one - in this case, the initially described problem does not occur.
I used this time: ln -s '/home/i47/.games-dir/cry_neon_test/Neon_Noir_Ray_Tracing_Benchmark_2527' '/home/i47/.games-dir/cry_neon_test/pfx/drive_c/Program Files (x86)/Crytek/CRYENGINE Launcher/Crytek/Neon_Noir_Ray_Tracing_Benchmark_2527'
https://bugs.winehq.org/show_bug.cgi?id=50878
Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Neon Noir Benchmark |Neon Noir Benchmark |(through symlink) crashes |(through relative symlink) |on Wine-Staging before |crashes on Wine-Staging |showing the first scene. |before showing the first | |scene.
https://bugs.winehq.org/show_bug.cgi?id=50878
Erich E. Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |8e5c8cc63b57dbe9b2cf2ff075c | |12648845b22fa
--- Comment #9 from Erich E. Hoover erich.e.hoover@gmail.com --- (In reply to Dmitry Skvortsov (Iglu47) from comment #8)
I just noticed https://bugs.winehq.org/show_bug.cgi?id=50770#c13 and tried to create a symlink where an absolute path is used instead of a relative one
- in this case, the initially described problem does not occur.
I used this time: ln -s '/home/i47/.games-dir/cry_neon_test/Neon_Noir_Ray_Tracing_Benchmark_2527' '/home/i47/.games-dir/cry_neon_test/pfx/drive_c/Program Files (x86)/Crytek/CRYENGINE Launcher/Crytek/Neon_Noir_Ray_Tracing_Benchmark_2527'
Thanks Dmitry, that sounds like this particular issues is solved then. I'm trying to decide the best way to fix the other issue and hope to have it resolved soon.
https://bugs.winehq.org/show_bug.cgi?id=50878
Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Neon Noir Benchmark |Neon Noir Benchmark |(through relative symlink) |(through symlink) crashes |crashes on Wine-Staging |on Wine-Staging before |before showing the first |showing the first scene. |scene. |
https://bugs.winehq.org/show_bug.cgi?id=50878
Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|FIXED |---
--- Comment #10 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- Sorry, it's been a while, but the initially described issue is still present. As far as I understand, there were some ideas on how to solve this problem, but I didn't want people to come here and see the "fixed" mark. In addition, I wanted to track the status of this problem here.
Hope for understanding, thanks you.
https://bugs.winehq.org/show_bug.cgi?id=50878
Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Neon Noir Benchmark |Neon Noir Benchmark |(through symlink) crashes |(through relative symlink) |on Wine-Staging before |crashes on Wine-Staging |showing the first scene. |before showing the first | |scene.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #11 from Erich E. Hoover erich.e.hoover@gmail.com --- (In reply to Dmitry Skvortsov (Iglu47) from comment #10)
Sorry, it's been a while, but the initially described issue is still present. As far as I understand, there were some ideas on how to solve this problem, but I didn't want people to come here and see the "fixed" mark. In addition, I wanted to track the status of this problem here.
Hope for understanding, thanks you.
What version did you test with? I would expect this issue to be fixed with the other changes that have been made (particularly, now we're reporting unix symlinks as WSL unix symlinks).
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #12 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- (In reply to Erich E. Hoover from comment #11)
What version did you test with? I would expect this issue to be fixed with the other changes that have been made (particularly, now we're reporting unix symlinks as WSL unix symlinks).
I tried the latest set of patches applied to Wine these days https://github.com/wine-staging/wine-staging/commit/c91c63a5da1ab7f885bdafb4...
As a workaround I use to creating symlinks with absolute paths - it's helps. Relative paths in symlinks didn't work since the version mentioned in this report and so far.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #13 from Erich E. Hoover erich.e.hoover@gmail.com --- (In reply to Dmitry Skvortsov (Iglu47) from comment #12)
(In reply to Erich E. Hoover from comment #11)
What version did you test with? I would expect this issue to be fixed with the other changes that have been made (particularly, now we're reporting unix symlinks as WSL unix symlinks).
I tried the latest set of patches applied to Wine these days https://github.com/wine-staging/wine-staging/commit/ c91c63a5da1ab7f885bdafb4dbc0da5a49a8a3af
As a workaround I use to creating symlinks with absolute paths - it's helps. Relative paths in symlinks didn't work since the version mentioned in this report and so far.
Huh, that's very strange. I'll try to take a look at this as soon as I can, I have a little bit of a backlog at the moment.
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #14 from Erich E. Hoover erich.e.hoover@gmail.com --- After taking a deeper look, this ended up being a pretty obvious mistake on my part. Please try wine-staging 6.23 (should be fixed by 24753f8756ff982ee20cbb98bda79b15c8c3d57d).
https://bugs.winehq.org/show_bug.cgi?id=50878
--- Comment #15 from Dmitry Skvortsov (Iglu47) lvb.crd@protonmail.com --- (In reply to Erich E. Hoover from comment #14)
After taking a deeper look, this ended up being a pretty obvious mistake on my part. Please try wine-staging 6.23 (should be fixed by 24753f8756ff982ee20cbb98bda79b15c8c3d57d).
I don't know what exactly the problem was, but I confirm that the initially discribed problem (with relative symlinks) is gone with 24753f8756ff982ee20cbb98bda79b15c8c3d57d (I did two builds - with this commit and one previous).
Now this topic can be closed. Thanks you, Erich E. Hoover.
https://bugs.winehq.org/show_bug.cgi?id=50878
Erich E. Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED
--- Comment #16 from Erich E. Hoover erich.e.hoover@gmail.com --- Great, the problem here was that when I was detecting whether the link target was a file or a folder that it was using the path from readlink instead of just using the original path and following the link:
p = tmp; reparse_tag = IO_REPARSE_TAG_LX_SYMLINK; if (flags && *p != '/') *flags = SYMLINK_FLAG_RELATIVE; - if (!stat( tmp, &st )) + if (!fstatat( fd, unix_src, &st, 0 )) dir_flag = S_ISDIR(st.st_mode); else dir_flag = FALSE; /* treat dangling symlinks as files */
That means that when it was working with a relative path that it was decoding the path from the current working directory instead of from the location of the link.
https://bugs.winehq.org/show_bug.cgi?id=50878
Erich E. Hoover erich.e.hoover@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #17 from Erich E. Hoover erich.e.hoover@gmail.com --- Closing bug, fixed in wine-staging 6.23