Compiling 64-bit native & Irrlicht

You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers.
No questions about C++ programming or topics which are answered in the tutorials!
Post Reply
Castaa
Posts: 39
Joined: Mon Jul 07, 2008 7:38 pm
Location: San Francisco
Contact:

Compiling 64-bit native & Irrlicht

Post by Castaa »

Is anyone supporting builds using native 64-bit Irrlicht?

Are there considerations beyond using f32 verses f64 (s32 and s64, etc). I know in our application, we always use f32 to do our calculations and I wonder if there is a performance hit using 32-bit sized data verses 64-bit.

Are there any other gotchas compiling and running 64-bit applications in regards to Irrlicht?

I'm seeing more and more computers being sold with Vista 64 and it's making me take a harder look at the advantages to supporting a 64-bit native build for our game in not so distant future.

Thanks.
My game: Star Sonata
Star Sonata is a massively multiplayer space game.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

There's no need to change datatypes to 64bit width for 64bit systems. It's just the pointers which are automatically changed to fit native sizes. With double precision you'll still have far more complex and hence slower operations, moreover, 64bit systems may have some 32bit operations which can handle two operations at the same time, due to the 64bit wide registers. Thus, 32bit operations might become even faster on 64bit systems, while the 64bit operations won't become faster than 32bit ones (although the wider registers will also help them).
Irrlicht works perfectly under 64bit Linux, and most 64bit windows problems should be fixed in Irrlicht 1.4.1 or at least in 1.5
Castaa
Posts: 39
Joined: Mon Jul 07, 2008 7:38 pm
Location: San Francisco
Contact:

Post by Castaa »

hybrid wrote:There's no need to change datatypes to 64bit width for 64bit systems. It's just the pointers which are automatically changed to fit native sizes. With double precision you'll still have far more complex and hence slower operations, moreover, 64bit systems may have some 32bit operations which can handle two operations at the same time, due to the 64bit wide registers. Thus, 32bit operations might become even faster on 64bit systems, while the 64bit operations won't become faster than 32bit ones (although the wider registers will also help them).
Irrlicht works perfectly under 64bit Linux, and most 64bit windows problems should be fixed in Irrlicht 1.4.1 or at least in 1.5
I'm not sure about f32 operations being faster. I remember reading that internally the CPU converts all f32 values to f64 because all the FPU registers are 64 (or even 80-bit?) in size.

But good to know. Thanks.
My game: Star Sonata
Star Sonata is a massively multiplayer space game.
sio2
Competition winner
Posts: 1003
Joined: Thu Sep 21, 2006 5:33 pm
Location: UK

Post by sio2 »

The advice I have seen for IA64 is not to use floats but to use SSE. The intrinsics in Visual Studio make this really easy. IA64 has double the number of SSE registers over 32bit as well.
Castaa
Posts: 39
Joined: Mon Jul 07, 2008 7:38 pm
Location: San Francisco
Contact:

Post by Castaa »

sio2 wrote:The advice I have seen for IA64 is not to use floats but to use SSE. The intrinsics in Visual Studio make this really easy. IA64 has double the number of SSE registers over 32bit as well.
You mean x86-64 (AMD64), right? Not the Intel Itanium architecture, also known as IA-64.
My game: Star Sonata
Star Sonata is a massively multiplayer space game.
Post Reply