64bitsville
<i>This post was originally made by <b>danij</b> on the dengDevs blog. It was posted under the categories: Blog, Engine.</i>
I finally got around to upgrading my main machine so decided to get one of the new AMD 64 X2 4400+ processors, slot that into a groovy A8N32-SLI motherboard and attach a swish Arctic Cooling fan and heatsink with variable speed control (this allows the mb's AI-NOS to dynamically overclock the CPU and adjust the fans based on load). This new mb also includes some far better audio stuff (Realtek) so I've been able to connect my machine up with my home theatre system
I'm now all set to start experimenting with this new hardware.
I'm currently reading up on the specifics of the CPU and will attempt to compile a 64bit native Doomsday1.9.0-beta4 and see what the current issues are.
As you might know this processor has two cores allowing for true multithreading 64bit applications under this environment. So I'm particularly interested in messing with that stuff in 1.9.1
I finally got around to upgrading my main machine so decided to get one of the new AMD 64 X2 4400+ processors, slot that into a groovy A8N32-SLI motherboard and attach a swish Arctic Cooling fan and heatsink with variable speed control (this allows the mb's AI-NOS to dynamically overclock the CPU and adjust the fans based on load). This new mb also includes some far better audio stuff (Realtek) so I've been able to connect my machine up with my home theatre system
I'm now all set to start experimenting with this new hardware.
I'm currently reading up on the specifics of the CPU and will attempt to compile a 64bit native Doomsday1.9.0-beta4 and see what the current issues are.
As you might know this processor has two cores allowing for true multithreading 64bit applications under this environment. So I'm particularly interested in messing with that stuff in 1.9.1
Comments
Some useful links to help.
http://tuvix.apple.com/documentation/Darwin/Conceptual/64bitPorting/transition/chapter_3_section_3.html
http://devnet.developerpipeline.com/documents/s=9852/q=1/cuj0506mach/0506mach.html
http://en.wikipedia.org/wiki/64-bit
Skyjake - What is your current plan with regard to 64bit support in Doomsday?
When it comes to the differences in data models, we should be pretty safe if we make sure that pointers are handled correctly: 8-byte pointers with 64-bit vs. 4 byte pointers with 32-bit (and that no type casts occur between pointers and integer types). The other data types are less important.
Although, in Doomsday's case 32-bit code is perfectly adequate.
Danij, your new system sounds cool.
Yes of course.
<blockquote>When it comes to the differences in data models, we should be pretty safe if we make sure that pointers are handled correctly: 8-byte pointers with 64-bit vs. 4 byte pointers with 32-bit (and that no type casts occur between pointers and integer types). The other data types are less important.</blockquote>
I've had a quick look over the src and since you've (skyjake) implemented the DD_Get/SetVariable stuff for use in place of DD_Get/SetInteger with pointers there doesn't seem to be too many obvious issues remaining. In 64bit Windows the passing of HwND handles will need to be addressed as currently they are truncated during conversion to int when passing to/from the renderers, though considering they are normally small, NEAR pointers it isn't an obvious problem.
<blockquote>Danij, your new system sounds cool.</blockquote>
Thanks. I've had to pick up a rather old PCIe videocard, ASUS EN7300GS (I'm not made of money ) but it at least supports Shader Model 3.0 and Ultrashadow 2 (I want to play with them). Once I've saved up a bit more cash I'll probably look at getting a more recent card (or two, SLi) and some more RAM (I've only got 1GB atm).
The dynamic overclocking is fun, as CPU load increases the fan gives out a wwhooooosh sound but it's generally a pretty quiet system other than the hum of one of my old HDs.