The code looks reasonable to me, but my driver does not like it. I get that when running dxgi tests: ``` radv/amdgpu: The CS has been rejected, see dmesg for more information (-22). // nothing shows up in dmesg 0264:err:dxgi:d3d12_swapchain_queue_present Failed to blit swapchain buffer, vr -4. 0264:err:dxgi:d3d12_swapchain_op_present_execute Failed to queue present, vr -4. 0264:fixme:dxgi:hresult_from_vk_result Unhandled VkResult -4. 0264:err:dxgi:d3d12_swapchain_queue_present Failed to blit swapchain buffer, vr -4. 0264:err:dxgi:d3d12_swapchain_op_present_execute Failed to queue present, vr -4. 0264:fixme:dxgi:hresult_from_vk_result Unhandled VkResult -4. 0264:err:dxgi:d3d12_swapchain_queue_present Failed to blit swapchain buffer, vr -4. 0264:err:dxgi:d3d12_swapchain_op_present_execute Failed to queue present, vr -4. 0264:fixme:dxgi:hresult_from_vk_result Unhandled VkResult -4. 0264:err:dxgi:d3d12_swapchain_queue_present Failed to blit swapchain buffer, vr -4. 0264:err:dxgi:d3d12_swapchain_op_present_execute Failed to queue present, vr -4. 0264:fixme:dxgi:hresult_from_vk_result Unhandled VkResult -4. ```
(By the way, I think the moved wakes is the right way to do it.)