POV-Ray

The Persistence of Vision Raytracer (POV-Ray).

This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.

|
Attached to Project: POV-Ray
Opened by Jim Holsenback - 2011-11-16
Last edited by William F Pokorny - 2017-05-18

FS#227 - Fixed Vector Limitations

See this documentation entry for more details.

Grimbert Jérôme commented on Saturday, 26 November 2011, 16:44 GMT

If the concern seems to be the multiple calls to alloc (on push_back, with lock of allocator), what about:
# using a normal vector (s0 and s1 in media.cpp circa line 700)
# with s0.reserve(lights.size()) and s1.reserve(lights.size()) before the copy in the for loop.

For the other case of FixedSimpleVector, I found only :
* trace.h, where it seems to support a replacement in typedef with normal vector (should I expect some leaks ?)
* frame.h, untested so far.

work in progress.

Thorsten Fröhlich commented on Saturday, 26 November 2011, 16:52 GMT

Please don't work on this: It is an extremely fragile construction and only Chris and I know all the details and side effects and rationale for the way it is. It is a workaround, but it isn't there because it is easy to fix, but because it is really, really hard to fix well.

Grimbert Jérôme commented on Saturday, 26 November 2011, 17:52 GMT

Ok
For the record, benchmark get a slow down on change of frame.h (from 2:35 to 2:48)
Other changes did not had a significant impact. (but media might not be part of benchmark)

William F Pokorny commented on Saturday, 05 November 2016, 11:58 GMT

Changing the state of this task instead of blindly porting it to github as is. Original wiki link is dead, and other than seeing a discussion about some tricky memory allocation/performance issues I’m lost.

Admin
Christoph Lipka commented on Saturday, 05 November 2016, 13:40 GMT

For the records, the whole issue is about artificial limits to certain features, due to the use of FixedSimpleVector<> to avoid excessive memory allocation/deallocation overhead.

The corresponding hard limits are configured via the *_VECTOR_SIZE macros in /source/core/configcore.h.

William F Pokorny commented on Thursday, 18 May 2017, 10:47 GMT

Now tracked on github as issue #292.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing