xenia-project / xenia

Xbox 360 Emulator Research Project
https://xenia.jp
Other
8.28k stars 1.14k forks source link

Call of Duty not compatible with ROV anymore #1318

Open niko1point0 opened 5 years ago

niko1point0 commented 5 years ago

I know this is not the place for individual game compatibility, but the Direct3D 12 version of the emulator has been having a bug, that has not been fixed, and I would like to bring your attention to it

Appveyor release 1724 was the last working update where MW3 worked. Ever since Appveyor release 1725 (Force early Z with DSV), the game has been unplayable. After going through menus, and getting into gameplay, all I see is the HUD and a black screen. Every single update from 1724 to 1743 has been unable to render any graphics in MW3. Please fix the render bug. Thank you for your time

scooterpsu commented 5 years ago

"I know this is not the place for individual game compatibility..."

https://github.com/xenia-project/game-compatibility/issues/386 is the place for game compatibility.

Triang3l commented 5 years ago

Is it consistently broken only on that build and newer, or sometimes it works and sometimes it doesn't? I thought nothing could really be affected visually by that change, that's weird. Most importantly, are you using ROV or RTV/DSV? If ROV, it's even weirder because that commit shouldn't apply to ROV at all O_o Thanks for the specific build number, I'll check that when I have enough time.

niko1point0 commented 5 years ago

The game works 1620-1724 consistently and it is broken 1725-1743 consistently

niko1point0 commented 5 years ago

Normally I don’t post issues for individual games, but MW3 is a very popular game, and it is a matter of near-perfect and completely unplayable. After MW3 is fixed, if this happens again, are you ok with it if I post an issue here? Or would you prefer a game compatibility post?

Triang3l commented 5 years ago

May be related to the BLEND_DISABLE flag or alphatest (with IEEE-754 special values maybe), I forgot about those changes. Thanks!

niko1point0 commented 5 years ago

You're Welcome

Triang3l commented 5 years ago

It's extremely weird because I can only reproduce this in my own release builds, but not in my debug builds or AppVeyor builds… I guess I might have not initialized some variable somewhere correctly, though I've checked the constant buffer containing emulation-related parameters, and it's the same for the broken draw call and actually working draws, and the bound texture is correct, and the alpha in the color register is initialized to 1 in that shader (so alpha test isn't intentionally discarding it, and it's not a blending issue).

niko1point0 commented 5 years ago

I FOUND A WORKAROUND

On the latest appveyor build, 1754, it works when I disable ROV. Therefore, it is definitely ROV that breaks it

Triang3l commented 5 years ago

Not a fix, but yes, though I can't understand what may be causing that consistently, not even in random patterns like in some games like Halo 3 and SSX.

niko1point0 commented 5 years ago

I found another game with the same issue. Call of Duty Ghosts and MW3 both worked with ROV enabled on Appveyor 1724, but then did not work with ROV on Appveyor 1725 - 1754

niko1point0 commented 5 years ago

By the way, thank you @Triang3l for all the time you've invested. I appreciate every minute