MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-ValidationLayers / TEST_F

Function TEST_F

tests/unit/device_address.cpp:23–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21class NegativeDeviceAddress : public VkLayerTest {};
22
23TEST_F(NegativeDeviceAddress, DestroyOnlyBuffer) {
24 AddRequiredExtensions(VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME);
25 AddRequiredFeature(vkt::Feature::indirectMemoryCopy);
26 AddRequiredFeature(vkt::Feature::bufferDeviceAddress);
27 RETURN_IF_SKIP(Init());
28
29 const size_t copy_size = sizeof(VkCopyMemoryIndirectCommandKHR);
30 vkt::Buffer indirect_buffer(*m_device, copy_size, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, vkt::device_address);
31
32 VkStridedDeviceAddressRangeKHR copy_address_range = {};
33 copy_address_range.address = indirect_buffer.Address();
34 copy_address_range.stride = copy_size;
35 copy_address_range.size = copy_size;
36
37 VkCopyMemoryIndirectInfoKHR indirect_info = vku::InitStructHelper();
38 indirect_info.copyCount = 1u;
39 indirect_info.copyAddressRange = copy_address_range;
40
41 m_command_buffer.Begin();
42 vk::CmdCopyMemoryIndirectKHR(m_command_buffer, &indirect_info);
43 m_command_buffer.End();
44
45 indirect_buffer.Destroy();
46 m_errorMonitor->SetDesiredError("VUID-vkQueueSubmit-pCommandBuffers-00070");
47 m_default_queue->SubmitAndWait(m_command_buffer);
48 m_errorMonitor->VerifyFound();
49}
50
51TEST_F(NegativeDeviceAddress, DestroyAllBuffers) {
52 AddRequiredExtensions(VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME);

Callers

nothing calls this directly

Calls 15

CmdCopyMemoryIndirectKHRFunction · 0.85
BindBufferMemoryFunction · 0.85
EndCommandBufferFunction · 0.85
CmdCopyImageFunction · 0.85
CmdBindResourceHeapEXTFunction · 0.85
CmdBindSamplerHeapEXTFunction · 0.85
CmdBindIndexBuffer3KHRFunction · 0.85
CmdBindPipelineFunction · 0.85
CmdDrawIndirect2KHRFunction · 0.85
CmdFillMemoryKHRFunction · 0.85

Tested by

no test coverage detected