| Summary: | ARB_vertex_program's LG2 directive is imprecision | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | WuNian <nian.wu> |
| Component: | Mesa core | Assignee: | mesa-dev |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | trivial | ||
| Priority: | lowest | ||
| Version: | git | ||
| Hardware: | x86 (IA32) | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: | test case | ||
Created attachment 11303 [details]
test case
The LOG2() function in imports.h is responsible for this. If anyone finds a case where LOG2() accuracy is really important we can use log(x) / log(2) instead. Mass reopen. The "LATER" resolution is lame, I'm deleting it. Consider LATER to have arrived. This issue has gone verified against: mesa: (master)0e8a5a84742adf6e99236f246c77325fad174204 Mass version move, cvs -> git |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
The calculation of LG2 directive is imprecision. For example, PARAM LG2const = { 1.300000, 1.500000, 1.700000, 9.900000 }; LG2 otex, LG2const.x; Value of otex will be 0.37000. The precision value should be log(1.3)/log(2)=0.3785. It seems LG2 always reserve 2 number after decimal point.