Blender Git Commit Log

Git Commits -> Revision 9641b50

Revision 9641b50 by Sergey Sharybin (cycles-x)
March 12, 2021, 14:29 (GMT)
Cycles: Fix threading issue between scene update and buffers reset

It was possible that scene was updated to use denoising passes prior to
delayed reset which was re-allocating render buffers. Was unlikely, but
still possible: this is because update_scene() was only guarded by the
scene mutex, and buffers reset was not using scene mutex.

Repro was "simple": erratically toggle "Use viewport denoising" while
viewport was rendering.

This change makes it so buffers and scene are always in the consistent
state. It also moves some logic outside of the run() functions, making
it possible to re-use it for both run_cpu() and run_gpu().

Currently the change is limited to run_cpu(), so that it is easier to
verify logic before using it in all codepaths.

Commit Details:

Full Hash: 9641b5081d349e4eeedcd850f53604cb072ebf0a
Parent Commit: cad409f
Lines Changed: +94, -59

2 Modified Paths:

/intern/cycles/render/session.cpp (+73, -59) (Diff)
/intern/cycles/render/session.h (+21, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021