NVIDIAs claims on R300 are wrong?

ram

Newcomer
Dave Baumann wrote in his Radeon 9700 review at page 2:

Here's a small table to illustrate the progress of DirectX Vertex Shaders and where R300 sits:

Code:
Vertex Shaders         DX9.0 VS2.0          R300 
Max Instructions         1024               65026  
Max Constants             256               256 
Temp Registers             12                36 
Flow Control              Yes                Yes

versus the claim in the CineFX white papers:

vertshader.jpg


Interesting!


Is your info based on the caps info?
 
the information was initially passed to me via certian people who frequent these boards, although a 'competetive analysis' document was passed to me on Friday (after the majority of the review had been written) which I have asked if I can publish in full.

WRT to NV's docs and ATI's specs to a certain extent ATI caused the consufions becuase they published DX9 specifications, not what R300 is actually capable of. So, yes, ATI also go beyond PS/VS2.0 is a few places but that wasn't well reported before.
 
Intresting...

So R300 basically has more temporary registers than NV30 (32 versus 16) and apparenly, together with loops & branching, it has the same vertex instructions capability as NV30.

Dave - what type of flow control? static or dynamic?
 
65536 is an easily factored number in the binary world (1024 x 64).

65026 doesn't really make sense though (32,513 x 2?). Is this the correct number?
 
kid_crisis said:
65536 is an easily factored number in the binary world (1024 x 64).

65026 doesn't really make sense though (32,513 x 2?). Is this the correct number?

Exactly, doens't make sense!

Does R300 support True Dynamic Branching with loops & subroutines, etc?

From all the articles I've read, it seems that R300 supports 1024 vertex instructions compared to 256 on NV30, BUT, NV30 can raise this number to 65536 through the use of loops & subroutines, while R300 remains limited to 1024 vertex instructions and is not capable of what NV30 is capable (true dynamic branching).

The table brought in Dave's review confuses me...
 
Do they write something new about the PS? It is still not clear if the R300 is capable of 96 (NVIDIA claim) or 160 (ATI claim) PS 2.0 instructions per pixel.
 
ram said:
Do they write something new about the PS? It is still not clear if the R300 is capable of 96 (NVIDIA claim) or 160 (ATI claim) PS 2.0 instructions per pixel.

That's not what Nvidia claims...

Nvidia claims ATI are capable of only 96bit color precision, while NV30 is capable of 128bit color precision, but there is more to that than can initially be seen...

In terms of Pixel Shader instructions, R300 is capable of 160 instructions, while NV30 is capable of 1024 instructions, this was ATI's and Nvidia's claim from the beginning.
 
kid_crisis said:
65536 is an easily factored number in the binary world (1024 x 64).

65026 doesn't really make sense though (32,513 x 2?). Is this the correct number?

in the review Dave said:
255 (max # of instructions with loops) * 255 (max # loops) + 1 (last instruction) = 65026

It's a bit odd still...
 
Where do u see the number 96 there?

Granted, swizzling is an essential component of DirectX 9, so I find it weird that R300, according to this chart, doesn't support it...
 
Re R300 temp registers.

ATI engineer tells me that the drivers should only reveal 16 (not 32) atm, maybe increased later.
[edit]Oh btw, Wavey, best to change that "36" figure in your review to 32 (or 16, like I said above).
 
Reverend said:
ATI engineer tells me that the drivers should only reveal 16 (not 32) atm, maybe increased later.

Hmm, why should a driver report less registers than there actualy are as long as DX9 allows it? The latest DX9 specs allows up to 32 r/w registers in the VS 2.0.
 
Wavey in his review said:
Although DirectX9 supports full 128bit (32bit per component) floating point precision, it only really cares about the input and output stages. Internally R300 has a hybrid pixel pipeline of both 128bit accuracy for the some of the texture sampling stages and 96bit (24bit per component) for the rest of the shader stages. ATI believe that, certainly for the foreseeable future, this level of accuracy is enough (and evidently Microsoft agreed with them) given that the final output will either be a 10:10:10:2 format or a texture address, and that normal shader operations will not show any loss of accuracy with a 24bit per component internal format.
Does anyone find what ATI believes in to be incorrect for specific cases?
 
ram said:
Reverend said:
ATI engineer tells me that the drivers should only reveal 16 (not 32) atm, maybe increased later.

Hmm, why should a driver report less registers than there actualy are as long as DX9 allows it? The latest DX9 specs allows up to 32 r/w registers in the VS 2.0.
Apparently (i.e. ATI engineer's words) is that this is for future shader optimizations for the compiler
 
Swizzler Sticks

Granted, swizzling is an essential component of DirectX 9, so I find it weird that R300, according to this chart, doesn't support it...

Maybe Nvidia were mistaken... :LOL:

Pretty sure Reverend confirmed that the R300 supports swizzling (whatever the nine blazes it is).

Lots of big numbers at any rate, all good stuff.
 
I think I'm going to edit those table images with a "Please read the article at Voodooextreme before you assume all the info in this image is correct" disclaimer at the bottom.

:)
 
alexsok said:
Granted, swizzling is an essential component of DirectX 9, so I find it weird that R300, according to this chart, doesn't support it...
Actually, there is a caps bit indicating whether the hardware can do arbitrary swizzling, or only some limited swizzling.
 
Back
Top