Felix Kühling wrote:
It seems I like answering my own mails ;-)

I fixed this problem but it is probably not optimal. A simple patch is
attached. It seems that this error was introduced by an atempt to
optimize prefetching. The next normal was read into MM0 and MM1 at the
end of the G3TN_norm loop. So in the first cycle MM0 and MM1 were
undefined. Furthermore it read one extra normal at the end of the array
which was never processed.

The patch moves the load operations back to the front of the loop as in
the G3TN_norm_w_lengths case.
Good catch. It looks like this went into the Mesa tree back in October of 2001...over a year ago! It looks like Andres Lewycky gave Brian some bad patches. :(

I realize that AMD recommends reading memory backwards, but would a quick-fix be to just use the 3Dnow! prefetch instructions?

Since these functions are globally exported, it might be worth it to write a quick test that calls the various _transform_normalize_normals functions to make sure that they all produces the same (or close enough) results.



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to