[Bug 35860] Crysis 2 reports 'Unsupported GPU configuration' on startup (crysis engine bug)

wine-bugs at winehq.org wine-bugs at winehq.org
Thu May 29 11:18:22 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |obfuscation
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |focht at gmx.net
         Resolution|---                         |INVALID
            Summary|Crysis 2 - Claims           |Crysis 2 reports
                   |unsupported video card      |'Unsupported GPU
                   |                            |configuration' on startup
                   |                            |(crysis engine bug)

--- Comment #5 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

I debugged that thing - it works as designed.

If you search the net you will find many complaints about this issue from
Windows users.

There is a log file 'c:\\Program Files\\Electronic Arts\\Crytek\\Crysis
2\\Game.log' which contains the following information:

--- snip ---
BackupNameAttachment=" Build(5858) 29 May 14 (14 20 00)"  -- used by backup
system
Log Started at 05/29/14 14:20:00
Running 32 bit version
Executable: C:\Program Files\Electronic Arts\Crytek\Crysis 2\bin32\Crysis2.exe
FileVersion: 1.0.0.5858
ProductVersion: 1.0.0.5858
Using STLport C++ Standard Library implementation
Added MOD directory <engine> to CryPak
Executable Command Line: "C:\Program Files\Electronic Arts\Crytek\Crysis
2\bin32\Crysis2.exe"
...
<14:20:25> Renderer initialization
<14:20:29> Unsupported GPU configuration!
- NVIDIA GeForce 8800 GTX (vendor = 0x10de, device = 0x0191)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: 2
<14:20:29> Asking user if they wish to continue...
...
--- snip ---

When the Crysis engine loads it scores the graphics card by querying different
API:

* d3d9.d3d9_GetAdapterIdentifier
* d3d9.d3d9_GetDeviceCaps (SM support/version)
* user32.EnumDisplayDevicesA
* WMI 'Win32_VideoController' class 'PNPDeviceID' and 'AdapterRAM' properties

One of the encrypted PAK files, 'Engine.pak' contains per-vendor graphics card
"database" files.

You can decrypt/unpack the .PAK file with Luigi Auriemmas 'quickbms' tool
(http://aluigi.altervista.org/quickbms.htm) and a small Crysis2 bms script
containing Crysis2 retail decryption key.
Search the net, it can be found easily.

The interesting files are:

--- snip ---
Config/gpu/amd.txt
Config/gpu/intel.txt
Config/gpu/nvidia.txt
--- snip ---

The file content looks like this:

# vendor id, device ID, score, comment

--- snip ---
0x10DE, 0x0040,-1 // GeForce 6800 Ultra, GeForce 6800 Ultra/GeForce 6800 Series
GPU
0x10DE, 0x0041,-1 // GeForce 6800
0x10DE, 0x0042,-1 // GeForce 6800 LE
0x10DE, 0x0043,-1 // GeForce 6800 XE
0x10DE, 0x0044,-1 // GeForce 6800 XT
0x10DE, 0x0045,-1 // GeForce 6800 GT
...
0x10DE, 0x053E,-1 // GeForce 7025 / nForce 630a
0x10DE, 0x05E0, 3 // GeForce GTX 295
0x10DE, 0x05E1, 2 // GeForce GTX 280
0x10DE, 0x05E2, 2 // GeForce GTX 260
0x10DE, 0x05E3, 3 // GeForce GTX 285
0x10DE, 0x05E6, 2 // GeForce GTX 275
0x10DE, 0x05EA, 2 // GeForce GTX 260
0x10DE, 0x05EB, 3 // GeForce GTX 295
0x10DE, 0x0600, 1 // GeForce 8800 GTS 512
...
0x10DE, 0x0DE1, 2 // GeForce GT 430
0x10DE, 0x0DE2, 2 // GeForce GT 420
0x10DE, 0x0E22, 3 // GeForce GTX 460
0x10DE, 0x0E23, 3 // GeForce GTX 460 SE
0x10DE, 0x0E24, 3 // GeForce GTX 460
0x10DE, 0x1080, 3 // GeForce GTX 580
0x10DE, 0x1081, 3 // GeForce GTX 570
0x10DE, 0x1086, 3 // GeForce GTX 570
0x10DE, 0x10C0,-1 // GeForce 9300 GS
0x10DE, 0x10C3,-1 // GeForce 8400GS
0x10DE, 0x1200, 3 // GeForce GTX 560 Ti
...
--- snip ---

The score is calculated by adding and deducting points.

* base score from PCI vendor database file (or 0 if not found)
* SM < v3.0 = -1 point deduction
...

Some reports from Windows users (you can find many more):

--- snip ---
Unsupported GPU configuration!
- NVIDIA GeForce GTX 580 (vendor = 0x10de, device = 0x1080)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: 4
Asking user if they wish to continue...
--- snip ---

--- snip ---
Unsupported GPU configuration!
- NVIDIA GeForce GTX 680 (vendor = 0x10de, device = 0x1180)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: 0
Asking user if they wish to continue...
--- snip ---

--- snip ---
Unsupported GPU configuration!
- NVIDIA GeForce 9400M (vendor = 0x10de, device = 0x0866)
- Video memory: 0 MB
- Minimum SM 3.0 support: yes
- Rating: -1
Asking user if they wish to continue...
--- snip ---

--- snip ---
Unsupported GPU configuration!
- Intel(R) G41 Express Chipset (vendor = 0x8086, device = 0x2e32)
- Video memory: 1024 MB
- Minimum SM 3.0 support: yes
- Rating: -1
--- snip ---

'Video memory' is the culprit here.
The value ought to be retrieved using WMI 'Win32_VideoController' class,
'AdapterRAM' property.

Unfortunately the engine code is bugged.
Interestingly they put some effort in disguising/obfuscating gfx/d3d engine
code.
They should have really spent their time on fixing bugs...

The code _skips_ the retrieval of video adapter RAM value if it finds a
non-zero PNPDeviceID (compares a builtin "NULL" one against WMI).

--- snip ---
0019680C  UNICODE
"PCI\VEN_10DE&DEV_0191&SUBSYS_00000000&REV_00\0&DEADBEEF&0&DEAD" ; WMI
retrieved

09ECF984  UNICODE "PCI\VEN_0000&DEV_0000" ; engine builtin string literal
--- snip ---

Complain to the vendor.

@killer:

--- quote ---
i can confirm this problem, 1.7.4 did work, some later didnt (havent done a
regression test).
--- quote ---

Don't confuse different issues.
This bug is about the startup message, not some recent regression.
I checked this with Wine 1.7.4 and the message is obviously present there too
for the technical reason I explained earlier.

Create a new bug for the regression and be sure to provide the actual commit
that broke it.

Regards

-- 
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