http://bugs.winehq.org/show_bug.cgi?id=7284
--- Comment #43 from Alexander Dorofeyev alexd4@inbox.lv 2009-04-11 07:57:30 --- Tobias Jakobi: after some more tests it looks like you may be right about that stuff. Seems like result of rcp components multiplied by 0 give 0 or something that gets converted to a 0 color component, whereas component multiplied by small values like 0.001 and 0.00001 give 0xFF color component. So e.g.
vs_2_0 dcl_position v0 def c0, 0.0, 0.0, 0.0, 0.0 def c1, 0.0, 0.00001, 0.0, 0.0 mov oPos, v0 rcp r1, c0.x mul oD0, r1, c1
seems to give green (00FF00). This doesn't look like clamping of rcp result, rather like +Inf after rcp. Unfortunate, I think clamping was easier to fix. Then could be either Inf * 0 = 0 or maybe Inf * 0 = NaN and NaN converted to 0 for color output (but somehow different in vs_3_0).
Where did you find about infinity in sdk docs btw?