-
Notifications
You must be signed in to change notification settings - Fork 857
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
[d3d9] Codename: Panzers, Phase One (411310) Visuals Freeze on Cinematic Intro #3196
Comments
Hello. Would you be able to make a apitrace with wined3d? |
Hi, I should be able to get one. But I am not near a computer right now. I will get you the file in a few days. |
I have a retail version of the game, I will try to reproduce myself tomorrow |
Hi. It seems that it seems that either DXVK or Winevulkan regressed in last version for this game (I compiled DXVK from master today and wine is the last staging ). line 2703 being inside vkCreateGraphicsPipelines loader thunk Other applications doesn't seem to be affected (tested Control) Wined3d opengl backend can play this game fully, while the vulkan backend complain about missing 1 bit texture format. |
Unlikely to be a winevulkan regression, winevulkan will just assert there if vkCreateGraphicsPipelines() failed, so it's either a driver or DXVK problem. Can you try with older DXVK and/or run this with vulkan validation layers? FWIW, wined3d vulkan doesn't support d3d9 and older at the moment because vkd3d-shader doesn't support older shader models yet. |
@mbriar Vulkan validation layer just prevent this game to load at all with DXVK for me. Not a problem with the layers itselves, as they do work with Control |
This just means the call crashed inside the driver. Kinda need an apitrace to debug this if you're unable to get validation to work. Would highly appreciate one since we're planning to do a release very soon and I don't want to introduce random regressions, but I also don't want this to block that release forever. |
It seems to definetly be a DXVK regression that happened after 2.0. |
Seems to hit this assertion with a RADV debug build
|
It segfaults with validation layers right after this
|
Thanks, I'm unable to generate a trace. I get the apitrace: loaded into C:\Program Files (x86)\Panzers\PANZERS.EXE |
You need to look for the trace in |
@mbriar They aren't there. BTW replaying the trace, crash apitrace either with the same assertion using master or an memory violation on 2.0. Trace do crash even when replayed by WineD3D however |
The trace replays fine for me with wined3d, but crashes/asserts with dxvk. |
Ok It finally generate a trace for me too. If I use a trace generated by a good run of the game it will replay with WineD3D and DXVK 2.0, but will crash on master. At this point I will do a bisect. |
I don't know how the game renders it's intro video, but doesn't look like it's using d3d9 or opengl for it. Neither the DXVK hud nor the gallium hud shows up for it. So it makes sense that apitrace doesn't capture it. |
Bisect result
src/dxvk/dxvk_compute.cpp | 15 +--- |
Try to set |
That's... interesting since we should never hit any of those code paths in D3D9. |
I didn't enable GPL for RADV, so I don't think this would have an effect? |
@Blisto91 No it doesn't have effect |
Oh sorry i totally missed it was AMD cards involved. I probably need to to sleep soon 😅 |
I was thinking, this is related to a crash that's happening only on non first execution. The only thing it's changing is the state cache, and the e5157a5 is state cache related. |
Yes, this is a corrupt state cache. I can reproduce this with the trace but don't know what's going on yet. |
Should be fixed now, thanks @mbriar for providing the trace and info. |
Note that you might need to delete your state cache before this works for now. I'll add another commit that will basically invalidate all v16 state caches created since the bad commit, unfortunately it is not possible to recover corrupted cache files since we lose some information. |
@doitsujin I confirm the crash is solved. |
That is a separate issue, but from what I understand, video playback is not done through D3D anyway? In which case DXVK can't really do much. |
well anyway, things do get rather confusing when different bugs are discussed in one report. |
@doitsujin While that seems true (video not done with D3D), it's working with WineD3D. So there may still be something on D3D side at the end of the video DXVK is missing. |
Can someone make an apitrace of the intro cinematic? The one @mbriar made works fine with DXVK. |
I don't know what else to trace, like mentioned, neither the DXVK hud nor the gallium hud shows up for the video playback (they do later in game of course) and the apitrace doesn't contain the intro. |
https://mega.nz/file/w4RXybDA#slgLDO3kMj25S2X7qPiGfr1YW0oE4Ypd_XShKwRgfNk Edit: oh i see what mbriar means now so this trace doesn't help. Hadn't checked the traces before. |
Yeah, this one doesn't have the intro video in it either. |
Found that |
Fixes doitsujin#3196, not to mention that this was god-awful code anyway.
Software information
Steps to reproduce:
Expected result: the video is skipped and the game's main menu is shown.
Actual result: The frame when the video is skipped remains on the screen. Wined3d doesn't have this issue. The game is still running because you can move the mouse to the lower right area to exit the game.
The video being played is "intro.bik"
$ file intro.bik
intro.bik: Bink Video rev.i, 640x480, 3801 frames at rate 1/25, 1 audio track 44100Hz stereo
System information
Log files
PANZERS_d3d9.log
The text was updated successfully, but these errors were encountered: