diff options
Diffstat (limited to 'servers/rendering/renderer_scene_cull.h')
| -rw-r--r-- | servers/rendering/renderer_scene_cull.h | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/servers/rendering/renderer_scene_cull.h b/servers/rendering/renderer_scene_cull.h index c3eec83d44..b3874ee7ae 100644 --- a/servers/rendering/renderer_scene_cull.h +++ b/servers/rendering/renderer_scene_cull.h @@ -733,11 +733,12 @@ public:  		DynamicBVH *bvh2 = nullptr; //some may need to cull in two  		uint32_t pair_mask;  		uint64_t pair_pass; +		uint32_t cull_mask = 0xFFFFFFFF; // Needed for decals and lights in the mobile and compatibility renderers.  		_FORCE_INLINE_ bool operator()(void *p_data) {  			Instance *p_instance = (Instance *)p_data; -			if (instance != p_instance && instance->transformed_aabb.intersects(p_instance->transformed_aabb) && (pair_mask & (1 << p_instance->base_type))) { +			if (instance != p_instance && instance->transformed_aabb.intersects(p_instance->transformed_aabb) && (pair_mask & (1 << p_instance->base_type)) && (cull_mask & p_instance->layer_mask)) {  				//test is more coarse in indexer  				p_instance->pair_check = pair_pass;  				InstancePair *pair = pair_allocator->alloc();  |