From 526779ad66dd5599f146bd537867b132c2549483 Mon Sep 17 00:00:00 2001 From: Malcolm Bechard Date: Mon, 18 Jan 2021 22:58:07 -0500 Subject: [PATCH] fix incorrect behavior for MVKCmdResolveImage fix incorrectly changing first resolve layer's src/dst base layer, as well and out of bounds access to the mtlResolveSlices array --- MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm index 52496094..70f5d7be 100644 --- a/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm +++ b/MoltenVK/MoltenVK/Commands/MVKCmdTransfer.mm @@ -696,7 +696,7 @@ void MVKCmdResolveImage::encode(MVKCommandEncoder* cmdEncoder) { uint32_t layCnt = vkIR.dstSubresource.layerCount; mtlResolveSlices[sliceCnt].dstSubresource.layerCount = 1; mtlResolveSlices[sliceCnt].srcSubresource.layerCount = 1; - for (uint32_t layIdx = 0; layIdx < layCnt; layIdx++) { + for (uint32_t layIdx = 1; layIdx < layCnt; layIdx++) { MVKMetalResolveSlice& rslvSlice = mtlResolveSlices[sliceCnt++]; rslvSlice = mtlResolveSlices[sliceCnt - 2]; rslvSlice.dstSubresource.baseArrayLayer++;