Skip to content

Commit 62ee3b0

Browse files
committed
tests: Copy memory with multiple regions
1 parent 06f6335 commit 62ee3b0

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

tests/unit/device_address_commands_positive.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,3 +226,28 @@ TEST_F(PositiveDeviceAddressCommands, BindVertexBuffers3Stride) {
226226
m_command_buffer.EndRenderPass();
227227
m_command_buffer.End();
228228
}
229+
230+
TEST_F(PositiveDeviceAddressCommands, MultipleRegions) {
231+
RETURN_IF_SKIP(InitBasicDeviceAddressCommands());
232+
233+
vkt::Buffer src_buffer(*m_device, 1024u, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, vkt::device_address);
234+
vkt::Buffer dst_buffer(*m_device, 1024u, VK_BUFFER_USAGE_TRANSFER_DST_BIT, vkt::device_address);
235+
236+
VkDeviceMemoryCopyKHR regions[4];
237+
for (uint32_t i = 0; i < 4; ++i) {
238+
regions[i] = vku::InitStructHelper();
239+
regions[i].srcRange = src_buffer.AddressRange();
240+
regions[i].srcRange.address += i * 256u;
241+
regions[i].srcRange.size = 256u;
242+
regions[i].dstRange = dst_buffer.AddressRange();
243+
regions[i].dstRange.address += i * 256u;
244+
regions[i].dstRange.size = 256u;
245+
}
246+
VkCopyDeviceMemoryInfoKHR copy_memory_info = vku::InitStructHelper();
247+
copy_memory_info.regionCount = 4u;
248+
copy_memory_info.pRegions = regions;
249+
250+
m_command_buffer.Begin();
251+
vk::CmdCopyMemoryKHR(m_command_buffer, &copy_memory_info);
252+
m_command_buffer.End();
253+
}

0 commit comments

Comments
 (0)