-
-
Notifications
You must be signed in to change notification settings - Fork 48
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
FNA3D Trace Suite #72
Comments
A few non-FNA3D-related things I've encountered while going through the catalog: Axiom Verge: Throws an exception when starting. This appears to have been introduced back in FNA 20.02. (Maybe in this commit?) Super Bernie World: The engine calls Flinthook: Won't boot unless you comment out the inner contents of the NLog.Retail.config file. And even then, it crashes (without an error log) after going through the first tunnel on a new profile. Bastion:
As a result of this exception, it destroys the GraphicsDevice (which internally destroys the Vulkan device). However, it apparently tries to recover from this exception by recreating the GraphicsDevice. At which point we get a validation error and a native crash with MoltenVK:
Simply Chess: The game's vertex layouts are incorrectly specified. This is purely an application issue, and it just happens to work by chance with OpenGL. When attempting to enter the gameplay scene with Vulkan, we get an assert and a handful of validation errors, which are summed up as: |
MoltenVK Bugs: Chasm:
Murder Miners:
Reus:
Simply Chess:
|
Axiom Verge, Bastion, and all the Tribute games are all spec violations but they're also SpriteBatch+Shader games, so nothing to see there. Flotilla is also a spec violation but only regarding BloomComponent, that one just needs bloom disabled. Simply Chess has bad shaders and can also be skipped. Kitsune's games can be tested once they update FNA. The only weird one is Owlboy, but that should be fixed with an FNA+FAudio sync. Will need debug symbols if this is not the case. |
Alphabetized the list and split off the spec violations into an optional list. If you know how to work around the spec violation in your local copy, great, if not don't worry about it. Flotilla's the only scary one in the list so far but bloom is easy to disable in that game. EDIT: Patch submitted, sent spec fixes for Bastion as well. Flinthook/MercKings both have working versions in revision control but they're currently unpublished because of NLog issues (read: it sucks and it breaks things, especially Mono). |
Flotilla upstream is now compliant, not sure when it will get pushed in binary form to customers but building master should work with the public content. |
Agh, yeah, it turns out I was just using an outdated version of FAudio. It works fine with 20.12. |
fnalibs update for latest MoltenVK and FNA3D Git revision. |
Looks like the latest MoltenVK is not a fan of FEZ:
|
I'm not seeing this on my machine (MBP 2016, Intel Iris Graphics 540) with the latest LunarG SDK. Is this on NVIDIA? Also, since updating to the latest MVK I'm now seeing this at the start of every game:
Apparently this extension must be enabled if it's supported by the physical device, even if it's unused by the application? What a strange requirement... |
Looks like this is an open issue on the Vulkan-Portability repo so we should probably wait for clarification from Khronos before patching this in. |
Yeah, I've been running on NVIDIA. Maybe the spec violation is the problem for me... I wouldn't object to including it, we don't have any reason not to as far as I know. |
I suppose it's basically a no-op on conformant implementations. |
As of now, Flotilla on Steam is compliant, as are the Linux/macOS builds of Mercenary Kings and Flinthook. |
Ran into a spec violation in Capsized's opening video cutscene:
|
Weird, I didn't touch the Bloom at all for that game... it does come from the 3.1 era though. It's an easy fix either way, I'll look at it alongside any other support issues that come from the update bomb. |
Woops, the spec violation error was actually a false positive: |
Ran a bunch of RADV tests, Flotilla complains about a buffer not being cleaned up on close but that's the only thing I've seen out of the games I own. |
Would it be possible/helpful for someone outside of the FNA dev team to help with these tests? |
the process is currently:
|
Thank you!
(the video warnings also occur in opengl). |
That's accurate since I threw out the XNBs for those, so it looks like Shuggy is set! Thanks for checking it out. |
I've tried updating FEZ's libraries as described by @thatcosmonaut, but I got this upon launching the game:
I'm on Arch Linux, NVIDIA driver 455.45.01 |
FEZ requires the public beta branch to run FNA3D. |
I'm occasionally seeing this when starting up Flinthook on Windows AMD:
Although sometimes the second error is this instead:
|
My guess is that Flinthook is doing some threaded memory set/get somewhere and we need to stick a mutex around the buffer map. |
Actually, refresh my memory - is buffer access supposed to be thread-safe in XNA or is this a spec violation? |
My assumption is that it's thread-safe, but I'd be interested in knowing why a buffer was being accessed twice at the same time. I think Flinthook just uses threads for loading, I don't think it does any uploads twice at the same time. It definitely works elsewhere so we probably need a mutex here. |
It's either a buffer set or the texture staging buffer being accessed simultaneously, we should probably just put a mutex around each of those map/unmaps. |
Found this minor graphical issue in FEZ with the Vulkan backend only. A little above the windmill (in the first level), a horizontal line made of yellow pixels keeps flashing every second: It stops flashing if I keep jumping, or if I'm holding onto the vines on the wall. Video: https://www.youtube.com/watch?v=8NkVDxC8w68 OS: Arch Linux 64-bit |
I tested a bit more, with Ubuntu 20.04, GeForce GTX 1050 Ti, NVIDIA 450.80.02: FEZ: I don’t get the FNA startup log from the other games, so I am not sure if all logs are captured. Game runs fine when windowed and fullscreen, but crashes when switching to borderless window. That happens with OpenGL as well though.
There is a bit of screen tearing at times, but also that happens with OpenGL, too, and I couldn’t say whether it’s worse with Vulkan. Also, FWIW, I can’t reproduce the yellow line above the windmill @felipe19930 reported above. Gnomoria: Crashes on startup both with Vulkan and OpenGL. Flibit said on Discord that this is more or less expected and can be ignored. |
Got a whole bunch of vkMap/Unmap threading errors with Salt & Sanctuary. Hopefully should be fixed by a mutex, as mentioned above for Flinthook. |
@harpaj The FEZ issue sounds like normal FEZ actually, try changing it to either pixel-perfect or supersampled instead of full aspect in the video settings. The borderless window issue would be SDL if anything, but I'd be surprised if the X11 backend had any real issues there. |
The yellow pixel thingy goes away too by changing the scaling mode to pixel-perfect or supersampled. Great! Another apparent bug I found while testing FEZ: After hitting Alt+Tab, the game will crash instantly, and an error message will show up in
I recorded a video of it crashing, not sure if it's helpful, but here it is anyway: https://www.youtube.com/watch?v=4ZQJSDI3ogY This crash is only reproducible with the Vulkan back-end, however. Here's a video with the OpenGL back-end, where alt-tabbing works just fine: https://www.youtube.com/watch?v=xOZbF5zSeyA I'm not sure if FNA itself is supposed to display an error after that, but I couldn't find anything useful in the log files after that crash. Let me know if there's a proper way to capture it. Thanks |
Woof, that error is from the driver - if a debug binary of FNA doesn't produce errors from the Vulkan validation errors (install those if you haven't already) I would file an issue with NV for sure. |
You know what, let me try to reproduce the crash with the non-Flatpak version of Steam first, just to be sure it's not related to Flatpak itself...
I do have a debug build of FNA.dll, but wouldn't I need debug binaries for fnalibs as well? If that's the case, I'll have to look on how to compile them and stuff. |
Only FNA.dll has to be a debug binary, FNA3D will know to load the validation layers in that situation. |
So yeah, I tested with the non-Flatpak'd version of Steam, and alt-tab works as expected, no crashes whatsoever. Plus, I got nothing useful with the debug build of FNA in the Flatpak'd Steam, so this crash can be discarded as a Flatpak-Steam bug, I guess... So sorry! |
Script to make Axiom Verge testable: https://gist.github.com/flibitijibibo/3aff839641a0063321cb7d645749ff70 |
FNA3D now has tracing support! This means we can capture call streams in a backend-ambiguous manner, making mass testing a lot easier... once we have data. To enable tracing, simply set Once we have good traces of the catalog (we may need a new column...) I can run tests on all hardware and make sure that the renderer is in good shape no matter what we change. |
I've reset the OP to be a checklist for FNA3D traces. Once we have traces of a majority of titles we'll be able to do mass testing on all possible GPU configurations with as little user input as possible. |
The categories below are mostly suggestions, getting long traces is good but getting all of a game's graphical features will be most helpful. Traces should be sent privately to flibit.
To enable tracing, simply set -DTRACING_SUPPORT=ON when configuring, then traces will be dumped to FNA3D_Trace.bin. Traces technically have proprietary data in them, so only send them privately!
TODO:
Optional, ignore these unless you know what you're doing:
The text was updated successfully, but these errors were encountered: