diff --git a/src/panfrost/vulkan/panvk_device.h b/src/panfrost/vulkan/panvk_device.h index e796407fb96..ead293f0503 100644 --- a/src/panfrost/vulkan/panvk_device.h +++ b/src/panfrost/vulkan/panvk_device.h @@ -150,6 +150,10 @@ panvk_device_adjust_bo_flags(const struct panvk_device *device, if (PANVK_DEBUG(DUMP) || PANVK_DEBUG(TRACE)) bo_flags &= ~PAN_KMOD_BO_FLAG_NO_MMAP; + if (!(device->kmod.dev->props.supported_bo_flags & + PAN_KMOD_BO_FLAG_GPU_UNCACHED)) + bo_flags &= ~PAN_KMOD_BO_FLAG_GPU_UNCACHED; + return bo_flags; } diff --git a/src/panfrost/vulkan/panvk_vX_device.c b/src/panfrost/vulkan/panvk_vX_device.c index bdde03958fb..b0f049a29bd 100644 --- a/src/panfrost/vulkan/panvk_vX_device.c +++ b/src/panfrost/vulkan/panvk_vX_device.c @@ -81,7 +81,8 @@ panvk_device_init_mempools(struct panvk_device *dev) panvk_pool_init(&dev->mempools.rw, dev, NULL, NULL, &rw_pool_props); struct panvk_pool_properties rw_nc_pool_props = { - .create_flags = PAN_ARCH <= 9 ? 0 : PAN_KMOD_BO_FLAG_GPU_UNCACHED, + .create_flags = + panvk_device_adjust_bo_flags(dev, PAN_KMOD_BO_FLAG_GPU_UNCACHED), .slab_size = 16 * 1024, .label = "Device RW uncached memory pool", .owns_bos = false,