intel/common: allocate space for at least one task urb
authorMarcin Ślusarz <marcin.slusarz@intel.com>
Fri, 6 May 2022 14:37:27 +0000 (16:37 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 27 Jun 2022 14:14:41 +0000 (14:14 +0000)
Fixes: c93cbc77f78 ("intel/common: Add helper for URB allocation in Mesh pipeline")
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16196>

src/intel/common/intel_urb_config.c

index 04f2549..98d5686 100644 (file)
@@ -338,7 +338,10 @@ intel_get_mesh_urb_config(const struct intel_device_info *devinfo,
       task_urb_share = task_urb_share_percentage / 100.0f;
    }
 
-   const unsigned task_urb_kb = ALIGN(total_urb_kb * task_urb_share, 8);
+   const unsigned one_task_urb_kb = ALIGN(r.task_entry_size_64b * 64, 1024) / 1024;
+
+   const unsigned task_urb_kb = ALIGN(MAX2(total_urb_kb * task_urb_share, one_task_urb_kb), 8);
+
    const unsigned mesh_urb_kb = total_urb_kb - task_urb_kb;
 
    /* TODO(mesh): Could we avoid allocating URB for Mesh if rasterization is