#warning formats other than VK_FORMAT_B8G8R8A8_UNORM are unimplemented
assert(create_info.imageFormat == VK_FORMAT_B8G8R8A8_UNORM);
assert(create_info.imageColorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR);
- assert(create_info.imageExtent.width == start_setup_results.image_width);
- assert(create_info.imageExtent.height == start_setup_results.image_height);
assert(create_info.imageArrayLayers
<= start_setup_results.capabilities.maxImageArrayLayers);
assert(create_info.imageArrayLayers != 0);
case Start_setup_results::Status::Success:
break;
}
+ if(start_setup_results.image_width != create_info.imageExtent.width
+ || start_setup_results.image_height != create_info.imageExtent.height)
+ {
+ status = Status::Out_of_date;
+ }
start_setup_results.image_descriptor.format = create_info.imageFormat;
swapchain_width = start_setup_results.image_width;
swapchain_height = start_setup_results.image_height;
queue.queue_fence_signal(fence);
fence.wait(-1);
}
-
+
if(shm_is_supported)
{
xcb_copy_area(connection,
switch(swapchain->status)
{
case Implementation::Swapchain::Status::Setup_failed:
- case Implementation::Swapchain::Status::Out_of_date:
case Implementation::Swapchain::Status::No_surface:
return VK_ERROR_SURFACE_LOST_KHR;
case Implementation::Swapchain::Status::Good:
+ case Implementation::Swapchain::Status::Out_of_date: // we'll return out of date later
return swapchain;
}
assert(!"unreachable");