diff --git a/src/panfrost/vulkan/panvk_device.h b/src/panfrost/vulkan/panvk_device.h index 15b53b3f79e..b568d3af818 100644 --- a/src/panfrost/vulkan/panvk_device.h +++ b/src/panfrost/vulkan/panvk_device.h @@ -69,6 +69,7 @@ struct panvk_device { struct { struct panvk_pool rw; + struct panvk_pool rw_nc; struct panvk_pool exec; } mempools; diff --git a/src/panfrost/vulkan/panvk_vX_device.c b/src/panfrost/vulkan/panvk_vX_device.c index a8e7fa6d093..114cb6455e4 100644 --- a/src/panfrost/vulkan/panvk_vX_device.c +++ b/src/panfrost/vulkan/panvk_vX_device.c @@ -61,7 +61,7 @@ panvk_device_init_mempools(struct panvk_device *dev) struct panvk_pool_properties rw_pool_props = { .create_flags = 0, .slab_size = 16 * 1024, - .label = "Device RW memory pool", + .label = "Device RW cached memory pool", .owns_bos = false, .needs_locking = true, .prealloc = false, @@ -69,6 +69,17 @@ panvk_device_init_mempools(struct panvk_device *dev) panvk_pool_init(&dev->mempools.rw, dev, NULL, &rw_pool_props); + struct panvk_pool_properties rw_nc_pool_props = { + .create_flags = PAN_KMOD_BO_FLAG_GPU_UNCACHED, + .slab_size = 16 * 1024, + .label = "Device RW uncached memory pool", + .owns_bos = false, + .needs_locking = true, + .prealloc = false, + }; + + panvk_pool_init(&dev->mempools.rw_nc, dev, NULL, &rw_nc_pool_props); + struct panvk_pool_properties exec_pool_props = { .create_flags = PAN_KMOD_BO_FLAG_EXECUTABLE, .slab_size = 16 * 1024,