Beyond3D has a front page? :|DaveBaumann said:Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh, god dammit, does nobody read the bloody front page!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Beyond3D has a front page? :|DaveBaumann said:Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh, god dammit, does nobody read the bloody front page!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DaveBaumann said:Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh, god dammit, does nobody read the bloody front page!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Care to summarize them for me? I'd love to make corrections.DaveBaumann said:Jakub, Dio (who works for ATI BTW) wasn't talking about making pro ATI or NVIDIA statements (although in truth, ATI tend not to debate what you may say about the competition as far as my dealings with them have been concerned), he was actually just talking about factual, or not, technical statements - there were a number of allusions NVIDIA made to ATI hardware that were not correct (ones that I've mentioned in other threads bout this editors day).
My main factual problem was the first post I made in this thread: The R300 series supports 160 instructions, and they are somewhat more capable than DX9 level instructions. Therefore, continually referring to a '64 instruction limit' is incorrect.Jakub said:Care to summarize them for me? I'd love to make corrections.
If you're correct about 160 instructions being the limited, I'm puzzled that none of the devs I polled (including several who took advantage of my offer of anonymity) did not dispute the limit when I asked about it in email?Dio said:My main factual problem was the first post I made in this thread: The R300 series supports 160 instructions, and they are somewhat more capable than DX9 level instructions. Therefore, continually referring to a '64 instruction limit' is incorrect.Jakub said:Care to summarize them for me? I'd love to make corrections.
The API can be a limiting factor here.Jakub said:If you're correct about 160 instructions being the limited, I'm puzzled that none of the devs I polled (including several who took advantage of my offer of anonymity) did not dispute the limit when I asked about it in email?Dio said:My main factual problem was the first post I made in this thread: The R300 series supports 160 instructions, and they are somewhat more capable than DX9 level instructions. Therefore, continually referring to a '64 instruction limit' is incorrect.Jakub said:Care to summarize them for me? I'd love to make corrections.
Over the phone one of the anon devs mentioned going over 64 at the cost of another pass (IIRC), so I don't think that's what you're referring to.
Devs aren't too busy to correct me. Believe me, my initial set of questions came back not with answers, but with corrections to my assumptions.Dio said:I stand corrected. In D3D R300 is limited to 96 instructions. (I thought there was a minimum/maximum limit that a program could fall between, but I was reading the wrong bit of the spec).
As to why developers did not point this out: well, these guys are all very busy, and they have a lot of things running around in their heads.
This is probably emphasised because they don't have to think too much about our hardware ("It Just Works" again )
That's an incredibly naive way of looking at things. Under PS 2.0, you can have 64 ALU instructions and 32 texture instructions for a total of 96 instructions. Internally, the R300 based parts can do more than this (160 instructions), and you can take advantage of these extra instructions under OpenGL. How? Well, in OpenGL, the application gives you a shader and asks you to compile it. If it doesn't fit, then you can return an error. This allows you to do a lot more because your compiler/optimizer can take full advantage of HW features that aren't fully exposed by the API.Jakub said:Anyway, I am horribly confused by the instruction limit issue. I found sources for 64, 96 and 160. I just can't get a straight answer out of anyone on that. I eliminated 96 as a possibility b/c that simply happened to be the difference between 160 and 64, so I assumed people got confused.
I guess you didn't ask the right people.What ultimately swayed me to accept 64 was that no one at the conference (including many who attended ATI Shader Day), didn't dispute 64.
OK, so:OpenGL guy said:Under PS 2.0, you can have 64 ALU instructions and 32 texture instructions for a total of 96 instructions. Internally, the R300 based parts can do more than this (160 instructions), and you can take advantage of these extra instructions under OpenGL. How? Well, in OpenGL, the application gives you a shader and asks you to compile it. If it doesn't fit, then you can return an error. This allows you to do a lot more because your compiler/optimizer can take full advantage of HW features that aren't fully exposed by the API.Jakub said:Anyway, I am horribly confused by the instruction limit issue. I found sources for 64, 96 and 160. I just can't get a straight answer out of anyone on that. I eliminated 96 as a possibility b/c that simply happened to be the difference between 160 and 64, so I assumed people got confused.
What Pete wroteJakub said:I'm not sure what you're saying with the error message. It almost sounds like the error message enables you to "take full advantage of HW features that aren't fully exposed by the API.", which doesn't make much sense to me.
OK, that makes complete sense.zeckensack said:What Pete wrote
The GL driver returns an error when the shader was too complex to fit the hardware. This error has to be caught in the application, which can then scale back to a simpler shader, until the driver reports success.
Ie, you can try submitting a 2000 instruction shader to the API and if the driver somehow manages to make it work, fine. You can't do that in DX Graphics because the MS runtime will block off shaders exceeding its own 'standard' limits.
not really.Jakub said:Interesting that PS2.0a would enable extra instructions on an NV3x board but not an R3x0...
It's a little more complicated than that. The problem is simply that we can't expose all of the instructions in D3D because of limitations of the API. In other words, it possible that a particular 65 ALU instruction shader won't fit in our hardware. On the other hand, it's possible that a particular 256 (or more!) ALU instruction shader could fit in our hardware after compilation and optimization. In D3D, we're limited to the worst-case-scenario by the API. In OpenGL, we have more flexibility because the driver gets to provide feedback to the application.Jakub said:Interesting that PS2.0a would enable extra instructions on an NV3x board but not an R3x0...
Oh! OH!!!DaveBaumann said:Which is better for the developer - having hardware that does what it says, or having lots of support to on the software end in order to make the hardware run at a rate they are targetting?