[PATCH i-g-t] lib/intel_compute: Align objects on 64K for xelpg
Francois Dugast
francois.dugast at intel.com
Fri Mar 7 10:39:51 UTC 2025
Ensure 64K alignment to be consistent with xehp and xehpc. Especially
the binding table offset was changed to 0x10000 but this had not been
taken into account for xelpg, so fix it.
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Signed-off-by: Francois Dugast <francois.dugast at intel.com>
---
lib/intel_compute.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/intel_compute.c b/lib/intel_compute.c
index dd9c83c9c..28149db53 100644
--- a/lib/intel_compute.c
+++ b/lib/intel_compute.c
@@ -1339,7 +1339,7 @@ static void xelpg_compute_exec_compute(uint32_t *addr_bo_buffer_batch,
addr_bo_buffer_batch[b++] = 0x00000000;
addr_bo_buffer_batch[b++] = 0x00000000;
addr_bo_buffer_batch[b++] = 0x00000000;
- addr_bo_buffer_batch[b++] = 0x00001080;
+ addr_bo_buffer_batch[b++] = 0x00010080;
addr_bo_buffer_batch[b++] = 0x0c000020;
addr_bo_buffer_batch[b++] = 0x00000008;
@@ -1551,10 +1551,10 @@ static void xelpg_compute_exec(int fd, const unsigned char *kernel,
.size = 0x100000,
.name = "dynamic state base"},
{ .addr = ADDR_SURFACE_STATE_BASE,
- .size = 0x1000,
+ .size = 0x10000,
.name = "surface state base"},
{ .addr = ADDR_GENERAL_STATE_BASE + OFFSET_INDIRECT_DATA_START,
- .size = 0x1000,
+ .size = 0x10000,
.name = "indirect object base"},
{ .addr = ADDR_INPUT, .size = SIZE_BUFFER_INPUT,
.name = "addr input"},
@@ -1563,7 +1563,7 @@ static void xelpg_compute_exec(int fd, const unsigned char *kernel,
{ .addr = ADDR_GENERAL_STATE_BASE, .size = 0x100000,
.name = "general state base" },
{ .addr = ADDR_SURFACE_STATE_BASE + OFFSET_BINDING_TABLE,
- .size = 0x1000,
+ .size = 0x10000,
.name = "binding table" },
{ .addr = ADDR_BATCH,
.size = SIZE_BATCH,
@@ -1576,7 +1576,7 @@ static void xelpg_compute_exec(int fd, const unsigned char *kernel,
bo_execenv_create(fd, &execenv, eci, user);
/* Sets Kernel size */
- bo_dict[0].size = ALIGN(size, 0x1000);
+ bo_dict[0].size = ALIGN(size, 0x10000);
bo_execenv_bind(&execenv, bo_dict, XELPG_BO_DICT_ENTRIES);
--
2.43.0
More information about the igt-dev
mailing list