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

Function TEST_F

tests/unit/sparse_buffer.cpp:20–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18class NegativeSparseBuffer : public VkLayerTest {};
19
20TEST_F(NegativeSparseBuffer, QueueBindSparseMemoryBindSize) {
21 TEST_DESCRIPTION("Test QueueBindSparse with invalid sparse memory bind size");
22 AddRequiredFeature(vkt::Feature::sparseBinding);
23 RETURN_IF_SKIP(Init());
24
25 if (m_device->QueuesWithSparseCapability().empty()) {
26 GTEST_SKIP() << "Required SPARSE_BINDING queue families not present";
27 }
28
29 VkBufferCreateInfo b_info =
30 vkt::Buffer::CreateInfo(0x10000, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT);
31 b_info.flags = VK_BUFFER_CREATE_SPARSE_BINDING_BIT;
32 vkt::Buffer buffer_sparse(*m_device, b_info, vkt::no_mem);
33
34 VkMemoryRequirements buffer_mem_reqs;
35 vk::GetBufferMemoryRequirements(device(), buffer_sparse, &buffer_mem_reqs);
36 const auto buffer_mem_alloc =
37 vkt::DeviceMemory::GetResourceAllocInfo(*m_device, buffer_mem_reqs, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
38
39 vkt::DeviceMemory buffer_mem(*m_device, buffer_mem_alloc);
40
41 VkSparseMemoryBind buffer_memory_bind = {};
42 buffer_memory_bind.size = 0u; // This will trigger the VUID we are testing
43 buffer_memory_bind.memory = buffer_mem;
44
45 VkSparseBufferMemoryBindInfo buffer_memory_bind_info{};
46 buffer_memory_bind_info.buffer = buffer_sparse;
47 buffer_memory_bind_info.bindCount = 1;
48 buffer_memory_bind_info.pBinds = &buffer_memory_bind;
49
50 VkBindSparseInfo bind_info = vku::InitStructHelper();
51 bind_info.bufferBindCount = 1;
52 bind_info.pBufferBinds = &buffer_memory_bind_info;
53
54 VkQueue sparse_queue = m_device->QueuesWithSparseCapability()[0]->handle();
55
56 m_errorMonitor->SetDesiredError("VUID-VkSparseMemoryBind-size-01098");
57 vk::QueueBindSparse(sparse_queue, 1, &bind_info, VK_NULL_HANDLE);
58 m_errorMonitor->VerifyFound();
59}
60
61TEST_F(NegativeSparseBuffer, QueueBindSparseMemoryBindAlignments) {
62 TEST_DESCRIPTION("Test QueueBindSparse with invalid sparse memory bind size");

Callers

nothing calls this directly

Calls 15

QueueBindSparseFunction · 0.85
size32Function · 0.85
CmdCopyBufferFunction · 0.85
QueueSubmitFunction · 0.85
SetDesiredErrorMethod · 0.80
InitNoMemoryMethod · 0.80
MemoryRequirementsMethod · 0.80
FeaturesMethod · 0.80
emptyMethod · 0.45
handleMethod · 0.45
VerifyFoundMethod · 0.45

Tested by

no test coverage detected