I was referring more to the whole series, not just queues being added more than once. Sorry if that wasn't clear. The main issue is it really needs a threaded solution. For example, the ops mutex will naturally become available for locking when the worker thread sleeps on a condition variable, so workarounds become unnecessary; e.g. `is_flushing` disappears. The current implementation is little more than a hack to avoid threading, and the issue with sequencing vkQueuePresentKHR() is the only reason it was done that way.
Are these changes required to solve the main issue with Present sequencing? If not then I think the Present problem should be fixed on its own, then a threaded ops queue introduced after that.