View Full Version : Questions about Vista
Tief
28th August 2007, 10:33 AM
1. Is Vista more stable than XP?
2. Why is 64 bit Vista no faster, often slower, than 32 bit? Is it because of backwards compatability issues?
3. Does Vista take advantage of muli-core CPUs? Or is this up to the application, not the OS?
Any resources that would help me understand these things would be welcome.
Thanks :)
JonnyFive
28th August 2007, 11:45 AM
I just had the fun experience of upgrading XP to Vista, so perhaps I can lend some insight here.
1. Is Vista more stable than XP?
From my experience, a well-configured Vista install is about the same level of stability as a well-configured XP install.
2. Why is 64 bit Vista no faster, often slower, than 32 bit? Is it because of backwards compatability issues?
Not sure, but I would imagine it has to do with the fact that few applications are written to take advantage of the 64-bit addressing. Also, there are a number of issues with drivers that don't work right under the 64-bit version.
3. Does Vista take advantage of muli-core CPUs? Or is this up to the application, not the OS?
Technically, this is usually up to whether or not the program itself supports multi-core processors. However, I believe Vista takes advantage of multiple cores when running several processes at once. Vista has support (like XP) for process affinity (which can be seen in the task manager), so it is using the multiple cores.
There aren't many apps that really take advantage of quad core CPUs, but that might change in the future.
Any resources that would help me understand these things would be welcome.
Thanks :)
If you're trying to decide whether or not to upgrade, I would seriously consider waiting six months to a year to do it. Currently, there's really no reason to make the switch.
It's not that Vista is a bad OS, because it really isn't. It's a bit of a memory hog, but with a decent amount of RAM and proper setup it's roughly the same as XP. A lot of the compatibility issues and driver problems have been resolved, although things are still being hashed out.
If you've got the RAM, I've found that Vista is a bit smoother than XP in some ways. It certainly looks nice, and I like the way the new folder structure and various components are laid out.
But there's really nothing in particular that makes it a slam dunk success right now. Maybe when DX10 games become the norm (and when the API is used more fully), or when something more is made of the new hardware interface architecture of Vista... but for now, it's just like a prettier, more RAM-intensive version of Windows XP.
If you're running on a minimum-spec type machine, or don't have a lot of RAM (especially if you plan to game with it), then I'd suggest not upgrading right now.
Tief
28th August 2007, 03:23 PM
Thanks Jonnyfive :)
Actually, I'm looking for more technical answers. Is there a reason for it to be more stable, is there a reason its not faster in 64bit? I realize it's early to ask these questions because Vista is far from tuned; I guess what I'm asking for is does it have the potential to be faster, more stable, get more from future hardware.
I don't see me upgrading for probably a couple of years; the only thing I know I want from Vista is DX10 - there is a game coming out in March '08 (Age of Conan) that will use it, but I won't upgrade for it then, my video is very good as is. Developers are years behind in apps, anyway.
I'm seriously diappointed in Vista so far, though most reviews I've read say it's a good OS, some say as good as Tiger. None of them have commented much on the questions I've asked though.
GodMark2
28th August 2007, 04:48 PM
is there a reason its not faster in 64bit?
The short answer is that the processor can still only execute one instruction at a time. Being 64-bit allows for more memory to be addressed, for larger numbers to be used in math, and for more individual smaller numbers to be calculated on at one time. But if the program in question was written for a 32-bit processor, all of it's math will still be limited to 32 bits. In addition, the processor will need to translate any 32-bit instructions to their 64-bit counterparts. In modern processors, this is transparent for most instructions (Translation and execution happen at the same time), but there are always a few uncommon instructions that will need a bit of time to be translated, and then the normal time to run.
But not all of the code in question is contained in the program itself. Most programs use external libraries provided by Windows to do common tasks (the "Open a File" dialog, for instance). If it uses a library to do some of it's work, and that library has been updated to 64-bit (while still remaining compatible with the 32-bit code), a 32-bit program could run faster. The code in the program itself, however, will not run faster.
egslim
30th August 2007, 03:38 PM
is there a reason its not faster in 64bit?
Compare for simplicity sake an 8 bit calculation with a 4 bit one: 00000100+00000001=00000101 and 0100+0001=0101. They both calculate the exact same thing, except the 8 bit needs more figures.
32 bit is enough for most integer-based software. So adding 32 zeros to create 64 bit numbers is pointless, and even consumes unnecessary bandwidth.
X86-64 does have a few performance enhancing improvements compared to IA32, but those have nothing to do with its 64 bitness.
negativ
30th August 2007, 10:06 PM
Real-world answers:
1. Your computing experience under Vista is far more crash-prone than under XP. Argue all you want over whether this is due to compliance/maturity of drivers, apps, utils, and what-not, but if you take everything you currently use on an XP platform and stick it on Vista, I promise you it will, as we say in the trade, "SUCK MORE".
2. I have not had much opportunity to compare 64-bit vs. 32-bit Vista. Official answer: "Dunno."
3. Every version of Vista (and why the hell are there 5 different versions?) takes advantage of multi-core systems. However, if you have a system that actually has more than one physical CPU plugged into your motherboard, you have to shell out for the Business, Ultimate, or Enterprise edition.
Just So You Know:
My primary computer is an AMD dual-core system that runs XP Pro. The only reason I use any version of Windows at all is because I like computer games.
I have a laptop and two other desktops, all of which are Linux-powered (Ubuntu Feisty Fawn on the desktops, and Debian Etch on the laptop).
I have a (legally legitimate, for any hall monitors in the audience) copy of Vista Ultimate that I tried for a couple of weeks, and then enthusiastically rejected in favor of the much more solid and reliable XP Pro. Vista WITH ALL THE EXTRANEOUS STUFF DISABLED made my Athlon 64 X2 4200+, 2GB RAM system run more sluggishly than my Athlon XP 2800+ 512MB RAM system running Ubuntu Feisty.
My opinion is that if you prefer Windows, then by all means stick with XP. It works very well. If you feel the need to tinker, try out Vista, but only if you don't have to pay for it, because it's a waste of money. Tinkerers should stick to Linux IMHO.
richardm
31st August 2007, 01:41 AM
1. Your computing experience under Vista is far more crash-prone than under XP. Argue
I will argue. I have had issues with drivers being simply unavailable for some devices, which is a problem. But for me, Vista has been impressively stable and capable at running even quite elderly applications.
Wolfman
31st August 2007, 02:59 AM
I will argue. I have had issues with drivers being simply unavailable for some devices, which is a problem. But for me, Vista has been impressively stable and capable at running even quite elderly applications.
I'm with Richard on this. Now, I would not suggest upgrading an existing computer from XP to Vista; but if buying a new computer, I personally like Vista quite a bit.
As I've noted elsewhere, I had my computer installed with both XP and Vista; for 90% of my stuff, Vista works no problems, but I run into occasional compatibility problems (particularly for older hardware, like my printer and scanner), where the driver does not work (and it is unlikely a Vista driver will be made, as this hardware is no longer sold).
And it takes awhile to get used to how Vista operates -- it has a number of significant changes from XP.
And...you have to absolutely be sure that you have a system that is capable of running Vista efficiently. Older computers are going to have a lot of problems running Vista.
All of that being said:
* The hardware issues are minor, as I'm in the process of replacing my older hardware with newer, Vista-compatible stuff anyway (something I would have done regardless of which OS I was using, its just time to get newer, better stuff).
* It took me time to figure out how to operate XP; and it takes time to figure out how to operate Vista. But once you know how to work with it, I personally like Vista better. I do find it to be faster, and more stable, than XP (and keep in mind that I am able to compare both OS running on the same computer, which makes for quite accurate comparison)
In my opinion, the majority of Vista problems are related to one of three core issues:
1) Hardware/software incompatibility. This is a significant issue, certainly, probably the biggest one. But lets face it, most of us here will be getting new software and hardware every 2-3 years. And all the new software/hardware will be Vista-compatible. This isn't an issue that makes Vista innately "bad", it is just an issue of waiting for everything else to catch up. It was like being one of the very first people to buy a DVD player when most videos still were not available on DVD.
2) Incompatible computer. If your computer does not meet the minimum specifications to run efficiently in the Aero mode, I'd suggest that you not get Vista...and it is better if you exceed the minimum requirements. Most of the people I know who've had problems with speed, efficiency, etc., have been using computers that were not up to spec. Again, this isn't a problem with Vista...if you're going to use it, make sure you've got a machine that's capable of utilizing it properly.
3) Unfamiliar. People have gotten used to how things work in XP, there are a number of changes in the Vista system that take time to learn. A lot of people get frustrated or upset -- understandably -- when they cannot find what they are looking for, or can't figure out how to do something, that they could have done in XP very easily. It took me quite a while to figure out the sound settings for my speakers, headset, and microphone, for example, because Vista handles these things in a completely different way. But it is only "slow" or "difficult" because you don't know how to do it at first. If you spend some time with the system, and figure out what you're doing, it is just as fast and easy as with XP.
If you don't need a new computer right away, stick with your current computer using XP. Wait until early 2008, when Microsoft are supposed to release SP1 for Vista (that should address a majority of incompatibility issues), and when pretty much all the hardware/software on the market will be Vista-compatible.
If you must buy a new computer now, I'd say go with Vista (as long as the computer has the minimum requirements to run it); otherwise, a year later, you'll be wanting to upgrade to Vista, but it'll be a royal pain in the posterior to do so.
JonnyFive
31st August 2007, 05:46 AM
It's also worth pointing out that if you decide to do an upgrade install from XP without doing a clean install, there may be some small issues. While the process seems much better than previous versions of the upgrade process (the '98 - XP upgrade was a nightmare), there are still some problems with removing old XP traces. In particular, the .NET framework (which is included with Vista, but was an optional install under XP) may leave behind bits of its install, which causes Windows Update to crab about something or other. MS has a tool available to remove the remnants of the old .NET install from XP, which fixes the issue.
The upgrade install, by the way, is indeed a pain in the ass. It works fine once it finishes, but it has a nasty habit of not working, and the cycle time for a failed install and revert back to Windows XP is like two hours, so get ready to spend some time with it unless you're confident that nothing in your XP install will anger Vista's upgrade in the slightest (that means things like Daemon tools, weird drivers, etc.).
And, like Wolfman, I do like Vista's interface a bit better. It does what I need/want it to, runs my software, doesn't crash, runs smoothly, and looks real purty-like. Beyond that, I don't ask for much from an operating system.
Definitely not worth upgrading right now, though. Wait for SP1 and some software that actually uses DX10 to its fullest.
voidx
31st August 2007, 07:03 AM
Many of the gripes about Vista, incompatible SW/HW, changed interface, see no need to switch, are all the same arguements that were trotted out when XP was released.
Anyone having used XP extensively would not go back to Windows 2000 or 9x. So it'll be with Vista. I also agree, its a very stable OS, certainly more stable than the first RTM of XP.
Some news for Microsoft though for those of you waiting on Vista SP1. It's to be released Q1 of 2008 along with SP3 for XP, and the RTM release of Server 2008.
JonnyFive
31st August 2007, 07:16 AM
Many of the gripes about Vista, incompatible SW/HW, changed interface, see no need to switch, are all the same arguements that were trotted out when XP was released.
Anyone having used XP extensively would not go back to Windows 2000 or 9x. So it'll be with Vista. I also agree, its a very stable OS, certainly more stable than the first RTM of XP.
Some news for Microsoft though for those of you waiting on Vista SP1. It's to be released Q1 of 2008 along with SP3 for XP, and the RTM release of Server 2008.
I agree with this position completely. I vaguely remember that when XP first came out, the same issues were present. Ditto for 95 back in the day (and that was compounded by the Pentium issue at the time, IIRC). The Windows OS's have always had growing pains, but except for 95 (which was awful in many ways), they've generally been better with each incarnation.
I think Vista has the potential to be awesome. It does use, and will likely always use, more resources than XP... but, again, that's the same argument that came up with the 98/XP transition. Once the average user's hardware catches up, the complaints tend to subside.
One issue we are running up on is the 3 Gb barrier on the RAM. It's still not an issue with Vista quite yet (and you can kind of get 32-bit Vista to address 4 Gb... sort of), but it's something to consider. I'd say that the next Windows after Vista will almost certainly transition to 64-bit, if for no other reason than to be able to address more than 4 Gb of RAM, but that's still a ways off.
rockoon
2nd September 2007, 01:57 AM
Just for the record, a 64-bt application also has access to more hardware registers (twice as many) and that alone is enough to improve performance a considerable amount even when doing 32-bit math. These additional registers are completely hidden and inaccessable when the CPU is in 32-bit mode.
The 64-bit addressing itself currently offers extremely few performance advantages since most applications do not deal with more than 4 gigabytes of data, and few people actualy have more than 4 gigabytes of memory -> if you are paging to disk, then you are slow no matter what.
GodMark2
2nd September 2007, 03:34 AM
Just for the record, a 64-bt application also has access to more hardware registers (twice as many) and that alone is enough to improve performance a considerable amount even when doing 32-bit math. These additional registers are completely hidden and inaccessable when the CPU is in 32-bit mode.
Yes, but that has little or nothing to do with the bitwidth of the processor. It has to do with Intel's decision to break with the x86 architecture, which happened to occur in the same processor they also moved to 64-bit processing. When the processor is in x86 emulation mode (used for 36 and 16-bit programs), it has to use the x86 limit on registers. There were, and are, 16 and 32 bit processors made by other companies that have many more registers than the x86 architecture provided for. The number of registers is independent of the bitwidth of the processor bus.
But, for the most common processors, those made by Intel, the difference is of little real meaning. Their 64-bit processors have more registers than their 32-bit processors. Any processors that are made to be compatible (AMD) must also then have that change. The most common operating system on direct-user computers (home computers and workplace desk computers), Windows, only runs on Intel compatible processors. So, for most users, switching to 64-bit means access to more registers.
But, as you pointed out, only for programs written specifically to use the IA64 architecture.
GodMark2
2nd September 2007, 04:22 AM
Many of the gripes about Vista, incompatible SW/HW, changed interface, see no need to switch, are all the same arguements that were trotted out when XP was released.
Anyone having used XP extensively would not go back to Windows 2000 or 9x. So it'll be with Vista. I also agree, its a very stable OS, certainly more stable than the first RTM of XP.
I'd believe that, if it weren't for the fact that the numbers of people using XP stayed at nearly zero until Microsoft told computer manufactures they couldn't ship systems with 98 on them anymore. People didn't start using XP until they didn't have a choice on new systems. Many people, including myself, didn't upgrade until MS cut all bigfix/update support for 98 systems. XP didn't, and doesn't, do anything for me that 98se didn't, except put another hundred dollars in the MS bank account.
At my office, several computers still use 98se, because it works, and we've already paid for it. The only systems with XP are either newly purchased, or need to run software only available for XP (we have one Vista machine for testing). At least one piece of such software we needed to use (version control system) turned out to only use one Windows XP API call (to post a debug message), which could have easily been done with the available Windows 98 API call. I decompiled the code, changed the call, and it ran beautifully on 98, saved us several hundred dollars, and could have been done by the manufacturer by setting a single compiler option.
Changing our hardware to work under XP was a pain of a different magnitude. It turned out to be easier to completely redevelop the hardware interface to use USB than to get the existing IEEE 1284 (parallell port) interface to work under XP. Yet another large development cost which Xp saddled us with.
So Yes, there are people that, having used XP extensively, would change back to 98, if the Microsoft weren't locking that option out.
Lock outs like like DX10: New games will require it, and it will deliver actual value. Why isn't there a version available for XP? There's no technical blockade to implementing things like shader model 4.0 in XP. It possibly even took a fair amount of effort to make it not work under XP (like the iPhone only working with AT&T). The only reason is to force people that want to play those games to upgrade to Vista.
Lock outs like Windows Genuine Advantage: It can make XP stop working as soon as Microsoft decided that they want everyone to upgrade to Vista now.
Some news for Microsoft though for those of you waiting on Vista SP1. It's to be released Q1 of 2008 along with SP3 for XP, and the RTM release of Server 2008.
Wasn't one of Microsoft's big reasons to switch to Vista (and why Vista was so long in coming) was that it would be so stable they wouldn't need a SP1, at least not for a long time, that they could take care of the small stuff via automatic updates, and that big things just weren't going to happen because... just 'cause?
rockoon
2nd September 2007, 08:54 AM
Yes, but that has little or nothing to do with the bitwidth of the processor.
Never said it did.
It has to do with Intel's decision to break with the x86 architecture, which happened to occur in the same processor they also moved to 64-bit processing.
Actualy, it had to do with AMD's decision to break with the x86 architecture.
Intel themselves, when left to their own devices, were happy with 64-bit addressing and a regular number of 32-bit registers (They called this "64 bit" extension EM64T.)
We know how that worked for them: AMD totally won the 64-bit desktop war, even taking the lead from Intel in several markets.
Intel was forced to copy AMD's 64-bit design (calling it IA-64) and that is where Intel is at today.
When the processor is in x86 emulation mode (used for 36 and 16-bit programs), it has to use the x86 limit on registers.
I infact said that.
There were, and are, 16 and 32 bit processors made by other companies that have many more registers than the x86 architecture provided for. The number of registers is independent of the bitwidth of the processor bus.
And this is irrelevant to this thread.
But, for the most common processors, those made by Intel, the difference is of little real meaning. Their 64-bit processors have more registers than their 32-bit processors. Any processors that are made to be compatible (AMD) must also then have that change.
You see now that you have this backwards, right?
Intel totally copied REO speedwagon (AMD)
Tief
2nd September 2007, 03:03 PM
Thanks rockoon for setting the record straight about who created x64. It was originally called AMD64, and still is by some, but for some reason Intel objected to that when they adopted it :D
Not to say Intel doesn't produce the best x64 CPU atm; they do. Preferring AMD in general, and certainly hoping AMD stays competitive for the sake of us all, I hope that changes - but doesn't look like they will take the lead again soon.
'Quality never goes begging'? If only it were true. Examples? Betamax. AmigaOS. Nice sentiment though :)
joyrex
2nd September 2007, 10:21 PM
Answers about Vista (http://slashdot.org/tags/vista) ;)
mhaze
3rd September 2007, 12:16 PM
1. Is Vista more stable than XP?
2. Why is 64 bit Vista no faster, often slower, than 32 bit? Is it because of backwards compatability issues?
3. Does Vista take advantage of muli-core CPUs? Or is this up to the application, not the OS?
Any resources that would help me understand these things would be welcome.
Thanks :)
No Vista . Vista, no. Vista, bad dog.
GodMark2
4th September 2007, 01:01 AM
You see now that you have this backwards, right?
Intel totally copied REO speedwagon (AMD)
You're right, i got it partly backwards. AMD actually had the x86 compatible chip out first, and Intel copied it. AMD called theirs AMD64, Intel called theirs EM64T. But wait, what about IA64? Well, IA64 came out first, from Intel, but it wasn't compatible with existing software, so people preferred the AMD solution, and Intel had to play catchup in spite of being first.
As for it's relevance to the thread, the original question could be rephrased as "what's the benefit to 64-bit processors", so talk about the number of registers is merely incidental.
voidx
4th September 2007, 08:02 AM
I'd believe that, if it weren't for the fact that the numbers of people using XP stayed at nearly zero until Microsoft told computer manufactures they couldn't ship systems with 98 on them anymore. People didn't start using XP until they didn't have a choice on new systems. Many people, including myself, didn't upgrade until MS cut all bigfix/update support for 98 systems. XP didn't, and doesn't, do anything for me that 98se didn't, except put another hundred dollars in the MS bank account.
Well you'd have to show me something confirming that the install basis of XP was extremely slow until such time as OEM distribution of 9x was discontinued.
A much more likely cause is the fact that leading up to and quickly following 2000, many people took that opportunity to buy new PC's, business' and home users. Business' largely due in fact to Y2K concerns. That period say manufacturers like Dell and HP selling huge volumes of PC's.
XP coming out only a few years after this mass buying spree is as likely a cause as any for its slow adoption.
I'll admit at the time I didn't upgrade to XP right away either. I might even have cited a few of the complaints I know find pretty baseless towards Vista. Wasn't familiar with the interface, didn't like it, set it back to the 2000 classic menus. But over time I became familiar with it and found more benefits than deficits.
Microsoft works on a product lifecycle and has for years. I suggest at this point that people simply deal with it, because its not going to change.
At my office, several computers still use 98se, because it works, and we've already paid for it. The only systems with XP are either newly purchased, or need to run software only available for XP (we have one Vista machine for testing). At least one piece of such software we needed to use (version control system) turned out to only use one Windows XP API call (to post a debug message), which could have easily been done with the available Windows 98 API call. I decompiled the code, changed the call, and it ran beautifully on 98, saved us several hundred dollars, and could have been done by the manufacturer by setting a single compiler option.
Changing our hardware to work under XP was a pain of a different magnitude. It turned out to be easier to completely redevelop the hardware interface to use USB than to get the existing IEEE 1284 (parallell port) interface to work under XP. Yet another large development cost which Xp saddled us with.
So Yes, there are people that, having used XP extensively, would change back to 98, if the Microsoft weren't locking that option out.
I made the cardinal sin of making an absolute statement in my previous post. I'll rephrase. Most people who have given XP an open-minded and fair trail and assessment, would not go back to Windows 9x or 2k. Yes your company has already paid for 9x and still finds it useful and thats great. You have, I'd agrue, rather specific issues that make XP a challenge for you to adopt. Most business' don't. Most business' have found it a pretty flawless transition. And there are benefits to XP over 9x and 2k. I've repeated them ad nauseum, but Group policy managament alone is worth while, along with system restore points and driver rollbacks which in a large business case make sense over 9x or XP.
Your gripe seems to be that there's no reason that these features couldn't have been worked into 9x or 2k and perhaps your right. However, they weren't, and however much you might dislike Microsofts forced upgrade practices, it does not change the fact that there are technical enhancements in XP that make it more useful for more business users and network admins than 98 or 2k.
Lock outs like like DX10: New games will require it, and it will deliver actual value. Why isn't there a version available for XP? There's no technical blockade to implementing things like shader model 4.0 in XP. It possibly even took a fair amount of effort to make it not work under XP (like the iPhone only working with AT&T). The only reason is to force people that want to play those games to upgrade to Vista.
Partially. However, I'd argue the hardware requirements in terms of video cards and RAM do as much to force new games out of most users system requirements than DX10. Even so, yes their forcing your hand. Have been for years, and their not the only company doing so. What else is new?
Lock outs like Windows Genuine Advantage: It can make XP stop working as soon as Microsoft decided that they want everyone to upgrade to Vista now.
And for silly reasons like Microsoft attempting to cut down on financial losses from product piracy. Which as much as most people like to feel justify doing, is still perfectly proper within Microsoft's rights to protect. That and the fact that there is an identified product lifecycle for Windows XP and support for it for at least another 5 years, which essentially prevents them from doing so.
Wasn't one of Microsoft's big reasons to switch to Vista (and why Vista was so long in coming) was that it would be so stable they wouldn't need a SP1, at least not for a long time, that they could take care of the small stuff via automatic updates, and that big things just weren't going to happen because... just 'cause?
I don't recall any specific claims to that degree. They promised it to be their most stable OS release yet. Now, so far as an initial RTM release of a Windows OS, I'd argue strongly that they are correct. Its much more stable than XP initially was. Besides, who believes the marketing claims of any IT related company, honestly? SP1 introduces several features that were left off of the RTM release as they needed to get it out the door under pressure likely from volume license customers with Software Assurance agreements which would give them free upgrade paths to Vista. Windows OS's will always need updates and SP's in order to stay current. I've not personally read anything from Microsoft claiming Vista would be the end of SP's.
Tief
4th September 2007, 03:15 PM
1. I've read a lot more about people's experiences with Vista. Many people seem to have no problems at all. Some have a few problems with drivers and programs, particularly games, but no crashes. Some have crashes. One reviewer I read set up Vista on 2 different computers and had crashes on both.
So, my conclusion is, Vista is not currently more stable than XP. It might be for me, idk, but I consider the risk of having problems to be too high.
As to my real intent in asking this question - is there a REASON Vista should be more stable, once the bugs are worked out, I still don't know. I am reading more about Vista's internal workings though, so maybe I'll find out :)
I have found that Vista is a lot more than just XP with Aero stuck on top. There are quite a few changes in the kernel, and elsewhere.
Tief
4th September 2007, 04:57 PM
Compare for simplicity sake an 8 bit calculation with a 4 bit one: 00000100+00000001=00000101 and 0100+0001=0101. They both calculate the exact same thing, except the 8 bit needs more figures.
32 bit is enough for most integer-based software. So adding 32 zeros to create 64 bit numbers is pointless, and even consumes unnecessary bandwidth.
X86-64 does have a few performance enhancing improvements compared to IA32, but those have nothing to do with its 64 bitness.
It doesn't take any more time to perform the 2 calculations you talk about in modern architecture design. The time it takes for a cycle is determined by the CPU clock speed.
But, it does take more cycles to perform the calculation. Which is obviously going to have a much larger effect.
http://www.stata.com/support/faqs/win/64bit2.html
I might agree with you that the performance gains from x64 for most 32-bit apps is not related to 64 bitness:), but x64 offers the ability to address far more memory (and a few 32-bit games are reaching the limit of 32-bit XP's ability to address memory), and more data can be processed for each clock cycle because of 64-bit capabilities, so I would say that 64-bit in and of itself does make some difference.
rockoon
4th September 2007, 07:43 PM
As for it's relevance to the thread, the original question could be rephrased as "what's the benefit to 64-bit processors", so talk about the number of registers is merely incidental.
Apparently you didnt read the OP. Your rephrasing is quite innaccurate.
He asks:
1. Is Vista more stable than XP?
2. Why is 64 bit Vista no faster, often slower, than 32 bit? Is it because of backwards compatability issues?
3. Does Vista take advantage of muli-core CPUs? Or is this up to the application, not the OS?
later on the original poster asks
is there a reason its not faster in 64bit?
The theme here is Vista/64, obviously on specific 64-bit CPU's that happen to run Vista/64: AMD's and Intel's
It is not "incedental" to talk about the specifics of these CPU's - it is the entire purpose of this angle of the thread.
These CPU's while in 64-bit mode are hands-down superior to these CPU's in 32-bit mode. I cant even believe that this is a point of contention. The few instructions that are gone in 64-bit mode werent common and arent performant in 32-bit mode anyways (better alternatives already existed .. the more is often less counter-intuition from the original Pentium on)
It is the transition from 64-bit to 32-bit that might be considered "inferior." Most programs and drivers have not been recompiled for 64-bit CPU's yet.. and that is the real performance issue. These programs arent taking advantage of 64-bit mode - all they see is the drawback and none of the benefits.
Tief
6th September 2007, 05:06 PM
I've read quite a bit more about Vista. Enough to know that it isn't just a prettier version of XP. There have been a number of improvements in the kernel, and the security features are not just limited to the often hated UAC.
Just my layman's take on it, but some of the improvements make Vista more efficient than XP. I think that the efficiency does not show up primarily because of the security enhancements, which slow things down.
I think some of the way the improvements work in the real world need to be optimized. I read about Vista assigning memory to video card functioning that was also assigned by the card, so in effect twice as much space was taken up in memory, causing Vista to be much more of a memory hog than it should be. MS has fixed this, I believe, or at least made it not so bad.
http://www.microsoft.com/technet/technetmag/issues/2007/02/VistaKernel/
3. Does Vista take advantage of multi-core CPUs? Or is this up to the application, not the OS?
I can answer this one :) Vista is designed to take advantage of multi-core CPUs. When a comment was made comparing Vista's ability to use multi-core over XP's, Vista was said to be better. Little was said, though. Going dual core for Vista makes a big difference. No info on quad core.
JonnyFive
7th September 2007, 06:05 AM
I can answer this one :) Vista is designed to take advantage of multi-core CPUs. When a comment was made comparing Vista's ability to use multi-core over XP's, Vista was said to be better. Little was said, though. Going dual core for Vista makes a big difference. No info on quad core.
Well, either you'll need to be multi-tasking a lot of apps, or you'll need to be running an app that directly supports quad-core operations, most likely. Vista supports the four cores, and can assign threads to them, so multitasking should be faster with the quad if you have several CPU-intensive apps running at once.
Currently, it's not a big deal, but there are a few games on the horizon that will offer quad core support ("Alan Wake" is one).
You could also manually set process affinity to any of the four available cores if you were so inclined, but Vista should try to split the CPU workload automatically.
egslim
8th September 2007, 03:56 AM
But, it does take more cycles to perform the calculation. Which is obviously going to have a much larger effect.
It doesn't take more time, but it does take more cylces? That's nonsense, unless you compare different CPU's - which we don't.
Integer calculations rarely use values larger than 2^32. Adding zero's to make 64 bit values is a waste of bandwidth, and actually x86-64 in 64 bit mode by default uses 32 bit integers. A special prefix is required to switch to 64 bit values.
x64 offers the ability to address far more memory (and a few 32-bit games are reaching the limit of 32-bit XP's ability to address memory)
Correct
and more data can be processed for each clock cycle because of 64-bit capabilities,
Only true for software that uses larger than 2^32 integers, which is limited to encryption and some advanced mathematics programs. Otherwise see above - adding 32 zeros to < 2^32 valued integers does not speed up calculation.
so I would say that 64-bit in and of itself does make some difference.
X86-64 benefits from 8 additional registers, and I believe a few less restrictions on how the existing 8 are used. Also 8 new SSE2 registers, and the removal of a few convoluted instructions. None of those improvements has anything to do with 64-bitness.
The downside of x86-64 is slightly lower density code, which reduces the effectively available bandwidth and hence performance.
Altogether benefits and downsides are approximately a draw, which is why x86-64 shows almost no performance improvements compared to IA-32, unless a) software employing large integers values is used or over 2GB (or 3, depending) of memory is required.
egslim
8th September 2007, 04:06 AM
I've read quite a bit more about Vista. Enough to know that it isn't just a prettier version of XP. There have been a number of improvements in the kernel, and the security features are not just limited to the often hated UAC.
I'm sceptical about the advantages these improvements offer in practice. Refinement beyond a certain point offers little value, though it always reads nice and interesting.
I can answer this one :) Vista is designed to take advantage of multi-core CPUs. When a comment was made comparing Vista's ability to use multi-core over XP's, Vista was said to be better. Little was said, though. Going dual core for Vista makes a big difference. No info on quad core.
"Designed to take advantage of" is one of the biggest BS lines in the IT world. It's a meaningless soundbite. The use of that line instead of a substantional answer is interesting though, sets off major alarmbells.
Tief
9th September 2007, 12:59 PM
It doesn't take more time, but it does take more cylces? That's nonsense, unless you compare different CPU's - which we don't.
Integer calculations rarely use values larger than 2^32. Adding zero's to make 64 bit values is a waste of bandwidth, and actually x86-64 in 64 bit mode by default uses 32 bit integers. A special prefix is required to switch to 64 bit values.
Correct
Only true for software that uses larger than 2^32 integers, which is limited to encryption and some advanced mathematics programs. Otherwise see above - adding 32 zeros to < 2^32 valued integers does not speed up calculation.
X86-64 benefits from 8 additional registers, and I believe a few less restrictions on how the existing 8 are used. Also 8 new SSE2 registers, and the removal of a few convoluted instructions. None of those improvements has anything to do with 64-bitness.
The downside of x86-64 is slightly lower density code, which reduces the effectively available bandwidth and hence performance.
Altogether benefits and downsides are approximately a draw, which is why x86-64 shows almost no performance improvements compared to IA-32, unless a) software employing large integers values is used or over 2GB (or 3, depending) of memory is required.
Let me first say that it is not productive to call what I said nonsense. Are you next going to start calling me names? :) Look, I am not posting here to get into a pissing contest with anyone.
I think we have misunderstood each other.
Did you read the link I posted?
http://www.stata.com/support/faqs/win/64bit2.html
If you agree that this model closely enough describes how an x86-64 performs a calculation, then we have some basis, I think, for communication.
Tief
9th September 2007, 01:34 PM
I'm sceptical about the advantages these improvements offer in practice. Refinement beyond a certain point offers little value, though it always reads nice and interesting.
"Designed to take advantage of" is one of the biggest BS lines in the IT world. It's a meaningless soundbite. The use of that line instead of a substantional answer is interesting though, sets off major alarmbells.
Skepticism noted. Do you know what the 'improvements' are? Do you agree, regardless of usefulness, which remains to be seen, that there are more changes than just adding Aero and UAC to XP?
I didn't take 'designed to take advantage of' from a MS site. Sorry I didn't quote the source, I didn't remember where I read what lead me to say that. It wasn't a direct quote, those are my words. I did not read any in-depth studies regarding Vista's ability to use muliple cores. I was not trying to provide a detailed post about how Vista takes advantage of multi-core processors, or how it differs from XP, just give the general idea I got from my reading.
egslim
9th September 2007, 02:53 PM
Let me first say that it is not productive to call what I said nonsense.
Let me repeat your exact words, bolding and italics mine:
It doesn't take any more time to perform the 2 calculations you talk about in modern architecture design. The time it takes for a cycle is determined by the CPU clock speed.
But, it does take more cycles to perform the calculation. Which is obviously going to have a much larger effect.
You are correct that the time it takes for a cycle to complete is determined by clockspeed. Time to complete = (number of cycles)/(clockspeed). So to say that something doesn't take any more time but does take more cycles than something else is nonsense, since clockspeed is a constant.
I'm not attacking you, I'm attacking your argument.
Did you read the link I posted?
http://www.stata.com/support/faqs/win/64bit2.html
If you agree that this model closely enough describes how an x86-64 performs a calculation, then we have some basis, I think, for communication.
I disagree about that. This whitepaper from AMD (http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/x86-64_wp.pdf) states that: If long mode is active [...] default operand size is 32-bits. Which means that unless ordered through a prefix x86-64 uses the same 32 bit integers as IA-32.
The article states that: 2. Sixty-four-bit computers will perform calculations slower on 32-bit quantities. As the white paper shows, this is not applicable to x86-64.
To be fair towards the author, he concludes with: Intel and AMD relax the constraint, which saves many turns of the crank and alleviates many of the disadvantages of making the computer wider. So he basically admits much of his analysis is irrelevant to x86-64.
egslim
9th September 2007, 03:28 PM
Skepticism noted. Do you know what the 'improvements' are?
No, I don't. Fortunately (for me), if you want to argue Vista incorporates significant improvements in the kernel it is up to you to show them. That's because you would be the one making a positive claim. While I'm merely sceptical, which means waiting for evidence.
Do you agree, regardless of usefulness, which remains to be seen, that there are more changes than just adding Aero and UAC to XP?
Sure, there's also a bigger clock at the side and built in DRM infections. If your point is one can list many differences between Vista and XP I agree. My question is about how many of them I should care.
I did not read any in-depth studies regarding Vista's ability to use muliple cores. I was not trying to provide a detailed post about how Vista takes advantage of multi-core processors, or how it differs from XP, just give the general idea I got from my reading.
One significant advantage of Vista over XP concerning multi-CPU systems is that only Vista is NUMA aware. However, that improvement is useless for single CPU multi core systems and systems with a single memory controller in general. Which includes almost all consumer and many workstation and server systems. To illustrate my point that refinements beyond a certain point offer little value.
I obviously don't know your sources. If you got the general idea about Vista's internal improvements from reading articles based on expert analysis your conclusion is probably right. But if you got it from articles based on regurgitated press releases and presentations for analists a lot more cynicism is warranted. And unfortunately the latter are far more common.
wuschel
10th September 2007, 08:14 AM
http://www.stata.com/support/faqs/win/64bit2.html
"Cranks", "Gears"... holy cow! What I believe he is trying to establish is how poorly 64 bit operations work on unaligned data. But that is nothing specific to 64 bit mode.
Performing time critical operations on unaligned data is an indication of poor software design rather than an intrinsic property of 64 bit mode.
wuschel
10th September 2007, 08:28 AM
No, I don't. Fortunately (for me), if you want to argue Vista incorporates significant improvements in the kernel it is up to you to show them. That's because you would be the one making a positive claim. While I'm merely sceptical, which means waiting for evidence.Things that spring into mind would be the redesigned audio stack - taking mixer and APOs out of kernel space - and the MMCSS. These are just the changes that I particularly dealt with already and hence know a thing or two about.
At least as far as the intent behind these changes, they are significant.
Generally it seems MS have been moving stuff out of kernel space quite a bit.
egslim
10th September 2007, 09:47 AM
Things that spring into mind would be the redesigned audio stack - taking mixer and APOs out of kernel space - and the MMCSS. These are just the changes that I particularly dealt with already and hence know a thing or two about.
At least as far as the intent behind these changes, they are significant.
Generally it seems MS have been moving stuff out of kernel space quite a bit.
Sure, that's a good move. But what's the practical effect from a consumer perspective? XP and XP drivers are already stable to such an extent that moving stuff from the kernel space has very little noticeable effect for consumers.
wuschel
10th September 2007, 02:11 PM
But what's the practical effect from a consumer perspective?
The notion aside that less code in critical system components (i.e. the OS kernel) - all other things being equal - means fewer critical flaws, it all depends on what you want to use it for.
If adopted well by the industry, the redesign of the audio stack means higher quality audio and/or reduced audio latency - at least as far as the concept.
And you get per process volume control, FWIW.
If none of this matters to you, you won't benefit from this particular improvement.
MMCSS benefits all multimedia applications, but they have to have a small amount of code added in order to make use of it... and so on.
If you aren't into multimedia, this does nothing for you, though...
Someone writing 3D apps probably is going to tell you that the WDDM architecture, along with Direct3D 10 allows for faster code paths in principle even though real world games currently do not seem to profit (yet?) - they say.
Why all of these improvements do not add up to an overall "snappier" and "safer" look and feel is due to at least three factors:
1.) The industry has to adapt to it, applications and drivers need to make use of the new options
2.) Since there's quite a bit of new code involved, chances are some brand new bugs have been introduced as well that still need to be ironed out
3.) The default installation is overloaded with all these gimmicks that marketing might have thought create this ominous "wow" experience thing they were talking about
It could be argued that even allowing MMCSS priority elevation for the DWM was a bad idea that only someone in marketing could have dreamed up ("...so the GUI feels snappier") - but stuff like this is not hard wired in the kernel, IOW it can be turned off.
So there are valid reasons for letting the dust settle as far as Vista, but certainly Vista is a whole lot more than just "XP with UAC and Aero" and the kernel has undergone some significant changes. If still in doubt, download the DDK (they call it "WDK" nowadays) and look at the conditionals in the header files!
egslim
10th September 2007, 02:38 PM
So, with my cynical hat on, Vista has many improvements "under the hood" whose effects are unlikely to be noticed by the vast majority of users. Not to mention that at first many effects are likely to be negated by new bugs.
For example, considering that most users are happy with on-board audio, I doubt they will notice anything about the audio improvements you mention.
I expect the "you" in your post includes me and many others.
wuschel
10th September 2007, 03:23 PM
So, with my cynical hat on, Vista has many improvements "under the hood" whose effects are unlikely to be noticed by the vast majority of users.
..yet. Remember when the first version of Direct3D came out. "Execute Buffers" bwrrrr! And everyone knew anyway that Windows is not a gaming platform! Other than that, you're not too far off.
Not to mention that at first many effects are likely to be negated by new bugs.Looking around, it does seem that way.
For example, considering that most users are happy with on-board audio, I doubt they will notice anything about the audio improvements you mention.
Funny you should mention that, because about the only audio solutions that have WaveRT drivers ready for them in fact are the on-board Azalia (a.k.a. "High Definition Audio") codecs. This means you can get down to like 3ms round trip latency with on-board audio - impossible in XP even with half of the pro and semi pro stuff.
Thus, for someone who cares about audio latency, this absolutely is an issue. And, as the audio quality of the on board stuff increased a lot - last but not least because for the Vista logo, there are requirements as far as SNR, THD and so on - quite a number of musicians and DJs are quite happy with the on board audio of e.g. their laptops, at least as far as sketching new ideas on the move.
This is just one scenario that might not have been self-evident to everyone, but as I said, it depends on how you want to use it.
On an unrelated note: In order to "experience" the address space randomizing feature in Vista, if you are fluent in any programming language that allows you to use pointers, write a simple program that allocates some memory and make p a pointer to that memory. Then print p and terminate.
Under XP, upon multiple runs of the program, the value of p normally will be the same on each run. Now try the same thing under Vista!
I suppose you know what this may be good for ;-)
I expect the "you" in your post includes me and many others.Absolutely. The use of you was in no way meant to offend you! Re-reading my post I reckon it could be misunderstood to be personally offensive which it was not meant to be.
ETA: If, on the other hand, all you expect from a Windows OS is some Web Surfing, E-mail, the occasional spreadsheet or letter and some music and/or video, the perfect OS for you is not Windows XP, but rather a copy of Ubuntu, which can be had for free ;-P
voidx
10th September 2007, 03:29 PM
There will potentially be many positives for network admins in corporate settings once some of the domain issues with Vista are ironed out a little more.
I think people underestimate exactly the breadth of what UAC does. With its virtualization of the registry and system files by profile, it removes the ability for users to corrupt the OS as easily, while still giving them the ability to install the applications they need. It removes the XP problem of "full admin to do everything, or regular user with rights to do nothing".
There are also further security policy templates that can be pushed down to Vista machines as compared to XP. That in combination with the new imaging tools and the fact that they use file based images rather than sector based will make managing and deploying Vista images easier than XP. ImageX and Windows PE appear to be pretty powerful tools.
One has to remember with anything from Microsoft, what parts of the OS are aimed at regular consumers, and which are aimed at corporate business, and in what priority.
Features and benefits completely useless to consumers are still features and benefits to corporations and network admins.
As with any OS, time and tinkering will reveal the most useful features and pros and cons. Anyone not spending time openly and in depthly evaluating Vista for a large scenario of applications doesn't really have any place to adequately comment on whether its crap or not.
I'm not saying you fit into that group. I'm just still trying mostly in vain to remove the blanket opinion / statements / personal bias' that seem to permeate any conversation about OS's.
wuschel
10th September 2007, 04:26 PM
I'm not saying you fit into that group.When you say: you, who do you think you mean with "you" when you say: you?
This is getting confyousing!
Tief
11th September 2007, 02:46 PM
But, it does take more cycles to perform the calculation. Which is obviously going to have a much larger effect.
You are correct that the time it takes for a cycle to complete is determined by clockspeed. Time to complete = (number of cycles)/(clockspeed). So to say that something doesn't take any more time but does take more cycles than something else is nonsense, since clockspeed is a constant.
Here is where you misunderstand me. I didn't say it takes the same amount of time to perform more clock cycles; to me it is patently OBVIOUS that more cycles mean more time. I shouldn't have to say that. It is RIDICULOUS for you to assume otherwise.
Tief
11th September 2007, 03:30 PM
No, I don't. Fortunately (for me), if you want to argue Vista incorporates significant improvements in the kernel it is up to you to show them. That's because you would be the one making a positive claim. While I'm merely sceptical, which means waiting for evidence.
Sure, there's also a bigger clock at the side and built in DRM infections. If your point is one can list many differences between Vista and XP I agree. My question is about how many of them I should care.
One significant advantage of Vista over XP concerning multi-CPU systems is that only Vista is NUMA aware. However, that improvement is useless for single CPU multi core systems and systems with a single memory controller in general. Which includes almost all consumer and many workstation and server systems. To illustrate my point that refinements beyond a certain point offer little value.
I obviously don't know your sources. If you got the general idea about Vista's internal improvements from reading articles based on expert analysis your conclusion is probably right. But if you got it from articles based on regurgitated press releases and presentations for analists a lot more cynicism is warranted. And unfortunately the latter are far more common.
Do you read the entire sentence? Clearly, in my initial statement I used the word improvement. Clearly, when I posted again, I said the changes were not necessarily 'improvements'. I said, 'remains to be seen". Don't you understand this means that I am backing off from my first statement, and no longer call the changes improvements?
I am not making a positive statement. I am saying there are changes beyond adding Aero and UAC. I posted a link which detailed changes in the kernel.
In your zeal to argue, you have overlooked the obvious fact that I have agreed with you in the 2 most basic points we have discussed:
1) x86-64 is SLOWER when performing 32-bit calculations than x86.
2) The changes in Vista are not necessarily improvements.
Tief
11th September 2007, 03:54 PM
..yet. Remember when the first version of Direct3D came out. "Execute Buffers" bwrrrr! And everyone knew anyway that Windows is not a gaming platform! Other than that, you're not too far off.
While I agree that Windows itself is not a gaming platform, I would say DirectX makes it so. Of course, the first purpose of DirectX is to bypass the OS as much as possible (according to what Alex St. John, the instigator of DirectX, said).
Asking your expert opinion, could DX run without Win, licensing aside?
I read that Microsoft claims that there are dependencies on Vista that DX10 has that prevent it from being implemented in XP. Personally, I think this is BS and MS is just trying to force more people to buy Vista. What do you think? Have any experience or knowledge about this?
wuschel
16th September 2007, 04:44 PM
While I agree that Windows itself is not a gaming platform, I would say DirectX makes it so.I should have been more clear for it to mean "Windows is not a gaming platform as far as the PC", because this was what many folks (including your's truly) claimed when the first attempt of DirectX was thrown on the community. Before, there even was "WinG". Who does remember that.
What I was trying to say is, that, during the mid-90's, the ultimate gaming OS as far as the PC was DOS and the first Microsoft attempt to change that did not really have any significant impact.
Of course, the first purpose of DirectX is to bypass the OS as much as possible (according to what Alex St. John, the instigator of DirectX, said).That was long ago. I do not have sufficient knowledge AFA non-audio related aspects - after all, DirectX purely is a marketing term - but as far as DirectSound that API which was meant to provide "direct" access to the sound device is completely emulated under Vista, IOW the only thing you can assume to be granted as far as "DirectSound" is that it most definitely is not "direct"!
Asking your expert opinion, could DX run without Win, licensing aside?
The field where I would consider my opinion to be "expert" is very limited. DX is a marketing term. after all, and on the technical level comprises a set of APIs, IOW "services that claim to be able to do stuff."
It's not a matter of providing the functionality of any given API, rather it*s a matter of doing so efficiantly.
I read that Microsoft claims that there are dependencies on Vista that DX10 has that prevent it from being implemented in XP. Personally, I think this is BS and MS is just trying to force more people to buy Vista. What do you think? Have any experience or knowledge about this?
My understanding of the whole matter (which is not exactly my field of expertise) is that WDDM plays an important role in DX10 acceleration (shorter code paths and... and...).
Hence, it may well be possible to give Win XP a DirectX10 API compatibility (AFAIR this already has been done by some gifted individual(S)), but any application using this API will only profit from those "shorter code paths" in the OS that ultimately the OS does or does not provide.
JonnyFive
17th September 2007, 06:35 AM
What I was trying to say is, that, during the mid-90's, the ultimate gaming OS as far as the PC was DOS and the first Microsoft attempt to change that did not really have any significant impact.
Ah, the heady days of nightmarish compatibility issues, nonstandard hardware support, and boot disks. :)
You're right, though, it was the gold standard back then.
That was long ago. I do not have sufficient knowledge AFA non-audio related aspects - after all, DirectX purely is a marketing term - but as far as DirectSound that API which was meant to provide "direct" access to the sound device is completely emulated under Vista, IOW the only thing you can assume to be granted as far as "DirectSound" is that it most definitely is not "direct"!
I think Vista dropped Directsound in favor of supporting OpenAL, so the Directsound calls need to be software emulated.
Those with Creative sound cards can download a driver update that passes all the Directsound calls to OpenAL instructions, thus gaining back hardware sound support under Vista for the Creative cards.
It seems like kind of a weird decision to make, and I'm not sure why MS decided to drop support for it entirely rather than maintain legacy support for a bit. If there's some deeper reason than "because they felt like it," I'm not sufficiently informed to know.
My understanding of the whole matter (which is not exactly my field of expertise) is that WDDM plays an important role in DX10 acceleration (shorter code paths and... and...).
That's what they claim. :)
Hence, it may well be possible to give Win XP a DirectX10 API compatibility (AFAIR this already has been done by some gifted individual(S)), but any application using this API will only profit from those "shorter code paths" in the OS that ultimately the OS does or does not provide.
Again, that's what MS is saying. I think you could probably get DX10's API instructions ported to XP, but it isn't something MS has any interest in. It's their API, and frankly they can do what they want with it.
If there are, in fact, significant gains to be had with Vista's revised hardware interface model, then obviously that wouldn't be realized by porting DX10's features to XP, but that's a different ball game, I suppose. So far, we've yet to even see anything significant in the way of new features from DX10.
wuschel
18th September 2007, 06:57 PM
I think Vista dropped Directsound in favor of supporting OpenAL, so the Directsound calls need to be software emulated.I believe what you're referring to is EAX that does not work in Vista anymore the way CT designed it.
DirectSound, OTOH, has been an emulated API ever since the advent of the WDM audio driver model, which would include Windows 98SE (except for VxD drivers), WinME, Win2k, and, of course, XP. Hasn't been "direct" for quite some time, already.
JonnyFive
19th September 2007, 06:47 AM
I believe what you're referring to is EAX that does not work in Vista anymore the way CT designed it.
DirectSound, OTOH, has been an emulated API ever since the advent of the WDM audio driver model, which would include Windows 98SE (except for VxD drivers), WinME, Win2k, and, of course, XP. Hasn't been "direct" for quite some time, already.
I'm fairly certain that Directsound provides a path of access to the sound card's hardware features under previous versions of windows. The issue, IIRC, had to do with redesign of the audio stack under Vista and how it handles the calls from Directsound. Previous versions allowed Directsound to make hardware calls to the sound card, which are impossible under the revised driver model.
You lose EAX, because it requires making hardware calls to the sound card, and you also lose hardware-accelerated 3d audio through DS3D. There may be other consequences (such as the loss of the use of X-RAM for the one or two games that use it), but I'm not sufficiently familiar with the situation to know.
I'm trying to find some kind of source for what you're talking about, but I'm having difficulty locating anything. Do you have a link to a knowledge base article or developer info or something?
wuschel
19th September 2007, 10:37 AM
I'm fairly certain that Directsound provides a path of access to the sound card's hardware features under previous versions of windows. The issue, IIRC, had to do with redesign of the audio stack under Vista and how it handles the calls from Directsound. Previous versions allowed Directsound to make hardware calls to the sound card, which are impossible under the revised driver model.
You lose EAX, because it requires making hardware calls to the sound card, and you also lose hardware-accelerated 3d audio through DS3D. There may be other consequences (such as the loss of the use of X-RAM for the one or two games that use it), but I'm not sufficiently familiar with the situation to know.There is exactly one scenario where DS access to the DMA buffer is still "direct" under XP: You need multi-client capable hardware, IOW more than one DMA engine per playback device and hardware mixing capabilities (otherwise Windows will always throw kmixer at the only available instance), the device needs to be a PCI device (IOW: no USB, FireWire or other stream class device) and on the driver end it needs to use WavePCI, not WaveCyclic as most devices do.
CT gaming cards (Audigy etc.) did provide all this in order to support DS3D hardware acceleration. So, yeah, that was the bit that worked in XP and does not work in Vista anymore. That also was the only bit which you could call "direct", still.
As far as PCM audio playback, that basically would be treated the same way as audio played back using the WaveOut API, i.e. emulated, except may be in very rare circumstances.
I'm trying to find some kind of source for what you're talking about, but I'm having difficulty locating anything. Do you have a link to a knowledge base article or developer info or something?
Somewhere on the Net there is this block diagram of the XP audio stack. If you google for it, you will find DirectSound sitting on top of kmixer, except for that arrow to the left bypassing it. The latter stands for the scenarios as laid about above, where some "directness" can be achieved.
But then again, if one really needs "direct" it's WDM/KS - not DirectSound - that is as close to "direct" as it possibly gets.
ETA: Direct access to "hardware features" (other than write access to a DMA buffer or read-only access to e.g. a clock register) has never been possible. DS3D uses non-PCM audio formats that the OS does not itself process and passes these down the audio stack. At no point does the client get to fiddle with the audio hardware directly!
JonnyFive
19th September 2007, 10:49 AM
There is exactly one scenario where DS access to the DMA buffer is still "direct" under XP: You need multi-client capable hardware, IOW more than one DMA engine per playback device and hardware mixing capabilities (otherwise Windows will always trow kmixer at the only available instance), the device needs to be a PCI device (IOW: no USB, FireWire or other stream class device) and on the driver end it needs to use WavePCI, not WaveCyclic as most devices do.
CT gaming cards (Audigy etc.) did provide all this in order to support DS3D hardware acceleration. So, yeah, that was the bit that worked in XP and does not work in Vista anymore. That also was the only bit which you could call "direct", still.
I was under the impression that this was the most common application for Directsound in the first place, but I definitely see your point about the other types of devices.
As far as PCM audio playback, that basically would be treated the same ways as audio played back using the WaveOut API, i.e. emulated, except may be in very rare circumstances.
How critical is the PCM playback in terms of how the calls are ultimately passed to the sound card? I understand the issues with the gaming audio have to do with environmental processing and 3d sound processing, but how much of a factor is that with PCM playback?
Does this become an issue with, say, outputting multi-channel positional audio during mixing or something?
Somewhere on the Net there is this block diagram of the XP audio stack. If you google for it, you will find DirectSound sitting on top of kmixer, except for that arrow to the left bypassing it. The latter stands for the scenarios as laid about above, where some "directness" can be achieved.
But then again, if one really needs "direct" it's WDM/KS - not DirectSound - that is as close to "direct" as it possibly gets.
I think I'll look for that, it sounds interesting.
JonnyFive
19th September 2007, 10:58 AM
I found the stack diagram, and I see what you mean. Also, it makes sense that OpenAL still works, as it bypasses the various MS layers of abstraction under the pre-Vista architecture as well. DS has to emulate Vista's new "session" thing for audio, which OpenAL doesn't because it simply interfaces with the audio hardware through the vendor's driver, not through the various Windows abstraction layers.
Makes sense.
wuschel
19th September 2007, 03:38 PM
How critical is the PCM playback in terms of how the calls are ultimately passed to the sound card? I understand the issues with the gaming audio have to do with environmental processing and 3d sound processing, but how much of a factor is that with PCM playback?
Normally, passing system calls is what one wants to avoid. Ideally there is a circular DMA buffer mapped into user space and an inexpensive way to either figure out the current play position or to get notified when a certain play position was reached. This is basically what the WaveRT port driver (new in Vista) provides.
The single most important aspect is audio latency, as far as I am concerned. Best one can possibly achieve with DirectSound normally is upwards of some 30ms which is clearly audible if you're doing stuff in real time.
There exist proprietary APIs, such as ASIO to work around this.
Does this become an issue with, say, outputting multi-channel positional audio during mixing or something?
That'd be the next issue: Dolby Digital / DTS streams are encoded audio streams with the delicate difference that they are wrapped in a PCM container. The next best thing Windows will do to them is to mangle them by mixing, re-sampling, adding dither... so there won't be anything left for a decoder to decode.
Re: WDm/KS:
I think I'll look for that, it sounds interesting.
I should have written: "as direct as it can possibly get taking into account the limitations of the OS environment"
It works reasonably well, but you also lose some high level functionality, such as software mixing / re-sampling. Depending on the underlying audio driver type, there still may be some (small amount of) buffering in kernel space as well.
JonnyFive
21st September 2007, 07:18 AM
Normally, passing system calls is what one wants to avoid. Ideally there is a circular DMA buffer mapped into user space and an inexpensive way to either figure out the current play position or to get notified when a certain play position was reached. This is basically what the WaveRT port driver (new in Vista) provides.
The single most important aspect is audio latency, as far as I am concerned. Best one can possibly achieve with DirectSound normally is upwards of some 30ms which is clearly audible if you're doing stuff in real time.
There exist proprietary APIs, such as ASIO to work around this.
Well, since MS completely scuttled Directsound with Vista, it seems like game developers at least may start to favor a third-party API. OpenAL is already supported by the Unreal engine games, among others.
That'd be the next issue: Dolby Digital / DTS streams are encoded audio streams with the delicate difference that they are wrapped in a PCM container. The next best thing Windows will do to them is to mangle them by mixing, re-sampling, adding dither... so there won't be anything left for a decoder to decode.
I can see why this would be not a good thing.
I should have written: "as direct as it can possibly get taking into account the limitations of the OS environment"
I understand what you mean, especially looking at the stack diagram.
Dr. Lao
24th September 2007, 08:09 PM
Well, I'm giving up on Vista for now.
My IT dept is going to install XP in a dual boot on my laptop.
I'm sick of 6 minutes to boot up, (with 5% of the battery eaten up), sick of slow speed (even with a good processor and 2 gigs of memory), sick of being asked "are you sure?" every time I want to do something. Sick of watching my battery being eaten up at breakneck speed. And sick of waiting for drivers to be created for my CCD imaging camera that I desperately want to use on my telescope.
Someday, Vista may not suck, till then, I'll just use good old XP.
© 2001-2009, James Randi Educational Foundation. All Rights Reserved.
vBulletin® v3.7.5, Copyright ©2000-2010, Jelsoft Enterprises Ltd.