Module: Mesa
Branch: main
Commit: a4a0417263aa98ee93fe3f635fcdc54daa091013
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4a0417263aa98ee93fe3f635fcdc54daa091013

Author: Caio Oliveira <[email protected]>
Date:   Wed Feb 22 15:47:54 2023 -0800

iris, crocus: Align workaround address to 32B

The workaround address is used as a source for push constants when
there's no resource available, that address must be 32B aligned.

This fixes invalid address being used for buffers in
3DSTATE_CONSTANT_* packets.

Now that intel_debug_write_identifiers() already add the padding,
there's no need to include extra "+ 8" to the offset.

Thanks to Xiaoming Wang that contributed to find and fix this issue.

Fixes: 2a4c361b069 ("iris: add identifier BO")
Reviewed-by: Kenneth Graunke <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21479>

---

 src/gallium/drivers/crocus/crocus_context.c | 2 +-
 src/gallium/drivers/iris/iris_screen.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/crocus/crocus_context.c 
b/src/gallium/drivers/crocus/crocus_context.c
index 903be358524..77ddb2e5234 100644
--- a/src/gallium/drivers/crocus/crocus_context.c
+++ b/src/gallium/drivers/crocus/crocus_context.c
@@ -61,7 +61,7 @@ crocus_init_identifier_bo(struct crocus_context *ice)
 
    ice->workaround_bo->kflags |= EXEC_OBJECT_CAPTURE;
    ice->workaround_offset = ALIGN(
-      intel_debug_write_identifiers(bo_map, 4096, "Crocus") + 8, 8);
+      intel_debug_write_identifiers(bo_map, 4096, "Crocus"), 32);
 
    crocus_bo_unmap(ice->workaround_bo);
 
diff --git a/src/gallium/drivers/iris/iris_screen.c 
b/src/gallium/drivers/iris/iris_screen.c
index ffb78f52695..2d8dd558f6b 100644
--- a/src/gallium/drivers/iris/iris_screen.c
+++ b/src/gallium/drivers/iris/iris_screen.c
@@ -768,7 +768,7 @@ iris_init_identifier_bo(struct iris_screen *screen)
    screen->workaround_address = (struct iris_address) {
       .bo = screen->workaround_bo,
       .offset = ALIGN(
-         intel_debug_write_identifiers(bo_map, 4096, "Iris") + 8, 8),
+         intel_debug_write_identifiers(bo_map, 4096, "Iris"), 32),
    };
 
    iris_bo_unmap(screen->workaround_bo);

Reply via email to