panvk: Add a debug flag to force CPU map syncs through the kernel
Useful for debugging. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385>
This commit is contained in:
@@ -47,6 +47,7 @@ static const struct debug_control panvk_debug_options[] = {
|
||||
{"force_blackhole", PANVK_DEBUG_FORCE_BLACKHOLE},
|
||||
{"wsi_afbc", PANVK_DEBUG_WSI_AFBC},
|
||||
{"no_wb_mmap", PANVK_DEBUG_NO_WB_MMAP},
|
||||
{"no_user_mmap_sync", PANVK_DEBUG_NO_USER_MMAP_SYNC},
|
||||
{NULL, 0},
|
||||
};
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ enum panvk_debug_flags {
|
||||
PANVK_DEBUG_FORCE_BLACKHOLE = 1 << 12,
|
||||
PANVK_DEBUG_WSI_AFBC = 1 << 13,
|
||||
PANVK_DEBUG_NO_WB_MMAP = 1 << 14,
|
||||
PANVK_DEBUG_NO_USER_MMAP_SYNC = 1 << 15,
|
||||
};
|
||||
|
||||
extern uint64_t panvk_debug;
|
||||
|
||||
@@ -97,8 +97,12 @@ create_kmod_dev(struct panvk_physical_device *device,
|
||||
if (PANVK_DEBUG(STARTUP))
|
||||
mesa_logi("Found compatible device '%s'.", path);
|
||||
|
||||
device->kmod.dev = pan_kmod_dev_create(fd, PAN_KMOD_DEV_FLAG_OWNS_FD,
|
||||
&instance->kmod.allocator);
|
||||
uint32_t flags = PAN_KMOD_DEV_FLAG_OWNS_FD;
|
||||
|
||||
if (PANVK_DEBUG(NO_USER_MMAP_SYNC))
|
||||
flags |= PAN_KMOD_DEV_FLAG_MMAP_SYNC_THROUGH_KERNEL;
|
||||
|
||||
device->kmod.dev = pan_kmod_dev_create(fd, flags, &instance->kmod.allocator);
|
||||
|
||||
if (!device->kmod.dev) {
|
||||
close(fd);
|
||||
|
||||
@@ -393,9 +393,9 @@ panvk_per_arch(create_device)(struct panvk_physical_device *physical_device,
|
||||
.free = panvk_kmod_free,
|
||||
.priv = &device->vk.alloc,
|
||||
};
|
||||
device->kmod.dev =
|
||||
pan_kmod_dev_create(os_dupfd_cloexec(physical_device->kmod.dev->fd),
|
||||
PAN_KMOD_DEV_FLAG_OWNS_FD, &device->kmod.allocator);
|
||||
device->kmod.dev = pan_kmod_dev_create(
|
||||
os_dupfd_cloexec(physical_device->kmod.dev->fd),
|
||||
physical_device->kmod.dev->flags, &device->kmod.allocator);
|
||||
|
||||
if (!device->kmod.dev) {
|
||||
result = panvk_errorf(instance, VK_ERROR_OUT_OF_HOST_MEMORY,
|
||||
|
||||
Reference in New Issue
Block a user