Flag dirty dependencies when GeometryInstance dependencies change in renderer
Normally dependencies are only set dirty when changed during culling, but that misses changes that happen in the renderer (like a new shader being set in a material)
This commit is contained in:
parent
f0326297b3
commit
c4a8284dec
3 changed files with 6 additions and 0 deletions
|
|
@ -3771,6 +3771,7 @@ void RenderForwardClustered::_geometry_instance_dependency_changed(Dependency::D
|
|||
case Dependency::DEPENDENCY_CHANGED_MULTIMESH:
|
||||
case Dependency::DEPENDENCY_CHANGED_SKELETON_DATA: {
|
||||
static_cast<RenderGeometryInstance *>(p_tracker->userdata)->_mark_dirty();
|
||||
static_cast<GeometryInstanceForwardClustered *>(p_tracker->userdata)->data->dirty_dependencies = true;
|
||||
} break;
|
||||
case Dependency::DEPENDENCY_CHANGED_MULTIMESH_VISIBLE_INSTANCES: {
|
||||
GeometryInstanceForwardClustered *ginstance = static_cast<GeometryInstanceForwardClustered *>(p_tracker->userdata);
|
||||
|
|
@ -3785,6 +3786,7 @@ void RenderForwardClustered::_geometry_instance_dependency_changed(Dependency::D
|
|||
}
|
||||
void RenderForwardClustered::_geometry_instance_dependency_deleted(const RID &p_dependency, DependencyTracker *p_tracker) {
|
||||
static_cast<RenderGeometryInstance *>(p_tracker->userdata)->_mark_dirty();
|
||||
static_cast<GeometryInstanceForwardClustered *>(p_tracker->userdata)->data->dirty_dependencies = true;
|
||||
}
|
||||
|
||||
RenderGeometryInstance *RenderForwardClustered::geometry_instance_create(RID p_base) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue