[Bf-blender-cvs] [29addd43602] vr_scene_inspection: Use preview quality settings for Eevee in VR, not high-quality ones

Julian Eisel noreply at git.blender.org
Fri Mar 13 18:09:18 CET 2020


Commit: 29addd4360291351fb7f7ffcbf07cf71102217d3
Author: Julian Eisel
Date:   Fri Mar 13 16:39:47 2020 +0100
Branches: vr_scene_inspection
https://developer.blender.org/rB29addd4360291351fb7f7ffcbf07cf71102217d3

Use preview quality settings for Eevee in VR, not high-quality ones

The high-quality settings are designed for actual renderings. We use the
same offscreen routines as these, but want the preview quality for
performance.

Brings performance from < 1FPS to ~40FPS in the classroom scene here.

===================================================================

M	source/blender/draw/DRW_engine.h
M	source/blender/draw/intern/draw_manager.c
M	source/blender/editors/include/ED_view3d_offscreen.h
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/python/gpu/gpu_py_offscreen.c
M	source/blender/windowmanager/intern/wm_xr.c

===================================================================

diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h
index 07d6219b85e..ac10af4e08f 100644
--- a/source/blender/draw/DRW_engine.h
+++ b/source/blender/draw/DRW_engine.h
@@ -93,6 +93,7 @@ void DRW_draw_render_loop_offscreen(struct Depsgraph *depsgraph,
                                     struct RenderEngineType *engine_type,
                                     struct ARegion *region,
                                     struct View3D *v3d,
+                                    const bool is_image_render,
                                     const bool draw_background,
                                     const bool do_color_management,
                                     struct GPUOffScreen *ofs,
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index bd644ecc459..7cf9d98a142 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1576,6 +1576,7 @@ void DRW_draw_render_loop_offscreen(struct Depsgraph *depsgraph,
                                     RenderEngineType *engine_type,
                                     ARegion *region,
                                     View3D *v3d,
+                                    const bool is_image_render,
                                     const bool draw_background,
                                     const bool do_color_management,
                                     GPUOffScreen *ofs,
@@ -1591,7 +1592,7 @@ void DRW_draw_render_loop_offscreen(struct Depsgraph *depsgraph,
 
   /* Reset before using it. */
   drw_state_prepare_clean_for_draw(&DST);
-  DST.options.is_image_render = true;
+  DST.options.is_image_render = is_image_render;
   DST.options.do_color_management = do_color_management;
   DST.options.draw_background = draw_background;
   DRW_draw_render_loop_ex(depsgraph, engine_type, region, v3d, render_viewport, NULL);
diff --git a/source/blender/editors/include/ED_view3d_offscreen.h b/source/blender/editors/include/ED_view3d_offscreen.h
index f69d8367dca..bc12357d4af 100644
--- a/source/blender/editors/include/ED_view3d_offscreen.h
+++ b/source/blender/editors/include/ED_view3d_offscreen.h
@@ -51,6 +51,7 @@ void ED_view3d_draw_offscreen(struct Depsgraph *depsgraph,
                               int winy,
                               float viewmat[4][4],
                               float winmat[4][4],
+                              bool is_image_render,
                               bool do_sky,
                               bool is_persp,
                               const char *viewname,
@@ -68,6 +69,7 @@ void ED_view3d_draw_offscreen_simple(struct Depsgraph *depsgraph,
                                      float winmat[4][4],
                                      float clip_start,
                                      float clip_end,
+                                     bool is_image_render,
                                      bool do_sky,
                                      bool is_persp,
                                      const char *viewname,
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 87295573948..1f1d4f42694 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1674,6 +1674,7 @@ void ED_view3d_draw_offscreen(Depsgraph *depsgraph,
                               int winy,
                               float viewmat[4][4],
                               float winmat[4][4],
+                              bool is_image_render,
                               bool do_sky,
                               bool UNUSED(is_persp),
                               const char *viewname,
@@ -1723,8 +1724,15 @@ void ED_view3d_draw_offscreen(Depsgraph *depsgraph,
   }
 
   /* main drawing call */
-  DRW_draw_render_loop_offscreen(
-      depsgraph, engine_type, region, v3d, do_sky, do_color_management, ofs, viewport);
+  DRW_draw_render_loop_offscreen(depsgraph,
+                                 engine_type,
+                                 region,
+                                 v3d,
+                                 is_image_render,
+                                 do_sky,
+                                 do_color_management,
+                                 ofs,
+                                 viewport);
 
   /* restore size */
   region->winx = bwinx;
@@ -1754,6 +1762,7 @@ void ED_view3d_draw_offscreen_simple(Depsgraph *depsgraph,
                                      float winmat[4][4],
                                      float clip_start,
                                      float clip_end,
+                                     bool is_image_render,
                                      bool do_sky,
                                      bool is_persp,
                                      const char *viewname,
@@ -1817,6 +1826,7 @@ void ED_view3d_draw_offscreen_simple(Depsgraph *depsgraph,
                            winy,
                            viewmat,
                            winmat,
+                           is_image_render,
                            do_sky,
                            is_persp,
                            viewname,
@@ -1934,6 +1944,7 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Depsgraph *depsgraph,
                            sizey,
                            NULL,
                            winmat,
+                           true,
                            draw_sky,
                            !is_ortho,
                            viewname,
diff --git a/source/blender/python/gpu/gpu_py_offscreen.c b/source/blender/python/gpu/gpu_py_offscreen.c
index f09440a1ceb..f128c46ec05 100644
--- a/source/blender/python/gpu/gpu_py_offscreen.c
+++ b/source/blender/python/gpu/gpu_py_offscreen.c
@@ -257,6 +257,7 @@ static PyObject *bpygpu_offscreen_draw_view3d(BPyGPUOffScreen *self,
                            (float(*)[4])py_mat_projection->matrix,
                            true,
                            true,
+                           true,
                            "",
                            false,
                            self->ofs,
diff --git a/source/blender/windowmanager/intern/wm_xr.c b/source/blender/windowmanager/intern/wm_xr.c
index 43bb8c27f3b..499674f8f01 100644
--- a/source/blender/windowmanager/intern/wm_xr.c
+++ b/source/blender/windowmanager/intern/wm_xr.c
@@ -682,6 +682,7 @@ void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata)
                                   winmat,
                                   settings->clip_start,
                                   settings->clip_end,
+                                  false,
                                   true,
                                   true,
                                   NULL,



More information about the Bf-blender-cvs mailing list