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
path: root/source
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2020-03-13 18:39:47 +0300
committerJulian Eisel <julian@blender.org>2020-03-13 20:07:58 +0300
commit29addd4360291351fb7f7ffcbf07cf71102217d3 (patch)
treeb7ffb15807034e9f630ace13b1340d6a13e7456b /source
parent3bc41d2f50d23911bbb778b4abc48e9b7093070f (diff)
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.
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/DRW_engine.h1
-rw-r--r--source/blender/draw/intern/draw_manager.c3
-rw-r--r--source/blender/editors/include/ED_view3d_offscreen.h2
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c15
-rw-r--r--source/blender/python/gpu/gpu_py_offscreen.c1
-rw-r--r--source/blender/windowmanager/intern/wm_xr.c1
6 files changed, 20 insertions, 3 deletions
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,