44fb61b1f2
Make fixes mostly to stabilize CTS. Tested on Windows with RTX 2080 Ti. Use separate linked-list maps for devices and queues. Process queues upfront in OBS_CreateDevice, and not lazily in OBS_GetDeviceQueue. Handle failed node allocation for OBS_CreateInstance, OBS_CreateDevice, and OBS_CreateSwapchainKHR. Handle VK_NULL_HANDLE for OBS_DestroySurfaceKHR and OBS_DestroySwapchainKHR. Add temporary code path CTS_WORKAROUND to deal with CTS sharing surfaces between instances. Fix return value for OBS_DestroyInstance. Add missing _freea calls, required for _malloca. Make sure the queue passed to OBS_QueuePresentKHR supports transfer to safely call vkCmdCopyImage. Update GetInstanceProcAddr/GetDeviceProcAddr to conform closer to spec. Remove extra macros because I dislike indirection more than verbosity.