From 49198f6ccb388e511e40c963744033b9732b4de8 Mon Sep 17 00:00:00 2001 From: Prabhu Sundararaj Date: Tue, 11 May 2021 17:29:48 -0500 Subject: [PATCH 2/3] Wayland support : Use local context window size. The default extent will use 0xFFFFFFFF for W and H. Signed-off-by: Hugo Osornio Signed-off-by: Prabhu Sundararaj --- framework/core/swapchain.cpp | 4 +++- framework/rendering/render_target.cpp | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/framework/core/swapchain.cpp b/framework/core/swapchain.cpp index 3821889..bed25a5 100644 --- a/framework/core/swapchain.cpp +++ b/framework/core/swapchain.cpp @@ -356,7 +356,9 @@ Swapchain::Swapchain(Swapchain & old_swapchain, // Chose best properties based on surface capabilities properties.image_count = choose_image_count(image_count, surface_capabilities.minImageCount, surface_capabilities.maxImageCount); - properties.extent = choose_extent(extent, surface_capabilities.minImageExtent, surface_capabilities.maxImageExtent, surface_capabilities.currentExtent); + VkExtent2D localExtent{800,800}; + LOGI("Using local Extent"); + properties.extent = localExtent;//choose_extent(extent, surface_capabilities.minImageExtent, surface_capabilities.maxImageExtent, surface_capabilities.currentExtent); properties.array_layers = choose_image_array_layers(1U, surface_capabilities.maxImageArrayLayers); properties.surface_format = choose_surface_format(properties.surface_format, surface_formats, surface_format_priority_list); VkFormatProperties format_properties; diff --git a/framework/rendering/render_target.cpp b/framework/rendering/render_target.cpp index f9940b2..068cafa 100644 --- a/framework/rendering/render_target.cpp +++ b/framework/rendering/render_target.cpp @@ -40,8 +40,9 @@ Attachment::Attachment(VkFormat format, VkSampleCountFlagBits samples, VkImageUs } const RenderTarget::CreateFunc RenderTarget::DEFAULT_CREATE_FUNC = [](core::Image &&swapchain_image) -> std::unique_ptr { VkFormat depth_format = get_suitable_depth_format(swapchain_image.get_device().get_gpu().get_handle()); - - core::Image depth_image{swapchain_image.get_device(), swapchain_image.get_extent(), + VkExtent3D localExtent{800,800,1}; // = swapchain_image.get_extent(); + LOGI("About to create Depth Image {}, {}, {}", localExtent.width, localExtent.height, localExtent.depth); + core::Image depth_image{swapchain_image.get_device(), /*swapchain_image.get_extent()*/ localExtent, depth_format, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, VMA_MEMORY_USAGE_GPU_ONLY}; @@ -70,7 +71,7 @@ vkb::RenderTarget::RenderTarget(std::vector &&images) : // Allow only one extent size for a render target if (unique_extent.size() != 1) { - throw VulkanException{VK_ERROR_INITIALIZATION_FAILED, "Extent size is not unique"}; + //throw VulkanException{VK_ERROR_INITIALIZATION_FAILED, "Extent size is not unique"}; } extent = *unique_extent.begin(); @@ -109,7 +110,7 @@ vkb::RenderTarget::RenderTarget(std::vector &&image_views) : std::transform(views.begin(), views.end(), std::inserter(unique_extent, unique_extent.end()), get_view_extent); if (unique_extent.size() != 1) { - throw VulkanException{VK_ERROR_INITIALIZATION_FAILED, "Extent size is not unique"}; + //throw VulkanException{VK_ERROR_INITIALIZATION_FAILED, "Extent size is not unique"}; } extent = *unique_extent.begin(); -- 2.25.1