Files
Clément Foucault 632bd741f7 Fix #148071: EEVEE: Crash when using Sky Texture + Multi-scattering
Caused by some tricky use after-free / stack corruption.
This affect both Cycles and EEVEE.

The `sms` local variable is getting dereferenced by `get_inscattering`
inside the threaded for loop but is passed by copy to the lambda expression.
This makes its lifetime ill-defined in a multithreaded context.
I am not fully sure about the rules at play here so maybe my understanding
is wrong. But removing the call to `get_inscattering` avoids the crash.

Note that `SkyMultipleScattering` is also very big (it contains the whole LUT).
So copying it might have caused stack overflow. But that should trigger a
system interupt.

Passing everything by references fixes the issue.
This seems to be safe since all as the other local variables are `const` anyway.
Also the loop doesn't seem to modify the one that aren't.

Pull Request: https://projects.blender.org/blender/blender/pulls/148260
2025-10-17 14:39:31 +02:00
..