diff --git a/src/intel/common/intel_aux_map.c b/src/intel/common/intel_aux_map.c index f68f089e9bb..fa98170db62 100644 --- a/src/intel/common/intel_aux_map.c +++ b/src/intel/common/intel_aux_map.c @@ -185,6 +185,7 @@ struct intel_aux_map_context { uint64_t *level3_map; uint32_t tail_offset, tail_remaining; uint32_t state_num; + enum intel_aux_map_format format_enum; const struct aux_format_info *format; }; @@ -344,6 +345,7 @@ intel_aux_map_init(void *driver_ctx, if (pthread_mutex_init(&ctx->mutex, NULL)) return NULL; + ctx->format_enum = format; ctx->format = get_format(format); ctx->driver_ctx = driver_ctx; ctx->buffer_alloc = buffer_alloc; @@ -383,6 +385,16 @@ intel_aux_map_finish(struct intel_aux_map_context *ctx) ralloc_free(ctx); } +uint32_t +intel_aux_map_get_alignment(struct intel_aux_map_context *ctx) +{ + switch (ctx->format_enum) { + case INTEL_AUX_MAP_GFX12_64KB: return 64 * 1024; + case INTEL_AUX_MAP_GFX125_1MB: return 1 * 1024 * 1024; + default: unreachable("Invalid AUX map format"); + } +} + uint64_t intel_aux_map_get_base(struct intel_aux_map_context *ctx) { diff --git a/src/intel/common/intel_aux_map.h b/src/intel/common/intel_aux_map.h index 8e7882d5166..267da3c2fc3 100644 --- a/src/intel/common/intel_aux_map.h +++ b/src/intel/common/intel_aux_map.h @@ -50,6 +50,9 @@ intel_aux_map_init(void *driver_ctx, struct intel_mapped_pinned_buffer_alloc *buffer_alloc, const struct intel_device_info *devinfo); +uint32_t +intel_aux_map_get_alignment(struct intel_aux_map_context *ctx); + void intel_aux_map_finish(struct intel_aux_map_context *ctx);