[Bug 37073] Trees not rendered correctly in Far Cry 2 when anti-aliasing enabled

WineHQ Bugzilla wine-bugs at winehq.org
Fri Jan 10 09:11:02 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=37073

Paul Gofman <gofmanp at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gofmanp at gmail.com

--- Comment #9 from Paul Gofman <gofmanp at gmail.com> ---
Created attachment 66218
  --> https://bugs.winehq.org/attachment.cgi?id=66218
Support Nvidia & AMD specific alpha to coverage settings

I've tested the game. 

It is d3d9 game which wants to use "alpha to coverage" feature when
antialiasing is enabled. Nvidia and AMD cards provide these features under
d3dx9 each in its own hacky way.

1. Nvidia
     The support of alpha to coverage can be queried on Nvidia by checking
'ATOC' fourcc pseudo-format support. Alpha to coverage render state is set
through D3DRS_ADAPTIVETESS_Y render state with 'ATOC' bytes turning state on
and D3DFMT_UNKNWON turning state off.

2. AMD
     There is no documented way to detect the support for this feature I could
find, but it said to be available since long ago on all ATI & AMD cards. Alpha
to coverage render state is controlled through D3DRS_POINTSIZE set to either
'A2M1' (enable) or 'A2M0' (disable).

If the game detects video card as Nvidia it queries for 'ATOC' format and if it
is found works Nvidia way. Otherwise (if the reported card is not Nvidia or
ATOC format is not available) it works AMD way.

I am attaching the patchset (3 patches) which implements both AMD & Nvidia
states which fixes the issue for me (I tested on Nvidia card also spoofing AMD
through HCKU\Software\Wine\Direct3D\VideoPciVendorID and VideoPciDeviceID
registry keys).

Actually just implementing AMD render state is enough for this game as it
fallbacks to AMD mode if it doesn't find ATOC format on Nvidia.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list