8222cb0cfd2af22c44faa459cdc82dc9d1ccd4d3
Waveform, Parade and Vectorscopes were calculated by copying the rendered image, transforming it into display space, and calculating the the scope from that. On large resolutions, this copy+transform+free of the image was taking up majority of the time. Especially for default case when the display transform is a no-op. Change the code so that display transform, if needed, is done directly inside scope calculation, without needing a full-size temporary image. Additionally, the vectorscope calculation was single threaded. Multi-thread it by doing a parallel reduction, where each job calculates their own scope image, and they are merged. Since job payload is fairly large (512x512 bytes), make jobs pretty large (256k pixels each). Time (in ms) taken to calculate scope at 4K resolution (Ryzen 5950X, Windows). Default color management settings: - Waveform, PNG/SDR: 5.5 -> 5.2 - Waveform, EXR/HDR: 33.5 -> 10.3 - Vectorscope, PNG/SDR: 32.4 -> 4.5 - Vectorscope, EXR/HDR: 53.2 -> 9.8 Timings when additional color space management is needed (display space set to Display P3, sequencer kept at sRGB): - Waveform, PNG/SDR: 29.5 -> 10.9 - Waveform, EXR/HDR: 67.6 -> 10.9 - Vectorscope, PNG/SDR: 56.8 -> 12.0 - Vectorscope, EXR/HDR: 85.9 -> 13.4 This also fixes calculation of waveform / vectorscope on float (HDR) images that have alpha channel; the scope was wrongly calculated on premultiplied color values, which was not consistent with how it was calculated on the byte images. Pull Request: https://projects.blender.org/blender/blender/pulls/144059
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
