From 012ca283a29bca6dd6b828406fe490ff356484f1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Wed, 8 Aug 2018 09:53:32 +0200 Subject: [PATCH] dont exess src or dest texture size for region in copy operation --- src/vkh_presenter.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/vkh_presenter.c b/src/vkh_presenter.c index 7f21d05..d50754d 100644 --- a/src/vkh_presenter.c +++ b/src/vkh_presenter.c @@ -23,6 +23,14 @@ #include "vkh_device.h" #include "vkh_image.h" +#ifndef MIN +# define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef MAX +# define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#endif + void _swapchain_create (VkhPresenter r); void _swapchain_destroy (VkhPresenter r); void _init_phy_surface (VkhPresenter r, VkFormat preferedFormat, VkPresentModeKHR presentMode); @@ -100,6 +108,8 @@ bool vkh_presenter_draw (VkhPresenter r) { void vkh_presenter_build_blit_cmd (VkhPresenter r, VkImage blitSource, uint32_t width, uint32_t height){ + uint32_t w = MIN(width, r->width), h = MIN(height, r->height); + for (int32_t i = 0; i < r->imgCount; ++i) { VkImage bltDstImage = r->ScBuffers[i]->image; @@ -119,7 +129,7 @@ void vkh_presenter_build_blit_cmd (VkhPresenter r, VkImage blitSource, uint32_t .dstSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, .srcOffset = {}, .dstOffset = {0,0,0}, - .extent = {width, height,1}}; + .extent = {w, h,1}}; vkCmdCopyImage(cb, blitSource, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, bltDstImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &cregion); -- 2.47.3