From 661f108d808e5378eba779d4af758d6f4228fb6c Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 22 Jun 2021 05:23:57 +1000 Subject: [PATCH] croucs/gen8: handle gfx8 surface aux addr reloc. This is ported from i965 Part-of: --- src/gallium/drivers/crocus/crocus_state.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c index c81fdcd32bb..6681cd5b4f9 100644 --- a/src/gallium/drivers/crocus/crocus_state.c +++ b/src/gallium/drivers/crocus/crocus_state.c @@ -4991,11 +4991,19 @@ emit_surface_state(struct crocus_batch *batch, * * FIXME: move to the point of assignment. */ - uint32_t *aux_addr = surf_state + (isl_dev->ss.aux_addr_offset / 4); - *aux_addr = crocus_state_reloc(batch, - addr_offset + isl_dev->ss.aux_addr_offset, - aux_bo, *aux_addr, - reloc); + if (devinfo->ver == 8) { + uint64_t *aux_addr = (uint64_t *)(surf_state + (isl_dev->ss.aux_addr_offset / 4)); + *aux_addr = crocus_state_reloc(batch, + addr_offset + isl_dev->ss.aux_addr_offset, + aux_bo, *aux_addr, + reloc); + } else { + uint32_t *aux_addr = surf_state + (isl_dev->ss.aux_addr_offset / 4); + *aux_addr = crocus_state_reloc(batch, + addr_offset + isl_dev->ss.aux_addr_offset, + aux_bo, *aux_addr, + reloc); + } } }