Blender Git Commit Log

Git Commits -> Revision 9df2499

Revision 9df2499 by Sergey Sharybin (master)
December 2, 2013, 11:14 (GMT)
Fix T37656: Huge amount of RAM used during start when rendering large images

Issue was caused by linear float buffer creating for every working
thread. This buffer actually duplicated original buffer which doubles
amount of required memory.

We can not avoid such a duplication, because OCIO needs to work on a
float buffer and it modifies this buffer.

Alternative for now is to not allocate linear buffer for the whole chunk
which needs to be handled by the thread and use further chunk cutting in
thread itself.

So now every thread will handle the chunk in blocks of 64 scanlines.
This reduces memory overhead significantly without speed loss in own
tests.

Ideally, IMB_processor_apply_threaded need to be switched to generic
task scheduler and made it so this function generates tasks with
reasonable number of scanlines. This requires much more testing to
be sure there're no conflicts with object update and so.

Such a change to IMB_processor_apply_threaded would not be noticed by
users, so do not consider this is a crucial to do right now.

Commit Details:

Full Hash: 9df2499531f95f8f50e2ac508eb85c76fd1fa446
Parent Commit: dce05f6
Lines Changed: +59, -44

1 Modified Path:

/source/blender/imbuf/intern/colormanagement.c (+59, -44) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021