4635dd6aed4c97ea234508e774db991926a7b3cf
Removing all OSL script nodes from the shader graph would cause that graph to no longer report it using `KERNEL_FEATURE_SHADER_RAYTRACE` via `ShaderManager::get_graph_kernel_features`, but the shader object itself still would have the `has_surface_raytrace` field set. This caused kernels to be reloaded without shader raytracing support, but later the `DEVICE_KERNEL_INTEGRATOR_SHADE_SURFACE_RAYTRACE` kernel would still be invoked since the shader continued to report it requiring that through the `SD_HAS_RAYTRACE` flag set because of `has_surface_raytrace`. Fix that by ensuring `has_surface_raytrace` is reset on every shader update, so that when all OSL script nodes are deleted it is set to false, and only stays true when there are still OSL script nodes (or other nodes using it). Maniphest Tasks: T104157 Differential Revision: https://developer.blender.org/D17140
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
