wine-nine-standalone icon indicating copy to clipboard operation
wine-nine-standalone copied to clipboard

Incorrect glass rendering on Halo: CE

Open Aerocatia opened this issue 3 years ago • 9 comments

This is likely due to the game doing undefined behaviour as the shader uses a mismatched image and sampler (iirc sampler is a cubemap but the image is a 2D texture)

Working: Screenshot_20210303_234553_working

Gallium Nine: Screenshot_20210303_234233_gallium_nine

Aerocatia avatar Mar 03 '21 10:03 Aerocatia

Unrelated but gallium nine has taken a massive performance hit in this game on recent WINE versions. I don't think the regression is in nine itself, so I'm not sure if it's worth opening an issue about it.

Aerocatia avatar Mar 03 '21 12:03 Aerocatia

"Unrelated but gallium nine has taken a massive performance hit in this game on recent WINE versions." Open it, that could be interesting, if you know on which WINE version that massive performance hit started.

dungeon007 avatar Mar 03 '21 13:03 dungeon007

Seems like that glass shader is working with ForceShader=14 in config.txt or -use14 switch, -use11 draws it too. At least on Radeon hardware that seems working, just not with default again so -use20. Neither wined3d draws that as i see 🤣

dungeon007 avatar Mar 04 '21 00:03 dungeon007

wine3d does not account for this case, neither do modern Windows drivers. Using a lower pixel shader version is also not entirely working as it uses a different shader path that breaks numerous other things.

The Glass only renders correctly on ~2003 ATI drivers, or on modern cards using dgVoodo2 or DXVK.

Aerocatia avatar Mar 04 '21 01:03 Aerocatia

On the other hand dxvk seems to draw that via either radv or amdvlk with -use20 too, so yeah a bug.

dungeon007 avatar Mar 04 '21 01:03 dungeon007

That is something really BAD, if it does not work on any driver 🤣

dungeon007 avatar Mar 04 '21 02:03 dungeon007

Yeah DXVK already has a specific check to handle this exact issue in this game, so it works on there.

Aerocatia avatar Mar 14 '21 17:03 Aerocatia

I guess at some point we'll need to implement the same kind of game hacks DXVK does.

axeldavy avatar Mar 14 '21 17:03 axeldavy

Yeah, unfortunately. I friend of mine tried to find a fix for this client side so it could be done in Chimera, but could not find the right thing to patch.

Aerocatia avatar Mar 14 '21 17:03 Aerocatia