italomandara / CXPatcher

A patcher to upgrade Crossover dependencies and improve compatibility
GNU General Public License v3.0
834 stars 22 forks source link

Auto tweak MSAA if it's > 4 on apple silicon #103

Open MysticalOS opened 10 months ago

MysticalOS commented 10 months ago

Not sure if you're aware of this "bug" or rather lack of feature but apple silicon doesn't actually support 8x MSAA rendering, and if it's enabled in a game causes major issues (usually a black screen). Why this matters is some games like Final Fantasy X have presets that enable 8x by default. You fire up game with MSAA at 8x and it'll go straight to a blank title screen with audio only.

This technical limitation is known by apple and most native ports disable 8x under apples guidance to avoid the issue. Windows apps obviously don't know they need to avoid that issue.

Mind you, not all "8x" implementations fail. Just native single pass 8x do. 4x pass done twice works fine on apple silicon.

I'm not sure this is something you can actually scope/fix via CXPatcher to be honest, as this may actually be something that actually just needs winetricks and maybe even codeweavers to look into, but I figure I at least point it out here regardless cause you never know when someone who's reporting "game is broken" simply needs to turn MSAA down/off.

italomandara commented 10 months ago

Does it happen on GPTK or dxvk? I can tweak that on DXVK + MoltenVK but not GPTK

MysticalOS commented 10 months ago

Both maybe? I only tested DXVK though since i was 32 bit gaming

it's an actual hardware limitation of apple silicon, MSAA above 4x will fail to render (unless it's fake 8x such as a two pass of 4x). Final Fantasy X HD probably best test case cause it'll launch into black title screen if MSAA higher than 4. Thinking more on it, it's probably something crossover should work aorund or maybe even MoltenVK and game porting toolkit respectively just ignore/change MSAA8X instruction set to 4x or none to avoid choking up apple silicon gpu.

italomandara commented 10 months ago

Both maybe? I only tested DXVK though since i was 32 bit gaming

it's an actual hardware limitation of apple silicon, MSAA above 4x will fail to render (unless it's fake 8x such as a two pass of 4x). Final Fantasy X HD probably best test case cause it'll launch into black title screen if MSAA higher than 4. Thinking more on it, it's probably something crossover should work aorund or maybe even MoltenVK and game porting toolkit respectively just ignore/change MSAA8X instruction set to 4x or none to avoid choking up apple silicon gpu.

So apple doesn't gracefully handle the missing feature on d3dmetal? well then it's going to be fixed only on dxvk/MVK then if anything

MysticalOS commented 10 months ago

they might actually I never tried. at very least natpro would probably be aware of it. but yeah DXVK and moltenvk obviously aren't :D