Yeah we’ll have to see if this works how we think it does, because I think black frame insertion actually interleaves with the emulation, so you get frame 1 of the emulation then a frame of black then frame 2 of the emulation.
If we did it in the shader you would get frame 1 of the emulation, then a black frame then frame 3 of the emulation. So frame 2 is never seen. So if the game is running at the target framerate, e.g. 60fps, and every other frame is black then you will effectively only see smoothness of about 30fps. So I’m not sure that this will work properly, unless you could get to output each emulated frame for 2 frames before moving to the next emulated frame.
From my guess of how I think it works for 60 fps content and your monitor running at 120fps with black frame insertion I think the content still runs at 60fps and an extra black frame is generated for every emulation frame and shown for half the time, and this gets you to 120fps.
These are all my guesses as I haven’t used black frame insertion much.