[Bf-blender-cvs] [879ed5a165a] blender-v2.90-release: EEVEE: Motion Blur: Fix issue with batch overflowing with VBOs
Clément Foucault
noreply at git.blender.org
Wed Aug 12 18:07:02 CEST 2020
Commit: 879ed5a165ae870c7a8967fdd0f084ea7b16ca13
Author: Clément Foucault
Date: Wed Aug 12 17:44:47 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rB879ed5a165ae870c7a8967fdd0f084ea7b16ca13
EEVEE: Motion Blur: Fix issue with batch overflowing with VBOs
===================================================================
M source/blender/draw/engines/eevee/eevee_motion_blur.c
===================================================================
diff --git a/source/blender/draw/engines/eevee/eevee_motion_blur.c b/source/blender/draw/engines/eevee/eevee_motion_blur.c
index a02007fede9..91a9939cd1f 100644
--- a/source/blender/draw/engines/eevee/eevee_motion_blur.c
+++ b/source/blender/draw/engines/eevee/eevee_motion_blur.c
@@ -492,14 +492,7 @@ void EEVEE_motion_blur_cache_finish(EEVEE_Data *vedata)
}
else {
/* Modify the batch to include the previous & next position. */
- if (i == MB_PREV) {
- GPU_batch_vertbuf_add_ex(batch, vbo, true);
- mb_geom->vbo[i] = NULL;
- }
- else {
- /* This VBO can be reuse by next time step. Don't pass ownership. */
- GPU_batch_vertbuf_add_ex(batch, vbo, false);
- }
+ GPU_batch_vertbuf_add_ex(batch, vbo, false);
}
}
}
@@ -568,6 +561,15 @@ void EEVEE_motion_blur_swap_data(EEVEE_Data *vedata)
break;
case EEVEE_MOTION_DATA_MESH:
+ if (mb_geom->batch != NULL) {
+ for (int i = 0; i < GPU_BATCH_VBO_MAX_LEN; i++) {
+ if (mb_geom->batch->verts[i] == mb_geom->vbo[MB_PREV] ||
+ mb_geom->batch->verts[i] == mb_geom->vbo[MB_NEXT]) {
+ /* Avoid double reference of the VBOs. */
+ mb_geom->batch->verts[i] = NULL;
+ }
+ }
+ }
GPU_VERTBUF_DISCARD_SAFE(mb_geom->vbo[MB_PREV]);
mb_geom->vbo[MB_PREV] = mb_geom->vbo[MB_NEXT];
More information about the Bf-blender-cvs
mailing list