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: 2a4c361b06 ("iris: add identifier BO")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21479>
This commit is contained in:
Caio Oliveira 2023-02-22 15:47:54 -08:00 committed by Marge Bot
parent ea0ec8c562
commit a4a0417263
2 changed files with 2 additions and 2 deletions

View file

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

View file

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