-
Notifications
You must be signed in to change notification settings - Fork 499
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
Neovide 0.13.0 panics on Windows 11 #2556
Comments
If you are already building from source, can you run Line 112 in 818ff73
And it should be changed to Well, actually it should be selected to be either 0 or |
You're going to have to give me more details on how to do that. The only way I know how to use |
Never mind. I found the git checkout folder with the source did
|
Thanks, yes, then it's likely what I expected. Can you try changing line 112 in d3d.rs to |
Got the exact same error, in addition to the warning for the unused import, of course. |
Hm, I'm not sure what the problem could be. You could try Starting neovide using |
Yeah, running Neovide with the OpenGL renderer still works. CreateDXGIFactory2(0).expect("Failed to create DXGI factory") with CreateDXGIFactory1().expect("Failed to create DXGI factory") but still got the exact same error. Might I suggest WebGPU at some point in the future? It handles switching platform-specific renderers pretty much automatically (DX, Vulkan, and Metal). I use it for a personal project in I'm working on in Rust and also the C++ lib for work and it's worked on every platform I've tested it on (except MacOS; that's pending, but soon) without any hassle, with the exception of having to handle WASM builds a bit differently for the web; something I suspect isn't a high priority for this project. What's nice about it is you only have to set up one pipeline and wgpu does the rest, as far as translating to platform-specific API calls. |
I think Yes, we are actually in progress of moving to wgpu, but there will be much work to do, since the Skia library we are using right now takes care of all the 2d and text drawing stuff. So, we are building a library that Neovide can use https://github.com/neovide/vide |
I'm somewhat doubtful it's a DX issue on my end, as I'm working from a less-than-month-old fresh (from scratch) Windows 11 install and I've not had any DX-related crashes elsewhere since doing the reinstall. I also just ran dxdiag and no issues came up there. Looking at what it would take to reinstall DX, well, it seems the only method that works on Windows 11 is to reinstall Windows, which I just did not too long ago and definitely have no desire to do again anytime soon. I'm excited about the switch to wgpu, though, and am looking forward to it! I'm gonna leave this issue open for now, if that's all right, to see if any other Windows 11 users end up with the same problem. |
Woo-hoo! I decided to replace all occurrences of CreateDXGIFactory2(0).expect("Failed to create DXGI factory") I don't use git for remote stuff other than Another note: You can't do
with these changes. |
I have this issue as well, and I don’t think it’s anything to do with DX corrupted installs, as I literally switched computers like 2 weeks ago. |
I get the exact same error message on a windows 10 machine with an AMD card. |
Mine is Intel + nvidia. Windows 11. |
I got this after install 0.13 ver..any solutions? |
I will release a fix soon, but for now you can run |
Thanks 😊 |
If there’s any information that could help debug… —opengl is working. |
I just created a PR that works around the issue by crating dxgi 1.2 interfaces instead of 1.4. I'm not very happy to leave it there though, since dxgi 1.4 should be available starting from the very first Windows 10 release. The first step of debugging is probably a dxdiag log, to see what's actually supported on your systems. The next step is to test the Microsoft provided examples
If those does not work, then we should probably report the problem on that repository. My suspicion is that it somehow loads the wrong dll here And if it does, I guess we just have to try to find out the differences between our code and theirs. That could also be verified by https://learn.microsoft.com/en-us/sysinternals/downloads/procmon, but the detailed instructions are too complicated to write down here. |
Ran into the same problem on Windows 10
|
Not sure if helpful or not but installing Graphics Tools from Optional Features indeed helped me. I am running Windows 11 LTSC (that leaked build) on a laptop with Intel graphics.
But
|
@asavartsov, yes installing the Graphics tool will allow it to run the debug functionality. But it seems like something else than just the debug features are missing since @myth0genesis, tried to disable them and it still fails to create the interface. For anyone trying to help debugging the issue don't instal the Graphics Tools, since after that it's not possible to reproduce. @asavartsov, for the second issue, can you create a new issue with a log file from |
What exactly are you looking for in the dxdiag logs? I don't really feel comfortable posting the whole thing, plus it's like 1800 lines long. |
I have the same issue on Win 11, intel chipset gpu. Instal via scoop. |
@myth0genesis,
You can censor out things like computer name and paths if you want. |
I think a hotfix should be released as soon as possible, currently this issue is high priority and directly leads to unavailability of windows platforms |
We will release a hotfix soon, but so far no-one has confirmed that the PR actually fixes the issue #2559. None of the maintainers can confirm since it works without that on all the windows machines that we own. And it's not totally unusable since you can launch with Personally, I also don't like to release a fix without understanding the root cause. Only a subset of the Windows installations are affected, so we don't know what the common denominator is. We know that the lack of the "Debug tools" feature is one of them, but that's not everything, since completely disabling the debug features from the code does not fix it. If someone for example https://github.com/microsoft/windows-rs/tree/master/crates/samples/windows/direct3d12, works without issues, then it's possible that we can make a much better fix. |
I just don't know enough about remote git repos to be able to clone and build any branch that's not the main one 😅 I try to keep the cognitive load for any tools I use as minimal as possible, so I try to keep my usage to as basic a level as I can. If the proposed fix gets merged with the main branch, I'll clone and build and let you know how it goes, though. |
If you have the github cli (https://cli.github.com/) installed you can test it with And if you don't want to build from souce, then you can download the artifacts from here https://github.com/neovide/neovide/pull/2559/checks |
Just downloaded the pre-built .exe and it works for me. |
And here's my dxdiag. |
Thanks, I will create a release tomorrow with the fixes. But there are no hints in the dxdiag log why it wouldn't work with IDXGIFactory4, and why we need to go back all the way to So there must be something else on the non-working systems. Or something wrong with the Microsoft provided bindings, in which case https://github.com/microsoft/windows-rs/tree/master/crates/samples/windows/direct3d12 should fail as well. Testing that is pretty simple, just clone the repository and run |
I compiled that example (cargo build on the directory) and ran it. Was it supposed to do anything? Seems like it panicked just like neovide. |
|
I installed the Graphics Tools and neovide is working now. |
If it helps, here: |
PR 2559 works in my machine 🕺🏻.
|
I'm re-opening this until the release, so that people can see it more easily. |
The release mode is supposed to work without the graphics tools, but the debug mode will crash without it. And yes, a tringle is shown when running it. Can you confirm that both release and debug crashes without the graphics tools installed? Or is it only the debug mode? I need enough information to report a bug to the windows-rs repository. Ideally, we should also confirm that this one works https://github.com/microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12HelloWorld/src. But that requires compiling from source and Visual Studio, so it might be too complex for you to test. I might have to try to install a virtual machine and see if I can reproduce the problem there myself. |
Only the debug mode crashes.
I don't have visual studio installed, only the build tools. If it's possible to compile from the command line without installing visual studio, I'd be down to test it. |
It might be possible to compile with the command line, but I don't have any instructions for it. So, the best option is Visual Studio https://visualstudio.microsoft.com/downloads/ (note not Visual Studio Code), with the Desktop Development with C++ workload (asked during the installation). |
Yeah, I think I'll pass this one 😁 |
I was partially able to verify these issues using the official Windows 11 test image https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/, and gpu passthrough. Just like reported here, it fails to launch in both debug and release without the "Graphics Tools" installed. Installing it fixes the problem. But I was unable to reproduce the crashing reported here #2556 (comment). when setting The Windows-rs d3d12 example, crashes in debug mode and runs in release mode without any changes. But it doesn't display a triangle. Installing the graphics tools makes the triangle show up in Debug mode, but the release mode is still white. My conclusion is that the example is somehow broken, at least partially. The native D3D tests have a similar behaviour, but the release mode displays a triangle both with the tools installed and not. This means that I'm quite confident in releasing the fix, and that it's not some kind of bad workaround. The change to |
Thank you for the update! Version |
@VladimirMarkelov, can you post a logfile with |
And can you put it in #2592 I'm closing this one |
Describe the bug
After installing 0.13.0 with both the .msi installer and building from source, Neovide panics as soon as I attempt to run the executable
To Reproduce
Steps to reproduce the behavior:
Via installer:
Via building from source:
rustup update
(CMake version: 3.29.1 already installed)
(LLVM version: 18.1.4 already installed)
cargo install --git https://github.com/neovide/neovide.git
Expected behavior
Neovide executable runs.
Desktop:
Contents of log:
2024-05-17 18:05:11 - Neovide panicked with the message 'Failed to create DXGI factory: Error { code: HRESULT(0x887A0001), message: "The application made a call that is invalid. Either the parameters of the call or the state of some object was incorrect.\r\nEnable the D3D debug layer in order to see details via debug messages." }'. (File: src\renderer\d3d.rs; Line: 112, Column: 59)
0: <unknown>
1: <unknown>
2: <unknown>
3: <unknown>
4: <unknown>
5: <unknown>
6: <unknown>
7: <unknown>
8: <unknown>
9: <unknown>
10: <unknown>
11: <unknown>
12: <unknown>
13: BaseThreadInitThunk
14: RtlUserThreadStart
Additional context
I'm wary of updating CMake and LLVM frequently because the build ecosystem for my job breaks pretty much every time I do it, so that's why CMake and LLVM on my system aren't the absolute newest versions available (probably a skill issue on my part, but I just do what works for me).
Neovim 0.10.0 currently runs as expected on my system. I'm also using LazyVim, so the expected behavior in my specific case is that the dashboard comes up when I run Neovide.
It should also be noted that not a single error came up when building with Rust.
The text was updated successfully, but these errors were encountered: