WHAT to expect from PS&VS 3.0??

London Geezer

Legend
Supporter
Don't post here much, but basically that's the question, how will PS 3.0 improve on PS2.0? same for VS?
i'm sure this has been answered already but hey i'm thick. :LOL:
thanks guys
 
Static conditionals (new to PS only), dynamic conditions, loops (4 deep), subroutines (4 deep), min 512 real instructions, more constants, new istructions for calculating gradients(PS only), more control of LOD in texld...'s, indexing of input regs, more swizzles (new toPS), vertex texturing (VS) etc....

To report 3.0 model HW must also support a pile of other caps that would otherwise be optional, this should make development more consistent across vendors....

John.
 
Just as a follow up to John's post, at Siggraph and Graphics Hardware this year there were quite a number of papers on doing "non rendering graphics computation" (eg fluid flow, clouds, radiosity, or even 'simple' FFTs) on the graphics chip that worked OK, but they were screaming out for features that will appear in VS & PS 3.0.
 
For a company whose last PC consumer part didn't even include hardware T&L, it's interesting to note that those PowerVR lads seem to know more than a little about PS/VS3.0. ;)
 
Trawler said:
For a company whose last PC consumer part didn't even include hardware T&L, it's interesting to note that those PowerVR lads seem to know more than a little about PS/VS3.0. ;)

All they have to do now is execute and deliver on time ;)

By the way generic question: the maximum of instructions for those shaders are somewhere at the 32k region if my memory serves me well. I wonder how many more than the minimum required 512 instructions IHVs will support, I guess there's enough headroom for instruction counts alone for another generation of cards or not?
 
Ailuros said:
By the way generic question: the maximum of instructions for those shaders are somewhere at the 32k region if my memory serves me well. I wonder how many more than the minimum required 512 instructions IHVs will support, I guess there's enough headroom for instruction counts alone for another generation of cards or not?
You're getting your stats confused, which is not surprising given the marketing stuff that's published :)

The maximum program size for, say, the VS might be 512 instructions ( I think) but you can have loops inside that program. The oft quoted 64k(?) figure for some chips just means that you can bung loop instructions around the main body of code and hence execute that larger number of instructions.

Actually, I think the upper limit is something like 2^32 instructions: Mind you ... you don't want too many or else your real-time application will take a really-long time to run :)
 
Simon F said:
The maximum program size for, say, the VS might be 512 instructions ( I think) but you can have loops inside that program. The oft quoted 64k(?) figure for some chips just means that you can bung loop instructions around the main body of code and hence execute that larger number of instructions.
Both pixel and vertex shaders 3.0 can have from min 512 to max 32K instruction slots (that's without looping).
 
MDolenc said:
Both pixel and vertex shaders 3.0 can have from min 512 to max 32K instruction slots (that's without looping).
My apologies then... I must go back and re-read the spec some day.

Update
No I don't that is entirely correct. AFAIU it was 256, got bumped to 512, then came back down to 256 again as the min (probably because all the IHVs screamed :) ).

I suppose there may be caps that allow higher numbers but I'd be surprised if anyone goes mad and does anything other that 256 (plus a bit) - there'd be a risk of too many performance implications supporting bigger raw program sizes.
 
Says here:
Instruction Count

Each vertex shader is allowed anywhere from 512 up to the number of slots in the MaxVertexShader30InstructionSlots member of D3DCAPS9. The number of instructions run can be much higher because of the looping support. The MaxVShaderInstructionsExecuted cap in D3DCAPS9 should be at least 2^16.
It's the same for pixel shaders.
 
RussSchultz said:
So the 3.0 shaders require at least 512 instructions?!

That sounds mighty wierd to me.
Never mind. brain fart. The hardware is required to support at least 512 instructions to be 'correct', not the shader needs to use 512 instructions.

Pardon me, I just ate a big lunch. Wasn't thinking properly.
 
RussSchultz said:
RussSchultz said:
So the 3.0 shaders require at least 512 instructions?!

That sounds mighty wierd to me.
Never mind. brain fart. The hardware is required to support at least 512 instructions to be 'correct', not the shader needs to use 512 instructions.

Pardon me, I just ate a big lunch. Wasn't thinking properly.
He he :)
 
Since I'm not an expert, I'll ask you folks to make this simple for me. Using PS/VS 3.0, what will I see on screen that I couldn't have seen with 2.0?
 
Can someone clarify this whole mess to a layman?

Instruction Count

Each pixel shader is allowed anywhere from 512 up to the number of slots in the MaxPixelShader30InstructionSlots member of D3DCAPS9 (not more than 32768). The number of instructions run can be much higher because of the looping support. The MaxPShaderInstructionsExecuted cap in D3DCAPS9 should be at least 2^16.

The hardware needs to support 512 instructions for PS and VS separately, or in total (256 for each)?

And yes I have those links for quite some time now and I haven't noticed any differences since then. In any case the way I understood it up to now is that each shader should have a minimum of 512 instruction slots.

Whatever the answer my original question still stands: isn't there headroom enough to base at least one more generation of hardware on dx9.0?
 
Ailuros said:
Can someone clarify this whole mess to a layman?

Instruction Count

Each pixel shader is allowed anywhere from 512 up to the number of slots in the MaxPixelShader30InstructionSlots member of D3DCAPS9 (not more than 32768). The number of instructions run can be much higher because of the looping support. The MaxPShaderInstructionsExecuted cap in D3DCAPS9 should be at least 2^16.

The hardware needs to support 512 instructions for PS and VS separately, or in total (256 for each)?

And yes I have those links for quite some time now and I haven't noticed any differences since then. In any case the way I understood it up to now is that each shader should have a minimum of 512 instruction slots.

Whatever the answer my original question still stands: isn't there headroom enough to base at least one more generation of hardware on dx9.0?
It's 512 instructions for PS and VS separately.
Regarding only instruction count, dx9.0 offers enough headroom for several generations. Up to 2^15 instructions... you could run a whole small game in a shader :D
Even on the whole shader side it might offer enough for one more generation. However there are already some features announced, expected, wished or even out yet that are not supported by dx9.0: depth bounds (NV35), readable destination color in PS (DeltaChrome), more robust float support (blending, TC), PPP, etc.
 
Thanks Xmas.

However there are already some features announced, expected, wished or even out yet that are not supported by dx9.0: depth bounds (NV35), readable destination color in PS (DeltaChrome), more robust float support (blending, TC), PPP, etc.

Wouldn't the summary of those be sufficiently covered by a let's say dx9.1 update?

I know Microsoft isn't willing to release an update (unless something's changed in the meantime), but wouldn't the next API version be only due in 2005? That's a mighty long time until then. :rolleyes:
 
Myrmecophagavir said:
Says here:
Instruction Count

Each vertex shader is allowed anywhere from 512 up to the number of slots in the MaxVertexShader30InstructionSlots member of D3DCAPS9. The number of instructions run can be much higher because of the looping support. The MaxVShaderInstructionsExecuted cap in D3DCAPS9 should be at least 2^16.
It's the same for pixel shaders.
The problem with DX is there doesn't seem to be one authoritative document: eg the "refrast" will say one thing and the specifications another. If in doubt, email the DX team :D. I'm pretty sure the latest word was that the 512 'minimum' was reduced to back to 256 but it might have bounced back again!

The MaxVShaderInstructionsExecuted cap in D3DCAPS9 should be at least 2^16
And in another document it had to be 2^32 !!! What does one believe? :D
 
Thanks Rev, must have missed that one.

Simon,

I'm pretty sure the latest word was that the 512 'minimum' was reduced to back to 256 but it might have bounced back again!

That's too much bouncing for me to understand. You're sure you haven't designed by mistake a digital jojo? :LOL: (hope no one takes offense by the rather obvious joke).
 
Back
Top