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);
