Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-11-22 14:48:08 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-11-22 14:52:12 +0400
commit885354daec2fa8181aeb27b637c80e4ee4c247df (patch)
tree5259821ae57c2be5d6ed42026d182cc01164a2eb
parent0469971b05ea94b9bf9ea3c8e935049c5c5b7120 (diff)
Optimization for render result save
Skip byte->float conversion if output file format supports high bit depths but configured to only output 8 bits per channel. Gives around 30% speedup when re-exporting movie file to PNG image sequence here on laptop. Possible further optimization: - Skip color space conversion in imbuf_for_write function if we've got already have buffer in that space. This doesn't seem to happen often after tweak to render result to imbuf. - Skip black alpha-under if original image is opaque, This is a bit tricky to detect.
-rw-r--r--source/blender/render/intern/source/render_result.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 37587d89ce0..487de42515d 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -1124,7 +1124,13 @@ ImBuf *render_result_rect_to_ibuf(RenderResult *rr, RenderData *rd)
*/
if (ibuf->rect) {
if (BKE_imtype_valid_depths(rd->im_format.imtype) & (R_IMF_CHAN_DEPTH_12 | R_IMF_CHAN_DEPTH_16 | R_IMF_CHAN_DEPTH_24 | R_IMF_CHAN_DEPTH_32)) {
- IMB_float_from_rect(ibuf);
+ if (rd->im_format.depth == R_IMF_CHAN_DEPTH_8) {
+ /* Higher depth bits are supported but not needed for current file output. */
+ ibuf->rect_float = NULL;
+ }
+ else {
+ IMB_float_from_rect(ibuf);
+ }
}
else {
/* ensure no float buffer remained from previous frame */