Toni Ylisirniö
08-30-2004, 09:22 AM
I have currently loaned a GF FX5200 card to bootstrap my foray into dev'ing GLSL shaders, but the card is (obviously) not very good platform, so I'm looking to buy either X800 Pro or GF6800 card.
I have browsed old messages on this board, but have come to little conclusion on which card has better support of GLSL features. Some issues I read here that only GF6800 can do proper branching (and also proper non-unrolled loops) that even X800 can't. However from reading on Ati's site, it seems that X800 does have hardware capable of proper flow and branching (in context of DX, no mention on OGL or GLSL).
Is this a driver issue or is X800 truly lacking in hardware? Are there any other caveats for either cards? What's the current state of the driver support?
On noiseX(): I've been going through the Orange book and wanted to try implementing the turbulence Sun Surface shader using the built-in noise1() function, but found out that on my setup (FX5200, detonator 61.77) the function returned 0.0 and nothing but 0.0 for all values. Not implemented? Is it (likely to) be implement in the future or should I look for calculating noise myself? (I don't want to use texture lookups as I need to surface large area with animation, so repeating texture base would be too obvious...)
Also, what kind of instruction counts are usually acceptable? One of my fragment shaders is 41 instructions long (according to an internal compile error dump if I stick "discard;" as first thing after main(); it does phong shading and multipass texturing and couple other tricks) and runs very slow on this card (not really surprising). But what kind of performance can I expect from relatively good cards in this regard with large areas shaded with the fragment shader?
I have browsed old messages on this board, but have come to little conclusion on which card has better support of GLSL features. Some issues I read here that only GF6800 can do proper branching (and also proper non-unrolled loops) that even X800 can't. However from reading on Ati's site, it seems that X800 does have hardware capable of proper flow and branching (in context of DX, no mention on OGL or GLSL).
Is this a driver issue or is X800 truly lacking in hardware? Are there any other caveats for either cards? What's the current state of the driver support?
On noiseX(): I've been going through the Orange book and wanted to try implementing the turbulence Sun Surface shader using the built-in noise1() function, but found out that on my setup (FX5200, detonator 61.77) the function returned 0.0 and nothing but 0.0 for all values. Not implemented? Is it (likely to) be implement in the future or should I look for calculating noise myself? (I don't want to use texture lookups as I need to surface large area with animation, so repeating texture base would be too obvious...)
Also, what kind of instruction counts are usually acceptable? One of my fragment shaders is 41 instructions long (according to an internal compile error dump if I stick "discard;" as first thing after main(); it does phong shading and multipass texturing and couple other tricks) and runs very slow on this card (not really surprising). But what kind of performance can I expect from relatively good cards in this regard with large areas shaded with the fragment shader?