-
Notifications
You must be signed in to change notification settings - Fork 855
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
Compiling latest dxvk with -march=native (znver2) causes games to crash #4447
Comments
Sounds like a compiler bug? That being said, why not simply add Also note |
What error does the games crash with in log? Edit: Just attach a full Proton log |
Indeed, has to be a compiler bug. I reviewed this document. I went through and added every instruction -m flag that is listed under znver2 to the Meson.build file. Arma 3 works again. Thank you Winter for the suggestion. |
Can repro, got a crash with This pretty much proves that there has to be some sort of stack alignment issue somewhere. I'm not entirely sure what's going on here, stack alignment is 16 and not 32 so this kind of code should never be emitted, and we don't really use |
Still looks like a compiler issue though and it doesn't look like it's possible to work around that, short of not allowing the use of |
If you want DXVK with AVX, you'll need to build with MSVC or Clang+Mingw, GCC+Mingw needs a special patch, and the compiler aligning to 32 may be due to AVX 256 znver2 |
After taking a second look at the GCC doc, there is this flag
Success! Using the one game I own that has a benchmark which pumps out frames and is consistent between runs: Company of Heroes 1 on lowest settings. Here are the results: GCC No custom flags GCC Natived Proton Experimental Bleeding Edge |
Very good 😊, I see you've used the patch and are using the new flag, if you're going to try Graphite optimizations I recommend building against isl 0.25, in my tests it's more consistent than 0.26 Edit: Looking at the spec of your Mingw you can improve this result, the performance difference for the DXVK built by Valve is the dwarf exception, your GCC+Mingw is sjlj exception, you can add in the .spec and build again that should decrease this difference: mingw32-gcc with: mingw64-gcc with: |
Done. Thank you kindly Edit: New result: Excellent. Thank you @ViNi-Arco ! |
compile commands:
test environment:
I recreated Proton Experimental bleeding edge's folder structure in /Steam/compatibilitytools.d/ and symlinked all files sans dxvk dlls.
Games tested: Arma 3 for 64bit and Company of Heroes 1 for 32bit. Arma 3 makes it to the splash screen then crashes. CoH pops up it's crash report mailer.
-march=x86-64-v3 also fails. -march=x86-64-v2 works with reduced performance. compiling without custom flags works fine. My cpu is AMD zen2 3500x
I skimmed the discussion about how adding newer instruction sets does nothing basicly. So no biggie I suppose.
Hopefully I'm not being an idiot again.
The text was updated successfully, but these errors were encountered: