Rein: Consoles put a stranglehold on DX10

A games rendering capability isn't defined by it's interface..

PS2 never used DX at all and yet could emulate many DX supported effects using other means..

Porting a game from Dx10 hardware to OpenGL ES hardware is only as hard as looking at the visual/rendering effects being used and trying to figure out how you could do the same thing either as fast or as close to that speed as possible..

Make sense?

I hear what your saying, but making a game for the PC were say the integer instruction set was vital to a majority of the games shaders, or a very large part of the games geometry was calculated in geometry shaders would not be easy to port to a console. You may be able to work around it (with speed and detail sacrafices) but it would require a lot of work, perhaps almost a complete remake of the engine. It makes more sense for PC devs to keep those DX10 features away from the core of the engine were they can easily be stripped out for a console without a huge amount of rework being required.

But as a result, the PC version would suffer.
 
Its the same as last gen. How many games did we see with DX9 as a minimum spec before the 360 launched? If I recall correctly, Battlefield 2 was the first game that didn't have a DX8 path.

Probably a very obvious point... if we were to look at a graph of the technical level of "Console Games" versus "average marketable PC Games" versus time, we'd see a smooth line for the PC, with something more stepped for the consoles..(still sloped by software quality..) ... and both curves probably averaging to be the same ??

but this time round, did maximum PC hardware capability overtake the consoles sooner ? or did we see the same pattern with SM2.0 > xbox1, Hardware TnL+SM1.0 v PS2, etc.. I can't remember all the dates & dx numbers..

Maybe we're seeing a dip in the Console's graph: - due to sony's U turn on the role of the cell in graphics.. it represents a tonne of r&d cost & machine cost that doesn't get "on-screen" as much as it could if, say, there were no vertex shaders and the SPU's were instead directly connected to triangle rasterization... ( i'll stop, i'm sure there are other threads on this :) )
 
Last edited by a moderator:
I hear what your saying, but making a game for the PC were say the integer instruction set was vital to a majority of the games shaders, or a very large part of the games geometry was calculated in geometry shaders would not be easy to port to a console. You may be able to work around it (with speed and detail sacrafices) but it would require a lot of work, perhaps almost a complete remake of the engine. It makes more sense for PC devs to keep those DX10 features away from the core of the engine were they can easily be stripped out for a console without a huge amount of rework being required.

But as a result, the PC version would suffer.
If you understand engine design then you'd understand that you'd NEVER build a production game engine which doesn't abstract all the hardware interface constructs into well defined highly modular classes, otherwise porting the codebase would be just unmanageable and pure hell..

And it's pretty clear you'd have to re-write this code for practically every single platform you port to, whether it's Dx10 to console or Dx10 to Dx9 PC.. But if Dx code is very well encapsulated then it shouldn't be very difficult at all..

Oh and just for the record, you'd never get a visual effect or feature that abolutely necessitates your "integer instruction set" [for example] independant of hardware.. Sure you might never get the speed you want using some other means on that specific platform, but different hardware configurations have different strengths and weaknesses and what may run like ass on platform A using code X may run amazingly well on platform B using code X (even though it runs well on platform A using code Y and like ass on platform B using the same process..)
 
Last edited by a moderator:
Probably a very obvious point... if we were to look at a graph of the technical level of "Console Games" versus "average marketable PC Games" versus time, we'd see a smooth line for the PC, with something more stepped for the consoles..(still sloped by software quality..) ... and both curves probably averaging to be the same ??

but this time round, did maximum PC hardware capability overtake the consoles sooner ? or did we see the same pattern with SM2.0 > xbox1, Hardware TnL+SM1.0 v PS2, etc.. I can't remember all the dates & dx numbers..

Maybe we're seeing a dip in the Console's graph: - due to sony's U turn on the role of the cell in graphics.. it represents a tonne of r&d cost & machine cost that doesn't get "on-screen" as much as it could if, say, there were no vertex shaders and the SPU's were instead directly connected to triangle rasterization... ( i'll stop, i'm sure there are other threads on this :) )
Why was my name on that quote? :oops: :cry:
 
Im talking about pure DX10 games. I.e. DX10 is the minimum spec as some fundamental aspect of the engine requires a DX10 feature that the consoles lack. I don't think we will see many games like that on PC even in 2-3 years due to the fact that they couldn't be ported to the consoles easily.

Its the same as last gen. How many games did we see with DX9 as a minimum spec before the 360 launched? If I recall correctly, Battlefield 2 was the first game that didn't have a DX8 path.

That's also because a lot of people still had DX8 video cards, and game companies don't want to limit their market. I mean, if HL2 had shipped without a DX8 mode, it would have impacted their sales significantly.
 
That's also because a lot of people still had DX8 video cards, and game companies don't want to limit their market. I mean, if HL2 had shipped without a DX8 mode, it would have impacted their sales significantly.

Exactly..

It's like a said before.. If you disregard consoles altogether you'll still see that if anything is putting the choke hold on high end Dx10 software it's going to be legacy PC support.. Because all those high end PC games using rendering technique X which is only possible on PC using geometry shaders, still has to somehow provide similar results for mister joe (I love WOW) bloggs with his 6800GT..
Not an easy feat without severely compromising fidelity or performance (or in most cases both)..

At least consoles are much more versitile as shifty mentioned earlier.. SM1.0-2.0 however is that annoying little bastard who you can't ignore because you want his money over the counter..
 
Exactly..

It's like a said before.. If you disregard consoles altogether you'll still see that if anything is putting the choke hold on high end Dx10 software it's going to be legacy PC support.. Because all those high end PC games using rendering technique X which is only possible on PC using geometry shaders, still has to somehow provide similar results for mister joe (I love WOW) bloggs with his 6800GT..
Not an easy feat without severely compromising fidelity or performance (or in most cases both)..

I still agree with what you say for the most part, however there comes a point in the PC market were the install base is so big in the current DX version that you can afford to build an engine that uses it as a minimum spec, just as most modern PC games use DX9 as the minimum spec rather than DX8.

What im saying is, even if we reach that point during this console generation, you STILL won't see many games shipping with DX10 as the minimum spec due to console limitations. Better to make DX9 your base spec and then the game is easily portable to those systems. Even though all systems may be capable of more than DX9c, its still the lowest common denominator in DX terms. Consoles won't suffer much because of this since they can go as far as their featureset will take them and still be reasonably comfortable that a DX10 PC can handle it. However the reverse isn't true.
 
Considering it's a closed system you can perfect your code and timing and whatnot to perfection, but if hardware A supports SOME features of hardware B but is limited in practicality by the API, how do you work around it? i'm just hoping someone understands what i'm trying to say.

I'm obviously not a coder, so it would be interesting to know.
 
When your talking about API's at this level they generally either expose a feature or don't.

If your thinking about say using geometry shaders on DX10 and getting the same effect on a console it would be up to the "engine" to hide the functional and architectural differences from the client code.

Exactly how this is done and at what level will vary from game to game.

I personally like to do this at as high a level as possible, and to not attempt to abstract the platform difference at the graphics layer level, but this approach isn't really comptable with building a generic engine. it just quarantines the code you need to rewrite to go cross platform. An example might be abstracting at the "DrawCar" level in a racing game rather than trying to make the low level graphics calls look the same.

Doing it at the high level allows me a lot of optimisations or compromises on a per platform level at the cost of potentially maintaining multiple low level rendering paths, but it's not a common approach anymore because people are moving towards more generic engines.
 
There aren't all that many games that push PCs to the edge. That was true last gen, too. When touting the awesomeness of DX9 back before X360 launched, there were in reality only a handfull of games that really used it, while the majority of PC games were DX8 or even DX7 titles, many of them cross-platform with either PS2 or Xbox.

there comes a point in the PC market where the install base is so big in the current DX version

That point is never reached. The vast majority of the PC install base is always made up of older machines, because PCs are useful for far longer to far more people than consoles. It takes quite a long time for what is currently cutting-edge to become common enough for the average game to have it as a minimum spec, and by that point, more powerful consoles are out.
 
There aren't all that many games that push PCs to the edge.

The same is true for console also. Only few big console games are able to push their respective consoles to the edge. The PC gaming market is pushed by visual hype and your ability to push highend graphics helps determine how well you are received by the lower end and midrange market. FarCry, Halflife2, Doom and a bevy of other titles all sold tons software to lesser powered PC users based on its capabilities on a highend system.

That point is never reached. The vast majority of the PC install base is always made up of older machines, because PCs are useful for far longer to far more people than consoles. It takes quite a long time for what is currently cutting-edge to become common enough for the average game to have it as a minimum spec, and by that point, more powerful consoles are out.

Visual improvement isn't based on just what DX API you use. FarCry on a DX 8.0 card looks a better than any other DX 8 games released prior to the release of DX9.
 
You may be able to emulate some aspects of the DX10 featureset on the consoles CPU's (and Xenos does go part way on its own), but much of the time its going to make no sense whatsoever or its going to be a lot slower.

I mean, how to you emulate the integer instruction set in DX10 pixel shaders on the SPU's? Ignore RSX's pixel shaders? And how would Xenon handle that?

Regarding my second point, it wouldn't take much to push the G8x/R6xx midrange parts beyond the console GPU's as it is and the next gen, being a reresh should be quite a bit more powerful. However that doesn't take away my basic point, there are DX10 GPU's that are already FAR more powerful than either console GPU and thats only going to become more true over the next 3-6 GPU refreshes that will occur during this console generation. It seems pretty clear to me that Rein was talking about that power going largely untapped aswell as the more advanced featureset. He certainly wasn't saying "consoles can do everything DX10 PC's can do if it wasn't for the smaller memory".
I wonder if features not supported in shader model 3.0 might still be supported in hardware on the console GPUs. As for the new instructions in shader model 4.0, what impact do they have on gaming or are they intended to facilitate GPGPU type workloads?
 
Last edited by a moderator:
That point is never reached. The vast majority of the PC install base is always made up of older machines, because PCs are useful for far longer to far more people than consoles. It takes quite a long time for what is currently cutting-edge to become common enough for the average game to have it as a minimum spec, and by that point, more powerful consoles are out.

I disgaree, the DX9 userbase for example was sufficient to support DX9 only games when the 360 launched. We didn't see many though because it would have broke compatability with the original xbox. Its no coincidence though that as soon as a DX9 capable console launched, a large number of DX9 only PC games started appearing (and doing fine).

I think its the same for DX10. In a couple of years enough DX10 gaming PC's will be out there to support DX10 as a minimum standard. By that time the current G8x series will be as old as the 6xxx series is today. However we won't see many DX10 only games because it would hurt compatablity with the consoles. Thats what Rein is saying. As soon as we see DX10+ capable consoles though the PC market will very quickly transition to DX10+ as the minimum spec.
 
Back
Top