[PATCH i-g-t] lib/intel_compute: Add documentation of global workgroup size
janga.rahul.kumar at intel.com
janga.rahul.kumar at intel.com
Mon Mar 18 08:52:27 UTC 2024
From: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
Global workgroup size is calculated based on local X/Y/Z maximum
and thread group id X dimension.
Cc: Nirmoy Das <nirmoy.das at intel.com>
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
---
lib/intel_compute.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/intel_compute.c b/lib/intel_compute.c
index 9d3b97efe..72025a481 100644
--- a/lib/intel_compute.c
+++ b/lib/intel_compute.c
@@ -1243,15 +1243,19 @@ static void xe2lpg_compute_exec_compute(uint32_t *addr_bo_buffer_batch,
addr_bo_buffer_batch[b++] = offset_indirect_data_start;
addr_bo_buffer_batch[b++] = 0xbe040000;
addr_bo_buffer_batch[b++] = 0xffffffff;
- addr_bo_buffer_batch[b++] = 0x000003ff;
+ addr_bo_buffer_batch[b++] = 0x000003ff; // Local X/Y/Z Dimension
if (threadgroup_preemption)
- addr_bo_buffer_batch[b++] = 0x00200000; // Global workgroup size
+ /*
+ * Create multiple threadgroups using higher gloabl workgroup size
+ * Global Workgroup size = Local X * Thread Group X + Local Y * Thread Group Y + Local Z * Thread Group Z
+ */
+ addr_bo_buffer_batch[b++] = 0x00200000; // Thread Group ID X Dimension
else
addr_bo_buffer_batch[b++] = 0x00000002;
- addr_bo_buffer_batch[b++] = 0x00000001;
- addr_bo_buffer_batch[b++] = 0x00000001;
+ addr_bo_buffer_batch[b++] = 0x00000001; // Thread Group ID Y Dimension
+ addr_bo_buffer_batch[b++] = 0x00000001; // Thread Group ID Z Dimension
addr_bo_buffer_batch[b++] = 0x00000000;
addr_bo_buffer_batch[b++] = 0x00000000;
addr_bo_buffer_batch[b++] = 0x00000000;
--
2.25.1
More information about the igt-dev
mailing list