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:
authorJeroen Bakker <jeroen@blender.org>2021-02-09 17:24:29 +0300
committerJeroen Bakker <jeroen@blender.org>2021-02-12 09:53:50 +0300
commit33145dd187e30916f4ebae81ca0540b9c325b480 (patch)
tree05ed131aeb3352f61487c5a80a8b008038769ecf
parentc10ad8e9eabea8a10d35efea3860cc345977e4f9 (diff)
Fix T79999: Double color management applied during viewport animation render
In 2.81 there was a change to increase the performance of viewport animation rendering. This change would perform the color management on the GPU if the only 8bit was needed. This saved CPU cycles and data transfer. The issue is that in the image editor or when saving the image the CM will be reapplied. Although the speed is desired, exporting the actual colors has more priority. In the ticket there is an analysis that shows that shows that this fix is the correct short term step to take. It would be better that the render result is aware of the color space of its buffers so the applying color management could be skipped when saving to disk or drawing in the image editor. The issue with this change is the performance penalty it has. Reviewed By: Brecht van Lommel Maniphest Tasks: T79999 Differential Revision: https://developer.blender.org/D10371
-rw-r--r--source/blender/editors/render/render_opengl.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 71e4dca3ab1..6744461b2f2 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -367,9 +367,6 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R
char err_out[256] = "unknown";
ImBuf *ibuf_view;
const int alpha_mode = (draw_sky) ? R_ADDSKY : R_ALPHAPREMUL;
- eImBufFlags imbuf_flags = oglrender->color_depth <= R_IMF_CHAN_DEPTH_8 ? IB_rect :
- IB_rectfloat;
-
if (view_context) {
ibuf_view = ED_view3d_draw_offscreen_imbuf(depsgraph,
scene,
@@ -378,7 +375,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R
region,
sizex,
sizey,
- imbuf_flags,
+ IB_rectfloat,
alpha_mode,
viewname,
true,
@@ -398,7 +395,7 @@ static void screen_opengl_render_doit(const bContext *C, OGLRender *oglrender, R
scene->camera,
oglrender->sizex,
oglrender->sizey,
- imbuf_flags,
+ IB_rectfloat,
V3D_OFSDRAW_SHOW_ANNOTATION,
alpha_mode,
viewname,