*spin* GPU Capabilities (API-spec) & Efficiency

pc999

Veteran
The 360 isn't DX9 though. It's DX10.1 + some - some.

You really think that a 2009 gpu that learned from a 2005 gpu (and build upon) that also have much more transistors, and more units of each thing is actually slower or equal to the 2005 gpu :?:
 
You really think that a 2009 gpu that learned from a 2005 gpu (and build upon) that also have much more transistors, and more units of each thing is actually slower or equal to the 2005 gpu :?:

You don't know where the transistors went, and yes, a 2005 GPU could easily be capable of matching a 2009 GPU. You see, the GPU doesn't actually care what year it is.

Once again, could you point to where on the GPU die shot all these "much more units of each thing" are supposed to be, and which games show all of them in action? Because no-one else can.*

*Including developers who've worked with platform lol etc
 
The 360 isn't DX9 though. It's DX10.1 + some - some.

Citation needed! I get that this is the console forums, but remarks like this aren't helpful to anyone. If you're going to make a blunt and controversial claim, you better back it up.
 
Citation needed! I get that this is the console forums, but remarks like this aren't helpful to anyone. If you're going to make a blunt and controversial claim, you better back it up.

Didn't think it was controversial.

http://forum.beyond3d.com/showpost.php?p=1679112&postcount=17

Not the first time he's said this, and not the only developer that's said the like. You're welcome to investigate further, but I'm too busy making bad analogies about Xbone DRM, Xbone DRM defenders, and generally raging out about Xbone DRM to be helpful in digging up more comments atm tbm.

Seriously, Xbone DRM makes me want to buy a Wii U and big bottle of gin.
 
You don't know where the transistors went, and yes, a 2005 GPU could easily be capable of matching a 2009 GPU. You see, the GPU doesn't actually care what year it is.

Once again, could you point to where on the GPU die shot all these "much more units of each thing" are supposed to be, and which games show all of them in action? Because no-one else can.*

*Including developers who've worked with platform lol etc

http://www.eurogamer.net/articles/df-hardware-wii-u-graphics-power-finally-revealed

Xgpu is neat but considering that the same company (engeniring team IIRC?) with more resources and knowledge would do a worst job overall is quite disturbing...

Edit: btw I dont mean that there isnt very cool stuff on the xgpu, but as far as we know it can be on wiiu gpu. It is a big chip!
 
Last edited by a moderator:
pc999 said:
Also IIRC on of the advantages of a DX10 gpu (besides higher quality) is that it should be able to do what a DX9 do but a litle faster, at least according to what they said at the time.

function said:
The 360 isn't DX9 though. It's DX10.1 + some - some.

sebbbi from the post you linked said:
Efficiency is of course harder to estimate.

The argument was can the WiiU's gpu (d3d 10.1) be more efficient at various tasks than the 360's gpu. While the 360 of course is more flexible than a typical d3d 9 gpu (which I think was sebbbi's point), it doesn't mean it does those tasks as efficiently. I'm still waiting on why you believe that is the case.
 
Eh? What you quoted and replied with was:

Also IIRC on of the advantages of a DX10 gpu (besides higher quality) is that it should be able to do what a DX9 do but a litle faster, at least according to what they said at the time.

The 360 isn't DX9 though. It's DX10.1 + some - some.

Citation needed! I get that this is the console forums, but remarks like this aren't helpful to anyone. If you're going to make a blunt and controversial claim, you better back it up.

That's not even a subtle backpedal. Christ, just nut up admit that you thought you were calling someone out when actually you were clueless.

The argument was can the WiiU's gpu (d3d 10.1) be more efficient at various tasks than the 360's gpu. While the 360 of course is more flexible than a typical d3d 9 gpu (which I think was sebbbi's point), it doesn't mean it does those tasks as efficiently. I'm still waiting on why you believe that is the case.

No, that wasn't the argument. You can tell that from the words that appear in the post.

So in answer to your hilariously 'revised' question, no, that isn't what pc999 said. What he actually said - and you know this because you quoted it - was that "the advantages of a DX10 gpu (besides higher quality) is that it should be able to do what a DX9 do but a litle faster", with the only possible interpretation being that he though the 360 was a DX9 GPU (which apparently you thought too, going by the words that appear in your post that I quoted).

pc999 was inferring that because the Xbox 360 is a DX9 GPU, and the Wii U is a DX 10 GPU, the Wii U should be faster.

I simply stated that "The 360 isn't DX9 though. It's DX10.1 + some - some." Which you know. Because you just quoted it. I didn't say that the 360's GPU would do everything as efficiently as the Wii U GPU. Which you know, because you quoted what I said, and I didn't say that.

In fact I've said on far too many occasions to count in this very thread that I expect the Wii U GPU to be more efficient than Xenos, and that it should be able to do more with less. That the basis of my entire "160 shader" supposition.

Edit: and actually Xenos is more efficient than PC DX9 parts.
 
That's not even a subtle backpedal.

How is it a backpedal? Your post makes it seem like the 360's gpu might as well be classified as a d3d 10.1 gpu, which clearly isn't the case. While it has features that allow it to sometimes achieve an equivalent effect, that doesn't mean 1) it's as efficient 2) it's "DX10.1 + some - some". Your post was nothing more than a gross oversimplification. I asked you to elaborate and you responded with "I'm busy". Great discussion!

No, that wasn't the argument..

Then why post a response? "Hey guys here's an oversimplification that doesn't actually pertain to the debate." What was the point?
 
Right I've cleaning this post up for frustrated swearing and bile because I don't want it mucking up the start of a new thread.

Your post makes it seem like the 360's gpu might as well be classified as a d3d 10.1 gpu, which clearly isn't the case.

My post says exactly what sebbbi says, only I added the bit about "- some" because I know that Xenos can't do some cool stuff that DX 10.1 GPUs can do. If you have a problem with that feel free to spit out exactly what the problems is.

While it has features that allow it to sometimes achieve an equivalent effect, that doesn't mean 1) it's as efficient 2) it's "DX10.1 + some - some". Your post was nothing more than a gross oversimplification. I asked you to elaborate and you responded with "I'm busy". Great discussion!

1) I never said it was as efficient.

2) I'll just quote sebbbi: "I personally rank Xbox 360 GPU feature set somewhere between DX10.1 and DX11". And the "-some" comes from it not being able to do things like sample from a buffer (that was my bit).

So again, instead of hiding behind vagueties, please say why it couldn't be said to be "DX10.1 + some - some".

3) I didn't just respond with "I'm busy", I gave you a link to an awesome golden post by sebbbi which described ways in which Xenos was beyond a PC DX 10.1 part. And you did specifically ask for a source so I gave you one. just like you asked for.
 
Last edited by a moderator:
Sebbi said it included a similar feature set, but then in that same post said he wasn't sure about efficiency. No one is disagreeing that the 360 included a larger feature set than d3d 9 and that it was probably closer to 10/10.1 in that regard. But that's not what pc999 was talking about. pc999 essentially said (the part I bolded) that the wiiu could do x feature more efficiently than dx 9 (in this case the 360) because it supported d3d 10.1. In this regard I think it's a fair comparison. You have failed to demonstrate that the 360 not only has the same general feature set as a generic d3d 10.1 card (in this case the wiiu), but can execute that feature set at the same general efficiency. I have never backpedaled/changed/etc. from this position.

Can we also dial it back a bit? You don't need to go postal over an internet post.
 
Look, when someone says it's DX10 level it has nothing to do with how efficient it is. You could be running on a software renderer. That won't be efficient but it would still be DX10.

The point is, you can't assume that Wii U can do things more efficiently by virtue of having a DX10.1 feature set because that alone doesn't say how efficiently those features are implemented. Some features are supposed to inherently enable more efficiency, but there's no real reason why that wouldn't be the case on 360 too.

As for demonstrating that 360 has the same general feature set as a generic DX10.1 card, he really doesn't need to. Because he said that it was missing some features. These comparisons are really only approximations to begin with, because neither 360 nor Wii U run actual DirectX. But 360 almost certainly runs something much closer.
 
I read Wii U uses an API that is somewhat OpenGL like. They're not MS so that makes sense.
 
Look, when someone says it's DX10 level it has nothing to do with how efficient it is. You could be running on a software renderer. That won't be efficient but it would still be DX10.
Actually it would be quite efficient because CPUs are good at data processing and have highly-featured instruction sets, it just would not be as fast since they aren't nearly as wide/parallel as GPUs. XGPU doesn't suddenly become DX10.1+/- because you can achieve many similar effects in other ways; to get DX10.1 compatibility, you need to be able to achieve it THE SAME way. Otherwise you just aren't compatible; if you can't run the required shader code (because the features are missing) then your shader won't work. The shader can't magically grow a workaround branch to emulate a desired result in another way.

Also, please calm yourself the fuck down. I don't think willard wrote anything to deserve such a spittle-frothing response in return.
 
Actually it would be quite efficient because CPUs are good at data processing and have highly-featured instruction sets, it just would not be as fast since they aren't nearly as wide/parallel as GPUs.

Efficiency wouldn't be so good if judged by power consumption or transistor count though. Which is mostly what the discussion about Wii U is focusing on.

XGPU doesn't suddenly become DX10.1+/- because you can achieve many similar effects in other ways; to get DX10.1 compatibility, you need to be able to achieve it THE SAME way. Otherwise you just aren't compatible; if you can't run the required shader code (because the features are missing) then your shader won't work. The shader can't magically grow a workaround branch to emulate a desired result in another way.

Neither the Wii U or 360 are running DX9 / 10 / 10.1 so your point is moot. What matters is what the GPU's can do - what their feature sets are. To quote sebbbi again:

"I personally rank Xbox 360 GPU feature set somewhere between DX10.1 and DX11"

You really can't get around this by saying that the 360 might do some things a little differently to a PC DX 10.1 GPU. Not relevant. The Wii U might do some things a little differently for all we know (like Xenos perhaps it too can do some compute stuff not exposed by DX10).

Also, please calm yourself the fuck down. I don't think willard wrote anything to deserve such a spittle-frothing response in return.

I think you meant to say that to me and not Exophase. If you're going to tell someone to calm the fuck down, you should probably tell the correct person to calm the fuck down (or it looks like you too should calm the fuck down).
 
Last edited by a moderator:
Actually it would be quite efficient because CPUs are good at data processing and have highly-featured instruction sets, it just would not be as fast since they aren't nearly as wide/parallel as GPUs. XGPU doesn't suddenly become DX10.1+/- because you can achieve many similar effects in other ways; to get DX10.1 compatibility, you need to be able to achieve it THE SAME way. Otherwise you just aren't compatible; if you can't run the required shader code (because the features are missing) then your shader won't work. The shader can't magically grow a workaround branch to emulate a desired result in another way.

GPUs are have better perf/W than CPUs (is that what we mean by efficiency, or something else?) When it comes to graphics workload they're better at data processing and have better featured instruction sets, but of course that's not the only factor..

We simply don't know what DX level 360 could be compatible with because MS had no incentive to make a real DX version for it. But the same applies to Wii U, so if we're going to throw out comparisons with DX for 360 then shouldn't we do the same for Wii U?

Also, please calm yourself the fuck down. I don't think willard wrote anything to deserve such a spittle-frothing response in return.

lolwut? no u
 
Sebbi said it included a similar feature set, but then in that same post said he wasn't sure about efficiency. No one is disagreeing that the 360 included a larger feature set than d3d 9 and that it was probably closer to 10/10.1 in that regard.

You have failed to demonstrate that the 360 not only has the same general feature set as a generic d3d 10.1 card (in this case the wiiu), but can execute that feature set at the same general efficiency. I have never backpedaled/changed/etc. from this position.
DirectX 10 API has the following efficiency improving features (in order of importance): constant buffers, state blocks, command buffers, resource views and geometry shaders. It also mandated support for vertex texturing and geometry instancing (both optional in DX9 SM 3.0).

Constant buffers allow developer to move multiple shader constants at once to the GPU, state blocks allow developer to change multiple GPU states in a single call, command buffers allow developer to record multiple draw calls and play back later (this is used for multithreaded rendering and/or to reuse recorded sequence multiple times), resource views allow reinterpret cast for buffers (useful for many cases) and geometry shaders allow geometry amplification and sending separate triangles to multiple render targets (allow some algorithms that required multiple passes before to run in a single pass).

Xbox 360 has API extensions for all of these DX10 API features except for geometry shaders. Constant buffers are the most important of these, and in this area Xbox 360 matches DX 11.1 (CB size limit removed, CB partial update, CB partial binding). Xbox 360 also has hardware tessellator (but not as robust as DX11 hardware). Tessellator can be used for many similar purposes than geometry shaders, but it doesn't handle all the possible use cases. On the other hand DX10 geometry shaders can be used to many same uses cases as Xbox 360 tessellator, but geometry shaders in all existing DX10 hardware are designed for small geometry amplifications only (performance falls off a cliff after that). So in general, the efficiency boosting features of the API are pretty much tied. In addition to that, console APIs are much thinner layers between hardware and the software. And this reduces the CPU overhead a lot compared to PC.

In addition to the API efficiency (software) improvements, all existing DirectX 10 hardware have unified shaders. It's a huge efficiency improvement over DX9 hardware. Xbox 360 also has unified shaders (it was the first unified shader hardware), so it matches the shader execution efficiency with the PC DX10 hardware. Where it lacks compared to the PC DX10 hardware are the new backbuffer (and depth buffer) bandwidth optimization/compression techniques (color and depth compression) and caches. However Xbox 360 has dedicated 10 MB of EDRAM with internal 256 GB/s bandwidth dedicated solely for the ROPs. It's a brute force method to solve the BW issue. Modern hardware instead solves the same problem by depth and color compression and large L2 data caches (Tahiti = 768KB, Kepler = 1536KB).

If anyone wants to know more about Xbox 360 low level API efficiency extensions, I recommend the Gamefest 2010 article "Stripped Down Direct3D: Xbox 360 Command Buffer and Resource Management" (http://www.microsoft.com/en-us/download/details.aspx?id=5313). Microsoft has several other highly detailed Xbox 360 low level articles available in their site, if you want to know more about it's GPU and CPU architecture and it's graphics API. All these articles are available for the public (you do not need to be a developer to access them).
 
DirectX 10 API has the following efficiency improving features (in order of importance): constant buffers, state blocks, command buffers, resource views and geometry shaders. It also mandated support for vertex texturing and geometry instancing (both optional in DX9 SM 3.0).


Many thanks:!:

BTW would you be brave enough (for those that dont know, like me) to venture your opinion, given xgpu or a 4650 (not wiiu gpu), which one would you prefer to work with for a console ???

Sorry for the hard question ;)
 
geometry shaders in all existing DX10 hardware are designed for small geometry amplifications only (performance falls off a cliff after that). So in general, the efficiency boosting features of the API are pretty much tied.
This shouldn't be the case for AMD DX10 hardware especially if there's not a lot of data per vertex. High amplification cases should actually perform better. Synthetic tests have shown this though maybe you have shaders that perform otherwise.

As a hardware engineer my viewpoint of Xenos is DX9+. For the hardware geometry shaders and unlimited shader lengths made possible by an instruction cache are two of the defining features of DX10 and Xenos lacks them. So really this discussion is semantics though your explanation of your reasoning is educational.
 
As a hardware engineer my viewpoint of Xenos is DX9+. For the hardware geometry shaders and unlimited shader lengths made possible by an instruction cache are two of the defining features of DX10 and Xenos lacks them. So really this discussion is semantics though your explanation of your reasoning is educational.
Geometry shaders and unlimited shader length support certainly required major hardware changes, and laid important base for hardware capability for the future (compute shaders and programmable tessellation).

However for the game developers point of view, the 65536 instruction limit introduced in DX9 (SM3.0) was already enough for all practical purposes. Most game shaders still are in the 100-200 instruction ballpark. I haven't yet seen a pixel or vertex shader with more than 1000 instructions (in a final shipped game build).

This old thread (from 2008) pretty much summarizes the geometry shader situation regarding to DX10 hardware (http://beyond3d.com/showthread.php?t=50382). The performance wasn't good enough for general purpose usage, especially on Geforce 8800 (the most popular hardware of that time). On that card, it was actually slower to use GS to render cube maps in a single pass, and high amplification cases were even slower. ATI hardware was better, but the huge popularity of Geforce 8800, and the lack of DX10 support in Windows XP meant that geometry shaders saw minimal usage in games. We have used geometry shaders (stream out) mainly to emulate Xbox 360 memexport and to implement particle expansion (custom vfetch does same on Xbox 360).

Unified shaders were a much more important hardware change. It was not part of DX10 requirements as such, but as DX10 had a strict 32 bit floating point internal precision requirement in both pixel and vertex processing and it required robust texture sampling support in both pixel and vertex shaders, the unified shaders were pretty much the only sensible hardware implementation of those requirements. Previous hardware required no data path from texture samplers to vertex shaders, and vertex shaders had no means of addressing programmable (random access) memory locations. It's trivial to feed the vertex shader efficiently, if all the memory accesses are perfectly known in advance (just linear accesses). Without any memory stalls, the unit could have been designed quite differently. No ATI PC hardware had even a limited texture sampling support from the vertex shader in DX9, thus the move to unified shader hardware was a huge step up in that regard. That was also the most important improvement in DX10 hardware (incl. x360) from a game developer's point of view. The sheer amount of new algorithms made possible by programmable memory access in vertex shaders was a huge thing for us.
venture your opinion, given xgpu or a 4650 (not wiiu gpu), which one would you prefer to work with for a console ???
PC game development goes though a fat API that hides most of the interesting hardware specifics. There might be features in the Radeon 4600 series that DirectX doesn't expose that could improve the performance of some algorithms, or allow some new algorithms. Console developer would of course take advantage of these features, but on PC, you cannot directly optimize to every single GPU model. I have never directly optimized for 4600 series Radeons, or even had one installed in my workstation. So it's impossible for me to say what are the exact bottlenecks of that specific GPU model, or how it would compare against Xenos.

DX10 hardware in general wasn't that interesting for me. Most of the new features weren't immediately useful, but provided a good path for DX11 hardware development. However when all these DX10 features (unlimited shader length, integer processing, geometry amplification, programmable data access from vertex shaders) are combined with DX11 compute shader capabilities things get really really interesting :)
 
Doesn't Direct x 10 compliance require the GPU to process integers at I don't remember which precision (which xenos doesn't)?
 
Back
Top