[Bf-blender-cvs] [0fdb9cd6507] master: GPU: Fix issue with GPU render boundaries being opened while a GPUBackend does not exist.

Jason Fielder noreply at git.blender.org
Sun Oct 2 00:09:36 CEST 2022


Commit: 0fdb9cd6507a28b349abf47122d6dc394ca24dee
Author: Jason Fielder
Date:   Sun Oct 2 00:07:55 2022 +0200
Branches: master
https://developer.blender.org/rB0fdb9cd6507a28b349abf47122d6dc394ca24dee

GPU: Fix issue with GPU render boundaries being opened while a GPUBackend does not exist.

Fixes regression introduced by rBe8bcca4bdc94 (D15900)

Ref T96261

Reviewed By: fclem

Maniphest Tasks: T96261

Differential Revision: https://developer.blender.org/D16085

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

M	source/blender/draw/intern/draw_manager.c
M	source/blender/render/intern/engine.cc

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

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 99f75581a47..b6ca56d36fc 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -3113,6 +3113,8 @@ void DRW_render_context_enable(Render *render)
     WM_init_opengl();
   }
 
+  GPU_render_begin();
+
   if (GPU_use_main_context_workaround()) {
     GPU_context_main_lock();
     DRW_opengl_context_enable();
@@ -3136,6 +3138,8 @@ void DRW_render_context_enable(Render *render)
 
 void DRW_render_context_disable(Render *render)
 {
+  GPU_render_end();
+
   if (GPU_use_main_context_workaround()) {
     DRW_opengl_context_disable();
     GPU_context_main_unlock();
diff --git a/source/blender/render/intern/engine.cc b/source/blender/render/intern/engine.cc
index 9b5a5fff6b0..10a4788ef77 100644
--- a/source/blender/render/intern/engine.cc
+++ b/source/blender/render/intern/engine.cc
@@ -152,7 +152,6 @@ static void engine_depsgraph_free(RenderEngine *engine)
     /* Need GPU context since this might free GPU buffers. */
     const bool use_gpu_context = (engine->type->flag & RE_USE_GPU_CONTEXT);
     if (use_gpu_context) {
-      GPU_render_begin();
       DRW_render_context_enable(engine->re);
     }
 
@@ -161,7 +160,6 @@ static void engine_depsgraph_free(RenderEngine *engine)
 
     if (use_gpu_context) {
       DRW_render_context_disable(engine->re);
-      GPU_render_end();
     }
   }
 }
@@ -758,7 +756,6 @@ static void engine_depsgraph_init(RenderEngine *engine, ViewLayer *view_layer)
     /* Need GPU context since this might free GPU buffers. */
     const bool use_gpu_context = (engine->type->flag & RE_USE_GPU_CONTEXT) && reuse_depsgraph;
     if (use_gpu_context) {
-      GPU_render_begin();
       DRW_render_context_enable(engine->re);
     }
 
@@ -766,7 +763,6 @@ static void engine_depsgraph_init(RenderEngine *engine, ViewLayer *view_layer)
 
     if (use_gpu_context) {
       DRW_render_context_disable(engine->re);
-      GPU_render_end();
     }
   }
   else {
@@ -939,7 +935,6 @@ static void engine_render_view_layer(Render *re,
   if (use_engine) {
     const bool use_gpu_context = (engine->type->flag & RE_USE_GPU_CONTEXT);
     if (use_gpu_context) {
-      GPU_render_begin();
       DRW_render_context_enable(engine->re);
     }
 
@@ -955,7 +950,6 @@ static void engine_render_view_layer(Render *re,
 
     if (use_gpu_context) {
       DRW_render_context_disable(engine->re);
-      GPU_render_end();
     }
   }



More information about the Bf-blender-cvs mailing list