Devblog: EVE 64-bit & DirectX 12

Firstly, glad to hear the minimum standards are progressing to something that makes development and testing easier - modern toolsets are designed for 64bit systems and more recent APIs.

As the question has been asked and I’m a wonk for the detail: “what does a 64bit application give you?” Isn’t really the question. It’s more “what is the problem with a 32bit application on a 64bit system?”

Summary: running a 32bit application on 64bit hardware and operating systems is slow, and limiting. A 64bit client will run faster for many reasons.

Bit of dating Information: the Prescott Pentium 4 processor (2004) was 64bit, Windows 7 was released in 2009 and invariably deployed the 64bit version. Even Vista post-dates 64bit processors being common and was deployed in 64bit mode on 64bit processors.
You are almost inevitably running a 64bit OS on a 64bit architecture. As CCP have noted, “almost all” is 99.5% of clients.

Firstly, if you have a PC with a 64bit processor then to run a mix of 64bit and 32bit code the processor has to internally mode switch - this is an appreciable overhead (I suspect because it requires the instruction pipelines to be cleared down first - but I’d have to check). the scale of the overhead depends on how often you have to switch. Which brings us to the next issue…
Windows handles 32 bit applications using WOW64 (Windows on Windows) - this is a translation layer reforming 32bit OS calls to the underlying 64bit OS to accept. Overhead. And of course, those 64bit parts of the OS occurring within a 32bit application drive more mode switching on the processor.
The 32bit operations set (the old i86 architecture) is a subset of the AMD64 (the 64bit) architecture. Basically there are useful things a 64bit CPU in 64bit mode that are not available to a 32bit applications - Encryption is a classic example, but there are many other “in hardware” services. So a 32bit application has to do a lot more in software - and is thus slower - than using the capabilities already in the hardware (capabilities that you paid for!!!)
The 64bit architecture also has more internal registers, which reduces register loading for many tasks and means code compiles into fewer operations, making it faster, it can address wider memory spaces, there’s a plethora of improvements over operating in 32bit mode.

And I’ve not mentioned “more RAM addressing” as that’s a bit of a red herring, nice, but not critical - the win is in being able to access the capabilities of the processor and removing some of the performance overheads associated with running a 32bit application on a 64bit platform.

Bascially, the 64 bit client is the right place to be from a performance perspective, and while I don’t know the tools CCP use then I’d be stunned if it didn’t make support a lot easier.

Dropping Directx9 support is a similar issue - it removes a layer of complexity for CCP.

10 Likes