Bug Reports: Floating point precision bug handling #60
No reviewers
Labels
No Label
No Milestone
No Assignees
6 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender-developer-docs#60
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "mod_moder/blender-developer-docs-fork:triaging_floating_point_error"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR adds short answers for floating point value precision reports to close them and a page with explanation about this.
Thx for this, initial thoughts:
#User Interface
module tbh.-- (even if we treat such issues as non-bugs for now, it might make sense to review the way we deal with those in some cases -- even the ones provided as example reports here).
CC @ideasman42
CC @Harley
CC @JulianEisel
If there is consensus that all occurrences of such imprecisions are to be dropped as non-bugs, then we need to work on the wording of this PR (but prefer to get consensus on the above first), examples:
There have been a few floating point precision issues that have been worked on/"fixed". For example, precision issues with Musgrave texture in some situations.
So based on previous reports and how they were handled, it seems we can't close all floating point precision issues without first consulting a developer. But there are still some reports that can be closed "safely" as long as the user is informed of what's causing the issue.
Sorry to bother, but I wanted to suggest creating a "known issues" report to track all floating point precision problems.
Just some potential thoughts, and I don't mind the decision either way. It's up to you guys to decide.
Documenting float precision issues seems reasonable, although I wonder how much floating-point behavior we should be documenting ourselves.
Some concerns with the PR as it is.
Some of the statements are technically incorrect although can be fixed by re-wording.
For example:
Blender draw floating point values with fixed number of digits after dot.
The fixed number is configurable and we do change it based on bug reports at times, especially for small values such as weld-by-distance.
The statements assume 32bit floating point, users may use software that uses 64bit floats, then consider Blender bugs unique to Blender. Also, in some cases Blender does use 64 bit floats.
Computers can handle other kinds of floating point with libraries such as https://www.mpfr.org - it's probably getting into unnecessary technical details to mention this.
Some of the grammar reads strangely, there are so many minor issues that it's probably simplest to do an editing pass instead of pointing out issues individually.
First of all, this goes far beyond the UI. It's a general discussion on floating point errors (as they appear in rendering, nodes, tools, ...) and how we deal with them from a product, development and issue tracking perspective. It would be good to get some decisions on this topic.
On the PR itself, I too have some concerns.
I too think it would be good to have some list of known issues caused by floating point inaccuracies somewhere. All three example reports listed above seem like reasonably common enough cases to run into. Good to have them "indexed" somewhere for easy referencing.
Maybe other developers have more strict opinions than me though.
And
Do not want to actually start discussion about this, my point was that this is not just single-line solution, and (i didn't read a lot library description) any this kind of solution will not work in some corner case like
e + 1
i think.In this one i do refer to the reports like
Use Convex Hull of mesh as way to sort points. 300+ is not sorted due to floating point precision
.Instead of spent a lot of time to solve this one, probably just leg shoot case, we just added
Sort Element
andPoints to Curve
nodes with this function.And my main point here is that fixing of floating point errors looks like any other kind of feedback that is not suitable on bug reports tracker.
Yes, we can spend a lot of resources, decrease performance, add branches to check if value is large, just to handle this.
But at the same point we still have issues on large distant of objects, and i think in general we just do not purpose blender as software that can render 10e^10 coordinate.
It is possible to fix any of this issues. But do we ready to drop all performance, introduce complexity, and in the end start getting reports like
3.333... infinity string instead of instead of a decimal 3/10
.I didn't want to describe this cases for developers, sometimes users can do not believe to the fact that this is just floating point error.
Initial purpose of whole this page, is to describe all this things for users, not for devs.
Probably i have to clarify this in the header of page.
Just like i said above, this kind of things that is heuristics/have large cost/not really so bad to have (does 0.00000003 really affect something except of UI)?
So, this looks like accidental feature request. If UI ready to accept this, then yes. But if think in general, this means that any ui report marked as
accidental feature request
have to be reviewed by UI module.I think the existing comments here already show that there is no consensus to close all precision issues as a general rule for triaging. Nothing against documenting these, but closing is not the right action in all cases.
In addition, I will reopen blender/blender#122181 & blender/blender#122046 for the respective module to decide upon.
This was left open, closing based on reasons given by @lichtwerk.
Pull request closed