Mesa (main): iris: Add an alignment parameter to iris_bo_alloc()
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jun 7 18:49:17 UTC 2021
Module: Mesa
Branch: main
Commit: 32c5d6d1dca2094351911fa7ca6c5c3eb532581d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=32c5d6d1dca2094351911fa7ca6c5c3eb532581d
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Jun 2 16:16:53 2021 -0700
iris: Add an alignment parameter to iris_bo_alloc()
This is rarely useful, but after the next patch removes tiling tracking,
this would literally be the only difference between iris_bo_alloc and
iris_bo_alloc_tiled, so we may as well add it.
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11169>
---
src/gallium/drivers/iris/iris_batch.c | 3 ++-
src/gallium/drivers/iris/iris_binder.c | 2 +-
src/gallium/drivers/iris/iris_border_color.c | 2 +-
src/gallium/drivers/iris/iris_bufmgr.c | 7 ++++---
src/gallium/drivers/iris/iris_bufmgr.h | 1 +
src/gallium/drivers/iris/iris_measure.c | 2 +-
src/gallium/drivers/iris/iris_perf.c | 2 +-
src/gallium/drivers/iris/iris_program.c | 2 +-
src/gallium/drivers/iris/iris_resource.c | 6 +++---
src/gallium/drivers/iris/iris_screen.c | 3 ++-
10 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
index 608edeb014f..488db8d9203 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -359,7 +359,8 @@ create_batch(struct iris_batch *batch)
struct iris_bufmgr *bufmgr = screen->bufmgr;
batch->bo = iris_bo_alloc(bufmgr, "command buffer",
- BATCH_SZ + BATCH_RESERVED, IRIS_MEMZONE_OTHER, 0);
+ BATCH_SZ + BATCH_RESERVED, 1,
+ IRIS_MEMZONE_OTHER, 0);
batch->bo->kflags |= EXEC_OBJECT_CAPTURE;
batch->map = iris_bo_map(NULL, batch->bo, MAP_READ | MAP_WRITE);
batch->map_next = batch->map;
diff --git a/src/gallium/drivers/iris/iris_binder.c b/src/gallium/drivers/iris/iris_binder.c
index f973b42ef8c..46f3aca3dfa 100644
--- a/src/gallium/drivers/iris/iris_binder.c
+++ b/src/gallium/drivers/iris/iris_binder.c
@@ -85,7 +85,7 @@ binder_realloc(struct iris_context *ice)
}
- binder->bo = iris_bo_alloc(bufmgr, "binder", IRIS_BINDER_SIZE,
+ binder->bo = iris_bo_alloc(bufmgr, "binder", IRIS_BINDER_SIZE, 1,
IRIS_MEMZONE_BINDER, 0);
binder->bo->gtt_offset = next_address;
binder->map = iris_bo_map(NULL, binder->bo, MAP_WRITE);
diff --git a/src/gallium/drivers/iris/iris_border_color.c b/src/gallium/drivers/iris/iris_border_color.c
index 5dcd66058fb..6c794752bd5 100644
--- a/src/gallium/drivers/iris/iris_border_color.c
+++ b/src/gallium/drivers/iris/iris_border_color.c
@@ -71,7 +71,7 @@ iris_reset_border_color_pool(struct iris_border_color_pool *pool,
iris_bo_unreference(pool->bo);
pool->bo = iris_bo_alloc(bufmgr, "border colors",
- IRIS_BORDER_COLOR_POOL_SIZE,
+ IRIS_BORDER_COLOR_POOL_SIZE, 1,
IRIS_MEMZONE_BORDER_COLOR_POOL, 0);
pool->map = iris_bo_map(NULL, pool->bo, MAP_WRITE);
diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c
index 8122006b404..65b2b4838ff 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.c
+++ b/src/gallium/drivers/iris/iris_bufmgr.c
@@ -622,10 +622,11 @@ struct iris_bo *
iris_bo_alloc(struct iris_bufmgr *bufmgr,
const char *name,
uint64_t size,
+ uint32_t alignment,
enum iris_memory_zone memzone,
unsigned flags)
{
- return bo_alloc_internal(bufmgr, name, size, 1, memzone,
+ return bo_alloc_internal(bufmgr, name, size, alignment, memzone,
flags, I915_TILING_NONE, 0);
}
@@ -1643,8 +1644,8 @@ intel_aux_map_buffer_alloc(void *driver_ctx, uint32_t size)
struct iris_bufmgr *bufmgr = (struct iris_bufmgr *)driver_ctx;
struct iris_bo *bo =
- iris_bo_alloc_tiled(bufmgr, "aux-map", size, 64 * 1024,
- IRIS_MEMZONE_OTHER, I915_TILING_NONE, 0, 0);
+ iris_bo_alloc(bufmgr, "aux-map", size, 64 * 1024,
+ IRIS_MEMZONE_OTHER, 0);
buf->driver_bo = bo;
buf->gpu = bo->gtt_offset;
diff --git a/src/gallium/drivers/iris/iris_bufmgr.h b/src/gallium/drivers/iris/iris_bufmgr.h
index 7d438b482d0..528712be602 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.h
+++ b/src/gallium/drivers/iris/iris_bufmgr.h
@@ -258,6 +258,7 @@ struct iris_bo {
struct iris_bo *iris_bo_alloc(struct iris_bufmgr *bufmgr,
const char *name,
uint64_t size,
+ uint32_t alignment,
enum iris_memory_zone memzone,
unsigned flags);
diff --git a/src/gallium/drivers/iris/iris_measure.c b/src/gallium/drivers/iris/iris_measure.c
index 24ca3697fef..620cc06fcd4 100644
--- a/src/gallium/drivers/iris/iris_measure.c
+++ b/src/gallium/drivers/iris/iris_measure.c
@@ -103,7 +103,7 @@ iris_init_batch_measure(struct iris_context *ice, struct iris_batch *batch)
struct iris_measure_batch *measure = batch->measure;
measure->bo = iris_bo_alloc(bufmgr, "measure",
- config->batch_size * sizeof(uint64_t),
+ config->batch_size * sizeof(uint64_t), 1,
IRIS_MEMZONE_OTHER, BO_ALLOC_ZEROED);
measure->base.timestamps = iris_bo_map(NULL, measure->bo, MAP_READ);
measure->base.framebuffer =
diff --git a/src/gallium/drivers/iris/iris_perf.c b/src/gallium/drivers/iris/iris_perf.c
index a359194dc49..ed5e8068834 100644
--- a/src/gallium/drivers/iris/iris_perf.c
+++ b/src/gallium/drivers/iris/iris_perf.c
@@ -26,7 +26,7 @@
static void *
iris_oa_bo_alloc(void *bufmgr, const char *name, uint64_t size)
{
- return iris_bo_alloc(bufmgr, name, size, IRIS_MEMZONE_OTHER, 0);
+ return iris_bo_alloc(bufmgr, name, size, 1, IRIS_MEMZONE_OTHER, 0);
}
static void
diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c
index 6e0030270b1..05e57edc5da 100644
--- a/src/gallium/drivers/iris/iris_program.c
+++ b/src/gallium/drivers/iris/iris_program.c
@@ -2207,7 +2207,7 @@ iris_get_scratch_space(struct iris_context *ice,
uint32_t size = per_thread_scratch * max_threads[stage];
- *bop = iris_bo_alloc(bufmgr, "scratch", size, IRIS_MEMZONE_SHADER, 0);
+ *bop = iris_bo_alloc(bufmgr, "scratch", size, 1, IRIS_MEMZONE_SHADER, 0);
}
return *bop;
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index 78d85953fc6..18d04fb7cde 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -905,7 +905,7 @@ iris_resource_finish_aux_import(struct pipe_screen *pscreen,
if (iris_get_aux_clear_color_state_size(screen) > 0) {
res->aux.clear_color_bo =
iris_bo_alloc(screen->bufmgr, "clear color_buffer",
- iris_get_aux_clear_color_state_size(screen),
+ iris_get_aux_clear_color_state_size(screen), 1,
IRIS_MEMZONE_OTHER, BO_ALLOC_ZEROED);
}
} else if (num_main_planes == 1 && num_planes == 3) {
@@ -963,7 +963,7 @@ iris_resource_create_for_buffer(struct pipe_screen *pscreen,
name = "dynamic state";
}
- res->bo = iris_bo_alloc(screen->bufmgr, name, templ->width0, memzone, 0);
+ res->bo = iris_bo_alloc(screen->bufmgr, name, templ->width0, 1, memzone, 0);
if (!res->bo) {
iris_resource_destroy(pscreen, &res->base.b);
return NULL;
@@ -1514,7 +1514,7 @@ iris_invalidate_resource(struct pipe_context *ctx,
struct iris_bo *old_bo = res->bo;
struct iris_bo *new_bo =
- iris_bo_alloc(screen->bufmgr, res->bo->name, resource->width0,
+ iris_bo_alloc(screen->bufmgr, res->bo->name, resource->width0, 1,
iris_memzone_for_address(old_bo->gtt_offset), 0);
if (!new_bo)
return;
diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c
index 54fbea5e1f9..6c1bd636e46 100644
--- a/src/gallium/drivers/iris/iris_screen.c
+++ b/src/gallium/drivers/iris/iris_screen.c
@@ -812,7 +812,8 @@ iris_screen_create(int fd, const struct pipe_screen_config *config)
screen->no_hw = true;
screen->workaround_bo =
- iris_bo_alloc(screen->bufmgr, "workaround", 4096, IRIS_MEMZONE_OTHER, 0);
+ iris_bo_alloc(screen->bufmgr, "workaround", 4096, 1,
+ IRIS_MEMZONE_OTHER, 0);
if (!screen->workaround_bo)
return NULL;
More information about the mesa-commit
mailing list