In principle I think this is fine, but is it necessary? I assume the issue here is that D3D12CreateDeviceVKD3D() passes "VK_KHR_surface" and "VK_KHR_swapchain" as required extensions to vkd3d_create_device(); could we just make those optional? (Possibly gated by "api_version".)