noob Xbox360 (shader) questions

Does the Xbox 360 have the same exact shader architecture as ATi's DX10 HW? I don't see how it could since it only has 48 shaders IIRC, but I'm no expert, so that's why I'm asking.

The Xbox360 isn't like a traditional GPU in that it doesn't have ROPs, right?

Is the Xbox 360's z-buffer float format or round-off?
 
No, DX10 hardware shaders are a different kind of shaders... if correct, Xenos should have R520 derived hardware, meaning, it has a PS3.0 class shader. The number of shaders is irrelevant to this. Nvidias ION is DX10 hardware, but only has 12 "cuda cores", or shaders units.

A ROP is the Raster Operations Pipeline... if the 360 didn't have any, it wouldn't be able to display a picture^^ But... iirc, the ROPs are inside the eDRAM, though.

The last question I cannot answer.
 
http://www.beyond3d.com/content/articles/4/

http://www.beyond3d.com/content/reviews/16/

Dig in :). I tend to think of Xenos as a proto R600. Xenos shaders are more like R5x0 shaders actually. Vector + Scalar.

The GPU is tailored for 360's targetted resolutions too and does some things not in DirectX 9. The EDRAM targets 720p with MSAA, for example. But yes it has ROPs just like other GPUs.

As an aside, I've read that Xenos might be similar in some ways to the canceled original R400 chip that ATI was working on before they fell back to their "B plan" R420 design. ATI just refuses to talk about that little bump in the road.
 
Last edited by a moderator:
Is the Xbox 360's z-buffer float format or round-off?

It can do either 24-bit integer depth with 8-bit integer stencil, or 24-bit floating point depth with 8-bit integer stencil.

No, DX10 hardware shaders are a different kind of shaders... if correct, Xenos should have R520 derived hardware, meaning, it has a PS3.0 class shader.

Xenos isn't based on R520. Besides even if it were, it wouldn't mean that it only had a strictly SM3.0 feature set. DirectX shader models just specify a lower bounds on features that must be supported, so on PC you write your code according to that lower bound. When you have a GPU in a console you know the exact specifications of the hardware, so you can directly target that instead.

Anyway if you want an idea of the sort of things you can do with Xenos that go above and beyond the SM3.0 spec, you can have a look at the public documentation for Xenos microcode instructions that's in the XNA Framework docs. A few things of note are the full texture sampling support in a vertex shader, unnormalized texture fetches with an offset, and arbitrary vertex fetching.
 
So you say, it isn't a R520, because it can do more and then you go on and say SM3. is just a minimum feature set and most cards can do more?

As Swaaye said it, the architecture is more R600 like, but the actual "workers" more more R520 like.
 
As MJP say Xenos is closest to SM3, but the hardware is not derived from R520. It was designed in parallel with R520 by a different team.

Most chips, PC and console, have a few features that are unsupported thus it's likely every chip can be considered SM3+ or SM4+ depending on which shader model it's closest to. Consoles actually expose some of the + features which is why people usually bring this up in console discussions.
 
I dug up an interesting post from B3D resident Jawed. It elaborates on how the design of Xenos shaders, being similar to R300-R580 shaders, compare to R600.
http://forum.beyond3d.com/showthread.php?t=45061
Jawed said:
http://blogs.msdn.com/shawnhar/archi...er-second.aspx

http://texhnologix.blogzine.jp/texhn...shader_pe.html
http://texhnologix.blogzine.jp/texhn...madd_perf.html
http://texhnologix.blogzine.jp/texhn...llrate__1.html
http://texhnologix.blogzine.jp/texhn...fillrate_.html

Xenos's ALUs are a small evolution from the baseline set by R300, towards R600. R300's MAD+ADD was chopped down effectively for Xenos, into MAD+SF (or MAD + scalar ADD, if I remember right).

Simplistically, R300 and Xenos can issue two independent instructions each clock cycle, MAD + SF. In R300 this is vec3 MAD + SF. In Xenos it's vec4 MAD + SF. R300 can do vec4 MAD, with the SF joining in. The rationalisation for Xenos's design is that it's got to do both vertex and pixel shading, and vertex shading more commonly needs to operate on vec4 data (x,y,z,w) whereas in pixel shading vec3 (red, green, blue) is often all that's needed (hence the bias of R300's pixel shaders).

R300 uses the ADD ALU as a pre-processor for MAD instructions (mostly for Directx 8 "fixed functions", like scaling by 2x). At best you can get 3 instructions out of R300 (which is the same all the way up to R580), MAD for RGB, SF (e.g. reciprocal) and ADD/DX8-FF. The latter must always deliver its result to the MAD+SF ALU, though, it cannot write to a register (took me ages to realise this restriction :cry: ). As far as I can tell Xenos integrates the DX8-FFs and there's no "auxilliary ALU" like R300's ADD on the side.

R600 is vec4 MAD+SF but the twist is that it's 5 entirely independent instructions. On a good day it is 2x faster than R300 per clock, per ALU, but it prolly averages 30-50% faster.

Jawed
 
Last edited by a moderator:
Back
Top