Compiling 64-bit mpir using VC++ 2008 Express

December 23, 2010

MPIR is a Windows-friendly fork of GMP. It can be used as a direct replacement of GMP. I wanted to have my pycrypto build use _fastmath, and that meant having GMP support.

Building a 64-bit version of MPIR is fully supported in Visual C++ 2010 Express. Not so, alas, for Visual C++ 2008 Express. The MPIR build.vc9 readme flatly states “the Express Edition cannot build 64bit binaries”.

Game over? No Python-compatible MPIR lib?

Luckily, the MPIR devs worked hard and provided command-line tools in build.vc9. Using those, even an Express edition of VC++ 2008 can build 64-bit MPIR binaries.

Preparing to compile:

  • You now also need the Windows SDK so you have the amd64 compiler, which isn’t included in the Express version. This needs to be the Win7 + Net 3.5 SDK, not the Win7 + Net 4.0 SDK. You can find it here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en , and again download  the ISO (the one for amd64 support though!) if nervous it may disappear. Install and make sure you install the “Visual C++ Compilers”.
  • The vcvarsall.bat in VC++ 2008 Express looks for the amd64 vcvars64.bat in all the wrong places. The easiest way to work around that is to navigate to the VC\bin directory of your VC++ 2008 installation (in my case C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin). Copy vcvars64.bat, and paste into the VC\bin\amd64 subdirectory. Next, rename VC\bin\amd64\vcvars64.bat to VC\bin\amd64\vcvarsamd64.bat.
  • You need yasm.exe to compile the assembly code in MPIR. Download the 64-bit version of yasm, rename the executable to yasm.exe, and copy it to the VC\bin directory of your VC++ 2008 installation.
  • You need the yasm.rules file. Download the MPIR source tarball, and copy yasm.rules from the build.vc9 directory. It goes into your VCProjectDefaults directory (in my case C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults).
  • If you want to be able to automate the MPIR tests (that’s a really good idea), install Python. Chances are you are doing all this to use MPIR with Python and so it’s already installed. Just saying.

Compiling:

  • From within the vc9.build directory, run configure. You can specify –cpu-x86_64 if you’d like to build a generic 64-bit library, rather than one specific to your CPU type. You may opt to specify –enable-shared if you want to build a DLL rather than a static library.
  • Run make

Check that the compiled library works correctly:

  • Run make check

Your libraries and include files will be in build.vc9\lib or build.vc9\dll, depending. You can now copy those to your VC\lib (.lib and .pdb files) and VC\include (.h files) directories, respectively. If you are looking to use the library with pycrypto, you’ll also want to copy mpir.lib to your Python installations \libs directory, since that is where setup.py will look for it. Well actually setup.py looks for gmp.lib – I’ll leave that as an exercise to the reader.

Additional speed.exe and try.exe utilities:

  • Run make speed
  • Run make try

These will be in build.vc9\x64\Release and build.vc9\try\x64\Release respectively and allow you to measure the speed of the MPIR library and test MPIR functions.


ipv6 at home / small office: Verizon FIOS IPv6 trials

April 9, 2010

Verizon FIOS has entered into a month-long IPv6 trial on April 6th. It is a dual-stack trial carried out with Verizon employees in Reston, Virginia. The “custom CPE” that are mentioned in the article reflect the fact that precious few home routers have full, or even partial, IPv6 support at present. With both Verizon and Comcast testing the residential IPv6 waters, I expect router support to come along with them.


Warranty agreements for PC graphics cards

March 25, 2010

This post is to serve as a place for me to keep track of how different graphics card manufacturers handle warranty – in the US, that is, I’m not tracking Europe at all. Next time a graphics card fails on me, I’d like that to be an easy process.

After compiling this, it’s a pretty dismal picture. There are a lot of “original owner only” or “registration required” clauses. Be aware of what warranty is being offered and register if that’s required.

Asus:

3-year from date of manufacture

Asus’ website states that a customer would need to go through the reseller to get any kind of warranty service.

Warranty Page

BFG:

Limited lifetime if registered within 30 days, or 1 year from date of purchase if not registered

Registration within 30 days of purchase required

Original owner only, warranty does not transfer

Warranty Page

Diamond:

3-year warranty according to NewEgg

I had a hard time finding warranty information on their site – take a look around before deciding.

Warranty Page

ECS:

3-year NVidia cards, 1-year all other chipsets

Original invoice required as per web site. My experience is that S/N can be sufficient.

Warranty processing process is slow in my experience.

Warranty Page

EVGA:

1-year, 2-year, 3-year and lifetime agreements depending on model

Product needs to be registered 30 days from purchase

Warranty only extends to original purchaser

Warranty Page

Gainward:

1-year, 2-year, 3-year depending on model. Likely from date of manufacture or date of sale to distributor.

No direct warranty to end users, only to distributors, unless the card was bought directly from Gainward, say through their web shop.

Warranty will be voided if S/N sticker falls off, and for the usual technical “tampering” reasons.

Warranty Page

Gigabyte:

3-year from date of manufacture

Direct RMA available

Very speedy response from RMA dept. in my experience

Warranty Page

HIS:

2-year, presumably from date of invoice.

Original invoice required.

Direct RMA available.

Warranty Page

MSI:

2-year parts & labor, 3rd year parts only, from date of manufacture.

Direct RMA available.

Return shipping and handling paid by end user for 3rd-year warranty: US-$ 45.

Warranty Page

PNY:

3-year or lifetime, depending on model; 1-year if not registered

Registration required

Original invoice required, original owner only.

Warranty Page

PowerColor:

2-year from date of invoice

Original invoice required

Original owner only, warranty cannot be transferred.

Warranty Page

Sapphire:

2-year from date of invoice

Original invoice required

Sapphire’s website states that a customer would need to go through the reseller to get any kind of warranty service.

Warranty Page

XFX:

Limited lifetime warranty on graphics cards, or 3-year, depending on model

Warranty period starts from the date of invoice or packing slip

Direct RMA available

Original owner or one subsequent owner only. Subsequent owner needs to register product within 90 days of buying used, using the same ID that original owner used to register the product.

Warranty Page


IPv6 at home or office, part 4.1: 6in4 tunnel on Juniper ScreenOS firewall

February 26, 2010

This blog post is part of a series on ipv6. Part 4.0 describes requesting a Hurricane Electric tunnel; this part explains how to configure a Juniper ScreenOS firewall – SSG, ISG or Netscreen – to work with such a tunnel.

Sample environment

I am going to give an example based on ScreenOS 6.0.0 or later syntax. ScreenOS 5.4 is reported to support IPv6 6in4 tunnels, as well, though it does not expose the configuration to the web interface.

These settings can (almost) all be configured through the web interface. In the interest of brevity, I am going to show CLI commands instead.

Here are the interface names and addresses used in this example. In this example, I use the IPv6 documentation prefix. When configuring this, you get the real addresses from the Tunnel Details page.

External interface name: ethernet0/0, Untrust zone

Internal interface name: bgroup0, Trust zone

Tunnel interface name: tunnel.1, Untrust zone

Server IPv4 address: 255.254.253.252

Server IPv6 address: 2001:0db8:1:223::1/64

Client IPv6 address: 2001:0db8:1:223::2/64

Routed /64: 2001:0db8:2:223::/64

Anycasted IPv6 Caching Nameserver: 2001:0db8:1234::2

Enabling IPv6

This is the one step you must do from command line. Enter:

set envar ipv6=yes

and reboot. This will enable IPv6 features on your ScreenOS device.

Setting up the tunnel

The first step is to set up a tunnel interface that will allow you to encapsulate IPv6 packets in IPv4 packets.

set interface “tunnel.1″ zone “Untrust”
set interface “tunnel.1″ ipv6 mode “host”
set interface “tunnel.1″ ipv6 ip <Client IPv6 address>
set interface “tunnel.1″ ipv6 enable
set interface tunnel.1 tunnel encap ip6in4 manual
set interface tunnel.1 tunnel local-if <External interface> dst-ip <Server IPv4 address>
set interface tunnel.1 mtu 1480
unset interface tunnel.1 ipv6 nd nud
set interface tunnel.1 ipv6 nd dad-count 0
set route ::/0 interface tunnel.1 gateway <Server IPv6 address>

We’re creating the tunnel.1 interface, assign it to the “Untrust” zone, and give it its IP address, the “Client IPv6 address”.

Next we’re creating the tunnel itself, terminating on the external interface on one side and the Server IPv4 address on the other side.

We restrict MTU to 1480 as that is the largest packet that can go through without fragmentation, and disable Neighbor Unreachable Detection for good measure. I haven’t had issues with nud on, but others have.

Finally, create a default IPv6 route through the tunnel.1 interface, so our IPv6 traffic has somewhere to go.

Setting up IPv6 for the local network

Next, we’ll use the “Routed /64″ that HE gave us for our internal network.

set interface “bgroup0″ ipv6 mode “router”
set interface “bgroup0″ ipv6 ip 2001:0db8:2:223::1/64
set interface “bgroup0″ ipv6 enable
unset interface bgroup0 ipv6 ra link-address
set interface bgroup0 ipv6 ra preference high
set interface bgroup0 ipv6 ra other
set interface bgroup0 ipv6 ra transmit
set interface bgroup0 ipv6 nd nud
set interface bgroup0 ipv6 nd dad-count 0
set interface bgroup0 dhcp6 server
set interface bgroup0 dhcp6 server options dns dns1 <HE IPv6 Name Server>
set interface bgroup0 dhcp6 server enable

Here, we are giving the LAN interface an IPv6 address from the “Routed /64″ range – in the interest of simplicity, I chose “1″. We then enable Router Advertisement so that local machines can receive IPv6 addresses from this interface.

We’re also setting the RA “other” bit and enabling DHCPv6 to give out HE’s IPv6 DNS server. Those two steps are optional: It’ll mean that Google’s IPv6-enabled services will resolve with both an IPv4 and an IPv6 address – otherwise, Google will only be reachable by IPv4.

Setting up an IPv6 firewall policy

As an example, here is a very simple policy that allows all outgoing IPv6 traffic, and denies all incoming IPv6 traffic. Adjust as fits your environment.

set policy from “Trust” to “Untrust”  “Any-IPv6″ “Any-IPv6″ “ANY” permit
set policy from “Untrust” to “Trust”  “Any-IPv6″ “Any-IPv6″ “ANY” deny


NIST releases ipv6 security draft

February 25, 2010

NIST, the “National Institute of Standards and Technology” in the US, has released a draft paper titled “Guidelines for the Secure Deployment of IPv6“. It is a far-ranging paper that looks at IPv6 features one by one and discusses their security ramifications. It also carries some good discussion about IPv6 address allocation and IPv6 transitional options. Recommended read if you are looking to deploy IPv6 in a corporate / educational / governmental environment. Anything bigger than your home, in essence.


ipv6 at home: Comcast ipv6 trials

February 25, 2010

I’m admittedly late to the party with this, as it’s a January 27th announcement. Comcast is gearing up for public ipv6 trials starting in April, and they’re looking for guinea pigs trial users.

[Update 2010-02-26] I just received an email from Comcast. They’ll start ramping up 6RD trials nationwide. Dual-stack trials will be regionally limited. Trial users that do not have IPv6-ready equipment will receive equipment that is ready, including what Comcast calls a “gateway” (home router). They may start contacting volunteers in a month, and expect to start some of these trials within 3 months.

There’ll be four total phases to the trial:

Q2 2010

IPv6 tunneled over IPv4 using 6RD. If you’re using one of the tunnel methods I describe in this blog today, you’re familiar with this.

Native dual stack. You’ll have both an ipv4 address and ipv6 addressing natively. Your router will need to support ipv6.

Q3 2010

IPv4 tunneled over IPv6, dubbed “Dual Stack Lite”. You’ll have a private IPv4 address, and use a tunnel over IPv6 to share one public IPv4 address with several other subscribers. Interesting approach.

Business class dual stack

In other “late to the party” news, Google turned up ipv6 on youtube sometime in January. Full production, caused a big spike in v6 traffic, and it seems to be working just fine.


ipv6 at home, part 2.5: Google, DHCPv6, speed tests, troubleshooting, various

August 2, 2009

This blog post is part of a series on ipv6. In part 1, I provided an overview of ipv6 and looked at Teredo, the technology built into Windows Vista; in part 2, I looked at AYIYA tunnels through aiccu, using sixxs net as a tunnel broker. I also got stuck for a very long time on trying to use Windows as a router for an ipv6 subnet on that setup, and ultimately failed to make that work.

Part 2.5 is going to be an in-between – a collection of ipv6-related tidbits that will, hopefully, be useful, but have no particular cohesion.

Google services on ipv6

Back in January, Google announced that they had moved a number of their services to be multi-homed. To avoid causing issues for people with Vista that didn’t have functioning ipv6 connectivity, this is an opt-in service. That is achieved by using a DNS server that peers with Google for ipv6 addresses.

Unless you work for an ISP, you are not going to peer your own servers with Google. However, several tunnel brokers, including Hurricane Electric and sixxs, offer DNS servers that can serve up Google ipv6 addresses.

Here’s an example nslookup:

> www.google.com
Server:  UnKnown
Address:  2001:470:20::2

Non-authoritative answer:
Name:    www.l.google.com
Addresses:  2001:4860:b002::68
 74.125.91.103
 74.125.91.104
 74.125.91.147
 74.125.91.99
Aliases:  www.google.com

As you can see, both A (ipv4) and AAAA (ipv6) records are being returned. In order for Vista to use the ipv6 address, you need to use the ipv6 address of the DNS server. If you query DNS over ipv4 and get both A and AAAA records, Vista will prefer an ipv4 address.

You can test which address is going to be used by running “ping http://www.google.com”, which will show the numerical address that the OS is trying to reach.

DHCPv6

If you are using a software tunnel such as AYIYA over aiccu, then you can set the DNS server to be used manually, through the Control Panel. If you are using an ipv6-capable router or firewall, however, you can send out that information over DHCPv6.

Cisco has a clear and concise paper on DHCPv6. From an implementation standpoint, it is very simple: Decide whether DHCPv6 is only going to serve DNS addresses, or whether it is going to handle all ipv6 address assignment, too. Then set flags for your RA (Router Advertisement) Configuration: “O” (“Other Parameters”) if RA handles addresses and DHCPv6 handles DNS, or “M” (“Managed”) if DHCPv6 handles addresses and DNS.

An RFC draft dated July 2005 suggests to expand RA to be able to hand out DNS server addresses without the need for DHCPv6. That draft has not yet been adopted, and I have yet to see an implementation in a major vendor’s routing OS.

[Update 2008-08-02] Jeremy points out that the above statement about implementation being “very simple” is rather brash. He’s correct, and explains the differences between Windows and Linux/Unix in this regard in his company blog. With lots of references to “dueling RFCs”, fun. For a broader view of ipv6 and its real-world applications, and a much more in-depth view than “okay how do I get this to work at home anyhow”, definitely do follow his blog.

Speed Test

If you’d like to compare your ipv6 speed to your ipv4 speed, you can do so through an ipv6 speed test offered by the University of Maine. The test can actually run in both ipv6 and ipv4, which makes it useful for comparison.

ftp.isc.org is reachable through ipv6 as well – if you can find a suitably large file there, it could serve as a measure of download speed over ipv6.

Troubleshooting

This may have to be a “paragraph-in-perpetual-progress”. A few of the tools I found useful are:

Wireshark, in case you need to see what is happening to your ipv6 packets – are they leaving on the interface you think they should be leaving on, do you see return packets?

netsh is full of useful commands in its “interface ipv6″ context, among them:

show route – does that just, shows you the ipv6 routing table

show siteprefixes – you’ll get a list of all the ipv6 prefixes (networks) configured on your machine

show prefixpolicies – you’ll see a list of which prefixes are preferred in which order. This is explained in more detail at ipv6 Day. Note that my own attempts to “fiddle with” prefix policy left me in a state where Vista would not function for ipv6 traffic at all.

reset – resets all ipv6 settings to default. Really useful if you’ve done a little too much fiddling. Needs a reboot.

show addresses – will show you the ipv6 addresses and their lifetime

show interfaces – configured interfaces and their up/down state

ipconfig /release6 and ipconfig /renew6 can be used to release/renew RA or DHCPv6 addresses

Turning off unused tunnel interfaces

Windows comes with built-in Teredo, ISATAP and 6-to-4 tunnel interfaces. These can become a distraction when configuring an alternative way to access ipv6, such as through your router or a third-party tunnel application.

Courtesy of ipv6 Day comes a description of registry settings to turn these off. There are a lot of possible combinations, including some that will turn off ipv6 entirely, which can come in handy in corporate environments.

The TL;DR for turning off all Windows built-in tunnels is:

  • In regedit, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\
  • Create a DWORD called DisabledComponents
  • Set it to “1″
  • Reboot

ipv4 exhaustion counters

Hurricane Electric, my preferred tunnel broker, offers a number of widgets and applications to keep track of ipv4 address space exhaustion. That includes Vista / Win 7 gadgets, Google Desktop and iGoogle gadgets, iPhone/iPod touch apps, and a web widget.

The “days remaining” are to be taken with a grain of salt. 676 days to complete ipv4 exhaustion! (As of August 2nd 2009) Actually, what is likely to happen is that we’ll see ipv4 space become more and more expensive, to the point where it is no longer economically feasible to own large portions of it just for access purposes – we’ll see hosting companies running it for decades, and your typical office running on v6 with a way to reach v4 over a tunnel. The reverse of today’s situation – eventually.

ipv6 certification

[Update 2009-08-06 - More detail on DNS requirements for this cert program]

Hurricane Electric also offers a fun ipv6 certification. What’s interesting about it is that it’s almost completely results-based. The first few levels (“Newbie” and so on) are just a questionnaire, but to reach the coveted “Sage” level, it’ll be doing real tasks, such as sending/receiving SMTP email over ipv6.

Achieving this entirely from home has one more than one challenge – you need a DNS server that will let you set AAAA records, will act as delegation for ipv6 PTR records, has its own AAAA entry and will respond to ipv6 queries, and you will need ipv6 glue for your DNS server at the TLD. There are a number of free ones available. These will let you set AAAA records, and usually also function for RDNS delegation. None of them are reachable over ipv6. A combination of afraid.org, v6ns.org and a BIND server on your machine will get you all the way to “Guru”, but you won’t get “Sage” that way, as you’ll be missing the TLD glue.

The certification tests use the same domain you start out with throughout, or a subdomain thereof. If you want “smooth sailing”, choose a domain you own on a registrar that supports ipv6 glue.

It’s a worthwhile exercise in that you’ll find that ipv6 connectivity itself is really not the issue – finding real-world applications that support ipv6 is the larger challenge. You’ll also learn more about ipv6 DNS than you truly ever wanted to know.

ipv6 address space – think about registering yours

If you are involved in a corporate networking group, you may want to think about how you are going to handle ipv6 space. Traditionally, you get your address assignments from your ISP. This creates an amount of pain when moving ISPs. In ipv4, that’s public-facing addresses, while the internal network can stay untouched. In ipv6, everything uses public addresses – no more NAT (pending discussion, there are address translation efforts underway for ipv4/ipv6 translation – which doesn’t change the situation w/ regards to your ipv6 space). That means an ISP move could potentially require you to renumber everything, down to the last printer and desktop.

You can plan for this, by avoiding static assignments wherever possible, and always thinking about “how would I switch this to an entirely different subnet if I had to?” every step of the way.

Or, if you qualify, you can get a direct assignment of ipv6 space from ARIN. This used to be trivially easy as an “early adopter”, but that policy has been discontinued. Now, you need to be either a) eligible for direct ipv4 assignment (that’s getting tougher and tougher by the month) or b) already have a direct ipv4 assignment, and show that you use it efficiently.

It’ll be interesting to see how this policy evolves as ipv4 space becomes ever scarcer – will ARIN just stop assigning v6 space directly to end users, or will we see policies that are not tied to v4 eligibility?

[Edit 2009-08-02]

As Jeremy points out in a comment, ULA space (Unique Local Address as per RFC4193) is a the solution to receiving address space from your ISP, but wanting to avoid the pain of needing to re-do addressing of your entire network when moving ISPs. As long as the devices you give these addresses to do not need connectivity to the Internet, that is: As per the RFC, “They [the ULA addresses] are not expected to be routable on the global Internet”. In practice, that translates into a requirement to filter out ULA space at the BGP border router. SixXs has a page to register ULAs. As they point out, while there is no requirement to register ULAs, collisions (which are not very likely but can happen) can be dealt with by registering ULAs anyway.


1and1 .htaccess failures

February 11, 2009

I have a 1and1 hosting account, on their “shared Linux” platform. The issue I had was that I could not get the server to handle a .htaccess file.

What would happen is that I’d get a “Server Error 500″ on something as simple as:

order deny, allow
deny from all

1and1 tech support was little help. I was told my syntax was wrong, and sent an email explaining .htaccess syntax to me. Classy.

What turned out to be the issue was my FTP upload. I was uploading in “Auto” mode through FileZilla, which defaults to ASCII for .htaccess. Which made .htaccess end up with Unix linefeeds on the 1and1 server. That seems perfectly rational for a Linux hosting package – alas, the 1and1 server doesn’t agree.

What I needed to do was force the file to have Windows linefeeds, which I did in Notepad++, then change the upload type to BINARY and upload .htaccess.

And that did it – my .htaccess files are now working.


Recovering from BIOS failure on Gigabyte GA-EP45-UD3P

February 11, 2009

After installing a new motherboard – a GA-EP45-UD3P – and successfully booting into Vista without issue, I got foolhardy and ran Gigabyte’s @BIOS update utility – for no good reason but the sheer heck of it, to upgrade from “F6″ to “F7″ BIOS.

@BIOS runs in Windows. I really should’ve known better. It completely hosed my BIOS, to the point where all I would see upon boot was

Award Bootblock BIOS 1.0

scanning bios image in hard drive

And a little bit more text that I did not bother to write down. I did manage to recover from this.

The TL;DR version is: Do not clear CMOS. Use a SATA CDROM with the BIOS image on it. [ Edit 2012-12-3: Or a USB HD with the BIOS image on it ]

The longer version, and lessons learned:

- @BIOS is the pits. The likelihood of rendering your machine a doorstop is high. Don’t use it; flash from within the BIOS itself if you have to flash.

- Gigabyte’s “Dual BIOS” on these boards is “virtual”. That means it tries to write a BIOS image to the hard drive, and recover from that. According to various tech forums, this recovery process usually fails. Maybe it’s the backup that fails in the first place, who knows. I could not find any information on where the BIOS image is kept on HD. Gigabyte documents the BIOS recovery process.

- Gigabyte removed the usual Award BIOS “boot from floppy” recovery routine – so the “easy” recovery of creating a boot floppy is out

- Every single thread I could find on this issue ended with “and I had to RMA the board” or “and we never fixed it”

I managed to recover by grabbing the F7 BIOS off the Gigabyte site, burning it to CD, and connecting a SATA CD-ROM to my machine. I had disconnected my hard drives at this point. This did recover my machine – to a BIOS that calls itself “F6″. I do not profess to understand that, and will not question my lucky star. I thought I had to RMA, which would have been Not Pleasant. At this point, I am going to leave well enough alone – there really is nothing in “F7″ that I want or need, and for all I know, I have an F7 that calls itself F6. Unless there is a miraculous BIOS recovery mechanism that kicks in when a SATA CDROM is connected but doesn’t actually read from CDROM, which sounds more like black magic than IT to me.

[Update 2009-03-13]

I did have one more thought on the “black magic”, as I upgraded to F7 through the BIOS proper by now after all, and it does call itself F7. It’s possible that there was a copy of the old BIOS in CMOS, but that for reasons only known to GigaByte, that backup is only brought in if there is a SATA CD-ROM with a BIOS image on it present. If that’s the case, it would explain why so many people on the forums who, as a first step, cleared their CMOS, were never able to recover and had to RMA. So don’t clear your CMOS if you have this issue, just in case the backup BIOS is kept in there. Clearing CMOS won’t help anyway: This is not an issue with corrupted BIOS settings, it’s an issue with a corrupted BIOS image.

[Update 2012-12-03]

People in comments had success by copying the BIOS files to the root of a “USB hard drive”. I’m assuming that’s an actual hard drive in a USB enclosure.

Also, one person who cleared CMOS was not able to recover, giving weight to the idea that CMOS needs to remain intact for this recovery to work.

 


Vista, monthly update

August 20, 2007

I am still putzing around with Vista, though I am not using it for daily tasks due to performance issues with my 7800GT graphics card. I may do monthly “state of Vista” posts, as filtered through my gamer-centric view.

I installed the performance and compatibility packs for Vista. Can’t say I noticed a huge difference, though file copying is somewhat faster now.

The leaked SP1 “private beta” has been analyzed. It’s a good read. Apparently, SP1 speeds Vista up noticably. No release date for SP1 has been announced as of yet, although the author of the linked piece speculates that there will be a public beta towards the end of the year, followed by a release “sometime in 2008″.

EvE Online performs like a dog under Vista. For starters, instead of 40-50fps, I get around 30fps. This is actually behavior that others have noticed with older cards, too. The suggested workaround is to use (non-signed) XP drivers. No, thanks. Also, that wouldn’t work on Vista 64-bit, as driver signing is mandatory there.

Another odd thing that EvE Online does under Vista on my machine is that after flying around a bit, blowing a few things up, what have you, I get “sawtooth” performance. Every half-second or so, the screen freezes for just a moment, and an FPS graph shows a classical sawtooth. Really weird. I am speculating that this has to do with texture memory. One of the things Vista introduced is the idea of “shared” texture memory. Therefore, my aging 7800GT now shows 256MB of “dedicated” video memory (what’s actually on the card) and 768MB of “shared” video memory (that’s main memory). Apparently, Aero is quite hungry when it comes to video memory, hence that requirement. Somewhere in the shuffle between EvE’s aging engine, my aging graphics card and less-than-stable NVidia drivers, EvE comes to believe that it has more than 256MB of memory to shove textures in, which would then lead to textures being swapped back and forth over the PCI-E bus between graphics memory and main memory, leading to the sawtooth performance I see. That’s my current working theory, anyhow.

The driver situation continues to be less than ideal. I already detailed the performance issues with my graphics driver. Some driver is causing a BSOD upon (almost) every shutdown, though I haven’t bothered to check whether that’s sound, graphics, or the ramdisk. Creative is making noises about releasing updated Vista drivers for the Audigy series, but so far they have not done so.

The first reason to actually shell out monies for Vista (and hardware) is to be released tomorrow: Bioshock, which, if metacritic is anything to go by, is a masterpiece.

On the hardware side, the NVidia G92 65nm graphics refresh looks to be released in November. Intel’s X38 chipset should hit in October, and Wolfdale, Intel’s new 45nm dual-core desktop CPU, well, should “launch real soon now”. Initial benchmarks are promising for graphics / video creation apps that support SSE4, such as the Adobe suite or DivX.

Not Vista-related at all, but hardware-related, my PSU died. I took the opportunity to buy something a little more state-of-the-art (no more PCI-E and SATA adapters to molex), a Corsair HX520. I chose it over a Corsair VX450 because of its better support for multiple PCI-E (graphics) power adapters. In the end, a VX450 would likely have done fine – but given that I have to buy a PSU now, instead of waiting until I know which components my 2008 PC refresh would use as I planned, I chose to go with a little more oomph to be on the safe side.

I also took the opportunity to order a replacement for my Thermaltake X-Controller, which died shortly after having been installed. The replacement I chose is a Sunbeam fan controller. We’ll see how well that one fares.


Follow

Get every new post delivered to your Inbox.