diff options
author | Jeroen Bakker <jbakker> | 2021-06-11 16:55:09 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2021-06-11 16:55:22 +0300 |
commit | 7b30a3e98def6f9f158da0e315b7077655acfd20 (patch) | |
tree | 0299bf5e27e36e9f6c9b26ce8d2beb4452a95463 /source/blender/imbuf/intern/colormanagement.c | |
parent | 7b76a160a4647b17c1a55da4bd40e8f549225568 (diff) |
Performance: Use parallel range for ImBuf scanline processor.
Scanline processor did its own heurestic what didn't scale well when
having a multiple cores. In stead of using our own code this patch will
leave it to TBB to determine how to split the scanlines over the
available threads.
Performance of the IMB_transform before this change was 0.002123s, with
this change 0.001601s. This change increases performance in other areas
as well including color management conversions.
Reviewed By: zeddb
Differential Revision: https://developer.blender.org/D11578
Diffstat (limited to 'source/blender/imbuf/intern/colormanagement.c')
-rw-r--r-- | source/blender/imbuf/intern/colormanagement.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c index 68d0b516828..71e513fb405 100644 --- a/source/blender/imbuf/intern/colormanagement.c +++ b/source/blender/imbuf/intern/colormanagement.c @@ -3539,12 +3539,11 @@ typedef struct PartialThreadData { int xmin, ymin, xmax; } PartialThreadData; -static void partial_buffer_update_rect_thread_do(void *data_v, - int start_scanline, - int num_scanlines) +static void partial_buffer_update_rect_thread_do(void *data_v, int scanline) { PartialThreadData *data = (PartialThreadData *)data_v; - int ymin = data->ymin + start_scanline; + int ymin = data->ymin + scanline; + const int num_scanlines = 1; partial_buffer_update_rect(data->ibuf, data->display_buffer, data->linear_buffer, |