Can I call the Present method of different swapchains of a single adapter each in a separate thread?
I have 2 monitors attached to one card and 2 swapchains for each monitor. Without triple buffering, call Present sequentially would be silly. And with triple buffering, I will have to add one more staging buffer for each stream content (and I have a lot of them).
I found that I didn't know when Present would wait... Will Present be blocked when there is no free buffer in swapchain, or will it be blocked when number of queued frames have reached the maximum?
This is more from knowledge and some intuition vs experience here:
Make a thread for each display device, give them each their own HWND and message pump, call Present from those threads. The actual rendering can be on any thread but presenting on the pump thread requires a bit of syncornization finesse (but is very much worth it and more or less required in multithreaded rendering anyway).