I've got this idea, but I don't know if it is crazy:
I'd like to try having my application spawn a separate process that runs a simple sfml display window. The main process (MP) will compose and render graphics frame by frame, but then copy each frame to the display process (DP). I think there would be cool user interface advantages, but will the cost of transferring full graphics frames between processes be too limiting in general?
The advantage would be that if the MP got stuck (waiting for hardware, crash, etc) the user interface could remain responsive. If the DP doesn't get new frames to display, then it will slowly fade to black and spawn another temporary minimal MP to help manage the situation. Just a simplified query engine to put up a few options like restarting, waiting, send angry emails, etc. This would also allow cool interface separation from multiple tasks or GUI views, etc.
Is it crazy to try and pass full graphics frames between processes fast enough? Is it close enough to depend on the resolution/color-depth of those frames? Is this commonly done already and I just don't know it?