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:
authorPeter Kim <pk15950@gmail.com>2022-02-11 14:51:27 +0300
committerPeter Kim <pk15950@gmail.com>2022-02-11 14:51:27 +0300
commit2d231f837a48933c0e819cdc6e78d977152bdd69 (patch)
tree9d0b9c0bd9fe2d2724af866ace830d74d13090cf /source/blender/gpu/intern/gpu_viewport.c
parentfd98241cb80c63ed0b3515cb4976ad786d7540c8 (diff)
parent675f38aca7073234a2ce0b36597d95f8a153ef7c (diff)
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/gpu/intern/gpu_viewport.c')
-rw-r--r--source/blender/gpu/intern/gpu_viewport.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c
index d910153e912..fd4a87bc544 100644
--- a/source/blender/gpu/intern/gpu_viewport.c
+++ b/source/blender/gpu/intern/gpu_viewport.c
@@ -183,7 +183,9 @@ void GPU_viewport_bind(GPUViewport *viewport, int view, const rcti *rect)
viewport->active_view = view;
}
-void GPU_viewport_bind_from_offscreen(GPUViewport *viewport, struct GPUOffScreen *ofs)
+void GPU_viewport_bind_from_offscreen(GPUViewport *viewport,
+ struct GPUOffScreen *ofs,
+ bool is_xr_surface)
{
GPUTexture *color, *depth;
GPUFrameBuffer *fb;
@@ -192,7 +194,13 @@ void GPU_viewport_bind_from_offscreen(GPUViewport *viewport, struct GPUOffScreen
GPU_offscreen_viewport_data_get(ofs, &fb, &color, &depth);
- gpu_viewport_textures_free(viewport);
+ /* XR surfaces will already check for texture size changes and free if necessary (see
+ * #wm_xr_session_surface_offscreen_ensure()), so don't free here as it has a significant
+ * performance impact (leads to texture re-creation in #gpu_viewport_textures_create() every VR
+ * drawing iteration).*/
+ if (!is_xr_surface) {
+ gpu_viewport_textures_free(viewport);
+ }
/* This is the only texture we can share. */
viewport->depth_tx = depth;