diff --git a/source/blender/draw/engines/compositor/compositor_engine.cc b/source/blender/draw/engines/compositor/compositor_engine.cc index c632b56ff3d..13a30996526 100644 --- a/source/blender/draw/engines/compositor/compositor_engine.cc +++ b/source/blender/draw/engines/compositor/compositor_engine.cc @@ -161,12 +161,22 @@ class Context : public realtime_compositor::Context { GPUTexture *get_input_texture(const Scene *scene, int view_layer, const char *pass_name) override { - if ((DEG_get_original_id(const_cast(&scene->id)) == - DEG_get_original_id(&DRW_context_state_get()->scene->id)) && - view_layer == 0 && STREQ(pass_name, RE_PASSNAME_COMBINED)) + if (DEG_get_original_id(const_cast(&scene->id)) != + DEG_get_original_id(&DRW_context_state_get()->scene->id)) { + return nullptr; + } + + if (view_layer != 0) { + return nullptr; + } + + if (STREQ(pass_name, RE_PASSNAME_COMBINED)) { return get_output_texture(); } + else if (STREQ(pass_name, RE_PASSNAME_Z)) { + return DRW_viewport_texture_list_get()->depth; + } else { return nullptr; }