X264enc and nvenc stuck in the same pipeline

I’m trying to build a pipeline having both nvcudah264enc and x264enc using tee (Gstreamer 1.24.2).
The input is appsrc with GLMemory buffers being outputted from OBS. It’s pretty costy to render a scene and wrap it to Gst, so I would like to keep all encoders for a particular scene in a single pipe.

The problem is the pipe with both encoders gets stuck at “Redistribute latency…” while prerolling (after ~10 buffers) and never transitions into PLAYING state. I’ve inspected some debug logs but couldn’t find anything meaningful.

Funny thing: just swap x264enc to openh264enc and everything plays fine!

You can test it out like this:

DISPLAY=:0 gst-launch-1.0 gltestsrc ! video/x-raw\(memory:GLMemory\),width=1920,height=1080 ! glcolorconvert ! video/x-raw\(memory:GLMemory\),format=NV12 ! tee name=v_input ! queue ! nvautogpuh264enc ! fakesink v_input. ! queue ! gldownload ! queue ! videoconvert ! x264enc ! fakesink

Unfortunately I do need x264enc specifically, for example for interlaced support. I would very much welcome, if you could give me some pointers on how to debug this issue.

Thanks in advance,

The exampe can be simplified without any gl elements. Having only x264encs works fine:

gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080 ! queue ! tee name=v_input ! queue ! x264enc ! fakesink v_input. ! queue ! x264enc ! fakesink

But when I add any other kind of encoder the pipeline won’t play, for example:
gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080 ! queue ! tee name=v_input ! queue ! identity silent=false ! x264enc ! fakesink sync=false v_input. ! queue ! x264enc ! fakesink