Brian Paul wrote:
>> In any case, the tnl pipeline needs to be fixed for the drivers not 
>> allowing per-fragment fog.
> 
> I was looking at the code in r200_vertprog.c that appends the 
> instructions for the three fog modes.
> 
> I'm wondering if it would be better to add a new function to 
> src/mesa/shader/programopt.c to add the extra fog instructions to a 
> vertex program before its compiled into the r200 code.  The idea being 
>  code re-use and driver simplification.
> 
> Though, I haven't looked at things close enough yet to know if that has 
> any pitfalls.
This is a nice idea (note that the t_vp_build.c code adds its own fog 
factor computation too).
I think the main drawbacks would be that you couldn't really optimize it 
for a given hw target. For example, the code in t_vp_build.c does 
clamping (for GL_LINEAR fog) which just doesn't seem to be necessary on 
r200 as it seems to get clamped later anyway. It would be hard to 
optimize that away later. Similar, you'd need to use an additional 
constant and the POW opcode since there's no exponentiation with base e 
opcode (which might be faster on r200).
The code in programopt.c also would need to be changed to allow 
modification of the program, as the fog mode may change (though I guess 
that would be rare in practice). Might be easier to just reparse the 
program string maybe.
Though now that I'm looking at that tnl fog code again, is that absolute 
value of the input for GL_EXP fog actually correct (both in t_vp_build.c 
and t_vb_fog.c)? It seems like it would be needed if the fog coord 
source is FRAGMENT_DEPTH, but I'm not sure about FOG_COORD_SRC. Well the 
spec says "Q: Should the fog coordinate be restricted to non-negative 
values? A: Perhaps" (!?!) If it's not restricted, then using fabs surely 
won't produce the intended result.

Roland

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to