4635dd6aed
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 |
||
---|---|---|
.. | ||
app | ||
blender | ||
bvh | ||
cmake | ||
device | ||
doc | ||
graph | ||
hydra | ||
integrator | ||
kernel | ||
scene | ||
session | ||
subd | ||
test | ||
util | ||
CMakeLists.txt |