PDA

View Full Version : DX10 on Windows XP


ViperJohn
04-23-07, 02:09 PM
I knew is was just a matter of time before someone would be working on getting DX10 working
on WinXP - http://alkyproject.blogspot.com

If they can pull it off, and I see no reason they won't be able to, the last legitimate reason to use
Windows ME-II (Vista) would be gone.

Viper

dudleycpa
04-23-07, 02:17 PM
If they can pull it off, and I see no reason they won't be able to, the last legitimate reason to use
Windows ME-II (Vista) would be gone.
Viper

Amen Brother Amen

CrazyIrish
04-23-07, 02:56 PM
For this to work would modified videocard drivers be necessary?

ViperJohn
04-23-07, 03:05 PM
For this to work would modified videocard drivers be necessary?

I do not think so but it's not ready for prime time yet either. You can try out the the preview build here:
http://fallingleafsystems.com/site_media/preview.zip.

Just follow the instructions in the readme file inside the zip file.

Viper

doublejack
04-23-07, 03:07 PM
For this to work would modified videocard drivers be necessary?

It depends on what they're doing. If they are implementing true DX10 on XP then you would need a DX10 vid card and appropriate drivers. However, if they are faking DX10 then no, you wouldn't need either, but expect performance to take a major hit.

ViperJohn
04-23-07, 03:27 PM
It depends on what they're doing. If they are implementing true DX10 on XP then you would need a DX10 vid card and appropriate drivers. However, if they are faking DX10 then no, you wouldn't need either, but expect performance to take a major hit.

To get DX10 in XP you would of course need DX10 hardware which CrazyIrish has in the form of an 8800
and the appropriate 8800 XP drivers. You can't really "fake" DX10. You either have the hardware to
support DX10's specific function calls or you don't.

The is no reason to expect a "major" performance hit with DX10 in XP. If anything it DX10 would probably
be faster when executing in kernel mode in WinXP than in Vista but it is WAY to early to speculate on
anything at this point.

The whole point is someone has taken on the task of getting DX10 working in WinXP and has met with
some success on some thing MicroSoft said could not be done which we all knew was pure BS. DX10 is
just another API and MS could have ported it to work in WinXP if they wanted to. DX10 is Vista only was
just an MS hook to get you (more like force you) to buy and use their "latest and greatest" new pig OS ...
Windows ME-II aka Windows Vista.

Viper

doublejack
04-23-07, 04:41 PM
To get DX10 in XP you would of course need DX10 hardware which CrazyIrish has in the form of an 8800
and the appropriate 8800 XP drivers. You can't really "fake" DX10. You either have the hardware to
support DX10's specific function calls or you don't.

Instead of faking I should have used the term emulating. Emulating and offering the true blue API to applications are two different animals, and yes - one could emulate DX10.

When I first read the blog you linked, I didn't get enough info to determine which method was being utilized. But after downloading the demo, it's clear the intent is to provide true DX10 support in XP. It's not done yet but looks promising.

The is no reason to expect a "major" performance hit with DX10 in XP. If anything it DX10 would probably
be faster when executing in kernel mode in WinXP than in Vista but it is WAY to early to speculate on
anything at this point.

I did not say implementing DX10 in XP *would* result in a major performance hit. I would expect the hit only if it is being emulated. Actually I agree with you that if DX10 will run on XP then it will probably be faster. Vista has a higher bloat factor.


The whole point is someone has taken on the task of getting DX10 working in WinXP and has met with
some success on some thing MicroSoft said could not be done which we all knew was pure BS. DX10 is
just another API and MS could have ported it to work in WinXP if they wanted to. DX10 is Vista only was
just an MS hook to get you (more like force you) to buy and use their "latest and greatest" new pig OS ...
Windows ME-II aka Windows Vista.

Viper
Yeah, making DX10 Vista-only was definitely part of the marketing plan. M$ had to create reasons for people to upgrade. Can't really blame them though, they are in the business of making money.

Evilsizer
04-23-07, 05:08 PM
As one thing viper touched on that is key to this about video performance is this. xp put the calls for drivers in the kernel, vista does these same calls outside of the kernel. Untill they tweak this out of kernal process more i would expect vista to be slower. Even if comparing xp to vista weither 32 or 64bit os is used.

ViperJohn
04-23-07, 06:08 PM
Instead of faking I should have used the term emulating. Emulating and offering the true blue API to applications are two different animals, and yes - one could emulate DX10.

When I first read the blog you linked, I didn't get enough info to determine which method was being utilized. But after downloading the demo, it's clear the intent is to provide true DX10 support in XP. It's not done yet but looks promising.

I did not say implementing DX10 in XP *would* result in a major performance hit. I would expect the hit only if it is being emulated. Actually I agree with you that if DX10 will run on XP then it will probably be faster. Vista has a higher bloat factor.

Yeah, making DX10 Vista-only was definitely part of the marketing plan. M$ had to create reasons for people to upgrade. Can't really blame them though, they are in the business of making money.

Yeah if you tried to emulate DX10 on DX9 hardware there would be a big performance hit as that would all
be done in software. It would be pointless to emulate DX10 or DX10 capable hardware though.

I can't blame MS for wanting to make money either but putting out a ridiculessly expensive, DRM infested,
bloated pig of Malware that brings absolutely nothing new to the table except general user unfriendliness
and the worthless "Aero" desktop isn't the way lol. It single handedly breaks more hardware, software and
darn near anything else computer that even WinXP SP1 did and that is saying something!

Viper

emceepecks
04-23-07, 06:13 PM
I really hope DX10 comes to XP. I don't mind Vista, but I'd still much rather continue to use XP.

ViperJohn
04-23-07, 06:29 PM
As one thing viper touched on that is key to this about video performance is this. xp put the calls for drivers in the kernel, vista does these same calls outside of the kernel. Untill they tweak this out of kernal process more i would expect vista to be slower. Even if comparing xp to vista weither 32 or 64bit os is used.

Thats not all. WinME-II's(Vista) all mighty protected mode kernel, which even drivers can't use directly
and get WQHL, has been cracked open like an over rip watermelon rotting in the sun. So while every
worm, virus and root kit writer can have a field day accessing the kernel directly, at least when there
are enough copies of Vista on desktops to make it worth while for them to play, you will still have crap
for drivers since they have to go through an MS code overlay to use the kernel indirectly.

Of course that kernel access overlay is damn handy for MicroSoft though. If MicroSoft, in it's infinite
wisdom, decides a driver or the Vendor coupled to that driver is dangerous (as in oh my god competition
with something MicroSoft, DRM issues or simply refuses to dance when MS tries to pulls the vendors
strings) they can kill those drivers, and the vendor that goes with them, in a heartbeat with a simple
hidden "auto update" to the kernel access overlay.

Viper

greyharte
04-23-07, 06:51 PM
[QUOTE=doublejack]Instead of faking I should have used the term emulating. Emulating and offering the true blue API to applications are two different animals, and yes - one could emulate DX10. [QUOTE]


technically thats what vista is doing now for dx9 apps ... "emulating"...

ViperJohn
04-23-07, 06:56 PM
[QUOTE=doublejack]Instead of faking I should have used the term emulating. Emulating and offering the true blue API to applications are two different animals, and yes - one could emulate DX10. [QUOTE]


technically thats what vista is doing now for dx9 apps ... "emulating"...

If you want to run DX9 games and applications on Vista install the April version of DX9 or you will not go very
far. Heck the benchmarks won't even install or run without it. It's the first DX version that wasn't 100% back
ward compatible lol

Viper

thlnk3r
04-23-07, 09:25 PM
"Windows ME-II (Vista)" I like that Viper :p

ViperJohn
04-23-07, 10:02 PM
"Windows ME-II (Vista)" I like that Viper :p

Not my idea. I saw it some where else and it fits so darn well I use it now too lol.

Viper

d94
04-23-07, 10:28 PM
i like my vista :p

ViperJohn
04-23-07, 11:48 PM
i like my vista :p

I liked my ex-wives too. Doesn't mean they weren't bad though lol.

Viper

JigPu
04-25-07, 12:44 PM
Yeah if you tried to emulate DX10 on DX9 hardware there would be a big performance hit as that would all
be done in software.
Not necessarily. Software rendering is one route, but not the only route. I'd be willing to bet that the vast majority of DX10 calls have a direct DX9 equivlant or can be "emulated" with multiple DX9 calls. All that you'd need to write is a wrapper to translate the DX10 calls made by an application to their equivlant DX9 instructions. The idea would be pretty much like Wine for Linux -- provide something that translates one set of calls (Win32) to another (POSIX) without ever resorting to true emulation.

EDIT: Note that I'm not saying that this is what Alky does. I'm pretty sure the datastructures used in DX10 are a bit different than those in DX9, which would make a DX10->DX9 wrapper difficult to say the least. I should give Alky a try on my card (Radeon 9500np) to see what happens if the card doesn't support DX10...

JigPu

emceepecks
04-25-07, 01:37 PM
I just saw this on digg

http://digg.com/linux_unix/Project_aims_to_bring_DX10_gaming_to_XP_Linux_OS_X

Evilsizer
04-25-07, 02:11 PM
Not necessarily. Software rendering is one route, but not the only route. I'd be willing to bet that the vast majority of DX10 calls have a direct DX9 equivlant or can be "emulated" with multiple DX9 calls. All that you'd need to write is a wrapper to translate the DX10 calls made by an application to their equivlant DX9 instructions. The idea would be pretty much like Wine for Linux -- provide something that translates one set of calls (Win32) to another (POSIX) without ever resorting to true emulation.

EDIT: Note that I'm not saying that this is what Alky does. I'm pretty sure the datastructures used in DX10 are a bit different than those in DX9, which would make a DX10->DX9 wrapper difficult to say the least. I should give Alky a try on my card (Radeon 9500np) to see what happens if the card doesn't support DX10...

JigPu
takes me back, with you talking like that... remember the good ole 3dfx glide wrappers. that we could play opengl games with the glide wrapper. ahh those were the days.

ViperJohn
04-25-07, 03:35 PM
takes me back, with you talking like that... remember the good ole 3dfx glide wrappers. that we could play opengl games with the glide wrapper. ahh those were the days.

MicroCrap is doing everything it can to drive a stake through OpenGL's heart lol.

Viper

InsaneManiac
04-25-07, 03:46 PM
Well this is good news to hear. Actually Vista's Direct X 9 is not emulated. The WDDM driver is written from the ground up. To play game's in Direct X 9.0 Vista has a version of Direct X9 that is not available on XP. It's called Direct X9.0L, this 9.0L is supposedly better than XP's Direct X9 mode.

Sadly Microsoft is going to crap themselves if this actually goes through. If not then expect their lawyers to play the legal card and say that Alky cant touch their intellectual property and slap them with a major lawsuit for trying to do something when their not supposed to.

Moving on though, from what I have read around some forums is that OpenGL 3.0 is supposed to be coming out and that Direct X10 is actually trying to play catch up with OpenGL. So it's going to be interesting to see what happens.

I most likely will shift gears to Vista only when I absolutely have to, until then I am sticking with good old XP.

In a few years Vista is supposed to be the gamer's OS, but until then there is not much we need to do. Tearing apart Vista, tweaking it and turning off a lot of the crappy bloatware, I think Microsoft might have a winner on their hands if the Aero features, security protocols and bloatware is turned off.

In terms of the DRM, there is always a way around it, believe me, I haven't had problems with DRM in Windows XP. (Have to love Audacity and it's sound recording functions, takes out the DRM and I can do what I want with the songs I bought.) Although DRM is riddled in Vista, there is hope though that with guy's like Jobs and Amazon moving for a DRM free future, we could not see as much of this trouble and hassle in Vista.

doublejack
04-25-07, 10:40 PM
Not necessarily. Software rendering is one route, but not the only route. I'd be willing to bet that the vast majority of DX10 calls have a direct DX9 equivlant or can be "emulated" with multiple DX9 calls. All that you'd need to write is a wrapper to translate the DX10 calls made by an application to their equivlant DX9 instructions. The idea would be pretty much like Wine for Linux -- provide something that translates one set of calls (Win32) to another (POSIX) without ever resorting to true emulation.

EDIT: Note that I'm not saying that this is what Alky does. I'm pretty sure the datastructures used in DX10 are a bit different than those in DX9, which would make a DX10->DX9 wrapper difficult to say the least. I should give Alky a try on my card (Radeon 9500np) to see what happens if the card doesn't support DX10...

JigPu

This is exactly what I was thinking Alky might be doing when I made my first post in the thread. A more recent example is the utility / mod for Oblivion called Oldblivion. The Oldblivion mod allows people with pre-SM 2.0 / DX 9 cards (like a Ti4600) to play Oblivion. It does this by wrapping all of the shader calls and remapping them to SM 1.1 It works, but the result is barely playable even on former heavyweight cards like the Ti series. Part of the problem is those older cards lack the raw horsepower needed, but the extra emulation layer is also a culprit.

Dan0512
04-26-07, 11:28 AM
Not necessarily. Software rendering is one route, but not the only route. I'd be willing to bet that the vast majority of DX10 calls have a direct DX9 equivlant or can be "emulated" with multiple DX9 calls. All that you'd need to write is a wrapper to translate the DX10 calls made by an application to their equivlant DX9 instructions. The idea would be pretty much like Wine for Linux -- provide something that translates one set of calls (Win32) to another (POSIX) without ever resorting to true emulation.

EDIT: Note that I'm not saying that this is what Alky does. I'm pretty sure the datastructures used in DX10 are a bit different than those in DX9, which would make a DX10->DX9 wrapper difficult to say the least. I should give Alky a try on my card (Radeon 9500np) to see what happens if the card doesn't support DX10...

JigPu

If you get any interesting results, please make a video or similar so we can all take a look at it.

dan

JigPu
04-27-07, 03:28 AM
Well, I've gone and threw in the DLLs in the Alky preview, as well as download the SDKs needed to sucessfully build the tutorials. If anybody else wants to try this, make sure you have a descent chunk of free time -- it took me an hour to download and install them (if you don't already have Visual Studio, it'll be even longer...). Also, don't worry too much if the projects don't build "out of the box" since there are two references missing (one to a library directory included in the DX SDK, and another to an include directory).

As of this moment, it appears that Alky provides basic DX10 support for my Radeon 9500. By that I mean most verticies appear to be correctly lit and textured, but there is no pixel or vertex shading going on. Additionally, UI elements that should be present are not appearing for some reason.

The DirectX SDK also includes a number of pre-compiled samples that can be tested. All but three of these samples crash or close immediatly after opening. Alky appears to be placing a log within the directory that contains the reason for the crash. For instance, this is the log entry I get when running the BasicHLSL10.exe program:

Log (NuContext): Setup
Log (NuContext): Setup
Error (NuCore): Unsupported function called from 010474EE: ID3D10EffectVectorVariable_SetRawValue

I'm not sure if "Unsupported function" means Alky hasn't implemented the mentioned function or if it can't coax my old DX9 hardware into doing it. I'm really hoping that its the former given that the basic DX10 functions are working.

JigPu

JigPu
04-29-07, 12:40 AM
Some more information after poking around.

Whatever Alky is doing, it's DLLs are certianly convincing the tutorials included in the SDK that I have DX10. A few of them have both DX9 and DX10 codepaths in them, and removing Alky causes them to run perfectly instead of crash.

I've tried screwing with various things in the source to get the shaders to work, but I'm afraid that its beyond me. One thing that appears very odd though is that the number of shader passes defined in the program's .FX file does not appear to have any measurable change in program execution. To test this, I inserted a piece of code which would increment the red channel of the background color each time the shader code would be called. Increasing the number of passes did not appear to decrease the time it took before the background became a saturated red. By contrast, making a similar change to a DX9 demo did have this effect.

Honestly, I'm not sure what to make of it. It could just be me not knowing DirectX (my graphics programming experience is limited to taking a single class on OpenGL in Java last year :D), it could be Alky somehow causing the program to only ever see one pass (regardless of how many are defined), or it could be a number of other things.

It'd be really nice if Microsoft provided a DirectX 10 reference rasterizer for Windows XP... Since the reference rasterizer is software anyway, there's no way it'd "require" vista, and I could find out what is wrong a lot easier :D

JigPu

twEEkerAreUs
04-29-07, 02:23 AM
Not my idea. I saw it some where else and it fits so darn well I use it now too lol.

Viper

I love that term haha, first time I have heard it. Going to use it from now on...

Windows ME II LMAO

nd4spdbh2
04-29-07, 10:55 AM
I knew is was just a matter of time before someone would be working on getting DX10 working
on WinXP - http://alkyproject.blogspot.com

If they can pull it off, and I see no reason they won't be able to, the last legitimate reason to use
Windows ME-II (Vista) would be gone.

Viper


intresting... i could see why MS hasnt released a dx10 update for xp cus they want you to buy vista... but if im not mistaken windows xp started out with dx8 then changed to dx 9 so i dont see why this wouldnt be possible..

and Windows ME-II thats halarious and yet so true.

InsaneManiac
04-30-07, 03:55 AM
Well, I've gone and threw in the DLLs in the Alky preview, as well as download the SDKs needed to sucessfully build the tutorials. If anybody else wants to try this, make sure you have a descent chunk of free time -- it took me an hour to download and install them (if you don't already have Visual Studio, it'll be even longer...). Also, don't worry too much if the projects don't build "out of the box" since there are two references missing (one to a library directory included in the DX SDK, and another to an include directory).

As of this moment, it appears that Alky provides basic DX10 support for my Radeon 9500. By that I mean most verticies appear to be correctly lit and textured, but there is no pixel or vertex shading going on. Additionally, UI elements that should be present are not appearing for some reason.

The DirectX SDK also includes a number of pre-compiled samples that can be tested. All but three of these samples crash or close immediatly after opening. Alky appears to be placing a log within the directory that contains the reason for the crash. For instance, this is the log entry I get when running the BasicHLSL10.exe program:



I'm not sure if "Unsupported function" means Alky hasn't implemented the mentioned function or if it can't coax my old DX9 hardware into doing it. I'm really hoping that its the former given that the basic DX10 functions are working.

JigPu
Alright, I'm not very familiar with programming, heck I don't even know how to program but looking over your post again I figured something. Back several months ago before the 8xxx series came out and Vista came out, the guys at Extremetech were talking to people who worked on Crysis and various other games that were going to have Direct X 10. They said somewhere about since they didn't have the actual hardware to do Direct X10 they had to emulate it.

What if its possible to take the Direct X9.0L that is on Vista and actually get it to work onto XP. Then work your way up to Direct X 10? There could be some major improvements on the software level if 9.0L could be read upon XP.

A major problem that your going to run into with Direct X 10 and your 9500 is that at the hardware level your card can only do pixel and vertex shaders. The shaders aren't unified, Shader Model 4.0 isn't written into the card, and Geometry shaders were not even considered until Direct X10.

You are doing a lot more than I could ever do, but would it be better if you tried focusing your attention upon 9.0L? My biggest interest is to what the 9.0L could bring in terms of performance over 9.0C.

JigPu
04-30-07, 05:19 PM
A major problem that your going to run into with Direct X 10 and your 9500 is that at the hardware level your card can only do pixel and vertex shaders. The shaders aren't unified, Shader Model 4.0 isn't written into the card, and Geometry shaders were not even considered until Direct X10.
I thought that might be causing some of the problem too initially, but there appears to be a line in the program which specifies how to compile the shaders. Changing it to 2.0 didn't appear to do anything, but I wouldn't even remotely rule out that I didn't do something right :D

You are doing a lot more than I could ever do, but would it be better if you tried focusing your attention upon 9.0L? My biggest interest is to what the 9.0L could bring in terms of performance over 9.0C.
I doubt 9.0L brings all that much over C. Probably about as much as a change of drivers... I could focus on porting 9.0L, but that's way more than what I'm doing now -- essentially I'm just trying to figure out what Alky has already done and what (if anything) it means. :D

JigPu

deathman20
05-01-07, 12:45 PM
What if its possible to take the Direct X9.0L that is on Vista and actually get it to work onto XP. Then work your way up to Direct X 10? There could be some major improvements on the software level if 9.0L could be read upon XP.
...

You are doing a lot more than I could ever do, but would it be better if you tried focusing your attention upon 9.0L? My biggest interest is to what the 9.0L could bring in terms of performance over 9.0C.

Why even get DX9.0L work on XP? Well I can see from a point since Vista is DX10 orientated and that its the dominate force in Vista, but you'd still need DX10 before even considering DX9.0L. But DX9.0L is DX9.0C, just the C has been replaced with L for Longhorn. It still accepts all DX9 updates like DX9.0C would just it has a different base code to translate it to work or be emulated with Vista.

InsaneManiac
05-08-07, 01:48 AM
Well not entirely would Direct X 9.0L be required to use Direct X10. I see your point that Direct X9.0L was designed for the codename Longhorn, but I have read bits and pieces this year and the year before last, that Direct X 9.0L is going to a considerable performance increase over C. Well the question I have is...since the WDDM model for vista is written from the ground up, would there be a possibility to access the driver model for XP and try to get it up to par with Vista's driver model? If so then sweet. But Vista is bloatware to the max and is more idiot friendly than it is User friendly. Example 1 "Are you sure you want to install this software? It could possibly screw you over?" *Click click* "Are you really sure that you want to do this? It's dangerous etc etc." *Click click* "Oh we're sorry you don't have administrator privileges for doing that." :bang head WTF?! I am the admin and I want to do this, now give me my dang access. :bang head

New Slogan for Vista: "For Idiots, By Idiots, and To Idiots of the world." :D

Krome
05-08-07, 02:03 AM
It could possibly screw you over?" *Click click* "Are you really sure that you want to do this? It's dangerous etc etc." *Click click* "Oh we're sorry you don't have administrator privileges for doing that." :bang head WTF?! I am the admin and I want to do this, now give me my dang access. :bang head



Disable UAC if you're getting that kind of junk in Vista!