vkmemory: flush whole size

Running element_vkcolorconver test with Vulkan validation layer this error is
raised:

Code 0 : Validation Error: [ VUID-VkMappedMemoryRange-size-01390 ] Object 0:
handle = 0x100000000010, type = VK_OBJECT_TYPE_DEVICE_MEMORY;
| MessageID = 0xdd4e6d8b
| vkFlushMappedMemoryRanges: Size in pMemRanges[0] is 0x4, which is not a
multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize (0x40) and offset +
size (0x0 + 0x4 = 0x4) not equal to the memory size (0xb). The Vulkan spec
states: If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of
VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the
size of memory

The reason of is that the image size used in the test doesn't comply hardware
restrictions. In order to avoid juggling with image size and hardware
restrictions, this patch proposes to use VK_WHOLE_SIZE macro.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4296>
This commit is contained in:
Víctor Manuel Jáquez Leal 2023-03-29 12:58:14 +02:00 committed by GStreamer Marge Bot
parent d69e1393f8
commit a31cd75c73

View file

@ -151,7 +151,7 @@ _vk_mem_unmap_full (GstVulkanMemory * mem, GstMapInfo * info)
/* .pNext = */ /* .pNext = */
.memory = mem->mem_ptr, .memory = mem->mem_ptr,
.offset = mem->vk_offset, .offset = mem->vk_offset,
.size = mem->mem.size, .size = VK_WHOLE_SIZE,
}; };
err = vkFlushMappedMemoryRanges (mem->device->device, 1u, &range); err = vkFlushMappedMemoryRanges (mem->device->device, 1u, &range);