System Information
Operating system: n/a
Graphics card: n/a
Blender Version
Broken: at least 2.8, maybe earlier
Worked: n/a
Short description of error
When projection painting an image with float data onto an image with char data (or v.v.) the data gets converted in each thread without locking, leading to race conditions and wrong output.
Exact steps for others to reproduce the error
make sure you run on a multithreaded processor
- default startup
- set the base color of the material of the cube to image texture. create a new image texture using the default settings.
- set a camera background image from an .exr file containing float data.
- select cube, go to texture paint mode.
- from options -> external choose Apply Camera Image and choose the .exr image
or
- open attached file
- from options -> external choose Apply Camera Image and choose the .exr image
result=> sometimes nothing at all happens, sometimes the image gets applied but stippled, sometimes it works as expected.
The race condition occurs when you pres 'apply camera image' from the tool options. What happens and if the results are visibly wrong or right is rather random, though, because it's threading/timing related.