From 37cdce0146dbc89806a93555a00fc00718b0533a Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Thu, 12 Nov 2020 14:09:35 -0500 Subject: winsys/amdgpu: remove amdgpu_winsys_bo::sparse Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 13 ++++++------- src/gallium/winsys/amdgpu/drm/amdgpu_bo.h | 1 - src/gallium/winsys/amdgpu/drm/amdgpu_cs.c | 4 ++-- src/gallium/winsys/amdgpu/drm/amdgpu_cs.h | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) (limited to 'src/gallium/winsys/amdgpu/drm') diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c index f9dbf6e2eca..623b8318bd6 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c @@ -247,7 +247,7 @@ static void amdgpu_clean_up_buffer_managers(struct amdgpu_winsys *ws) static bool amdgpu_bo_do_map(struct amdgpu_winsys_bo *bo, void **cpu) { - assert(!bo->sparse && bo->bo && !bo->is_user_ptr); + assert(!(bo->flags & RADEON_FLAG_SPARSE) && bo->bo && !bo->is_user_ptr); int r = amdgpu_bo_cpu_map(bo->bo, cpu); if (r) { /* Clean up buffer managers and try again. */ @@ -276,7 +276,7 @@ void *amdgpu_bo_map(struct pb_buffer *buf, struct amdgpu_winsys_bo *real; struct amdgpu_cs *cs = (struct amdgpu_cs*)rcs; - assert(!bo->sparse); + assert(!(bo->flags & RADEON_FLAG_SPARSE)); /* If it's not unsynchronized bo_map, flush CS if needed and then wait. */ if (!(usage & PIPE_MAP_UNSYNCHRONIZED)) { @@ -403,7 +403,7 @@ void amdgpu_bo_unmap(struct pb_buffer *buf) struct amdgpu_winsys_bo *bo = (struct amdgpu_winsys_bo*)buf; struct amdgpu_winsys_bo *real; - assert(!bo->sparse); + assert(!(bo->flags & RADEON_FLAG_SPARSE)); if (bo->is_user_ptr) return; @@ -1015,7 +1015,7 @@ static void amdgpu_bo_sparse_destroy(struct pb_buffer *_buf) struct amdgpu_winsys_bo *bo = amdgpu_winsys_bo(_buf); int r; - assert(!bo->bo && bo->sparse); + assert(!bo->bo && bo->flags & RADEON_FLAG_SPARSE); r = amdgpu_bo_va_op_raw(bo->ws->dev, NULL, 0, (uint64_t)bo->u.sparse.num_va_pages * RADEON_SPARSE_PAGE_SIZE, @@ -1071,7 +1071,6 @@ amdgpu_bo_sparse_create(struct amdgpu_winsys *ws, uint64_t size, bo->ws = ws; bo->initial_domain = domain; bo->unique_id = __sync_fetch_and_add(&ws->next_bo_unique_id, 1); - bo->sparse = true; bo->flags = flags; bo->u.sparse.num_va_pages = DIV_ROUND_UP(size, RADEON_SPARSE_PAGE_SIZE); @@ -1119,7 +1118,7 @@ amdgpu_bo_sparse_commit(struct pb_buffer *buf, uint64_t offset, uint64_t size, bool ok = true; int r; - assert(bo->sparse); + assert(bo->flags & RADEON_FLAG_SPARSE); assert(offset % RADEON_SPARSE_PAGE_SIZE == 0); assert(offset <= bo->base.size); assert(size <= bo->base.size - offset); @@ -1664,7 +1663,7 @@ static bool amdgpu_bo_is_suballocated(struct pb_buffer *buf) { struct amdgpu_winsys_bo *bo = (struct amdgpu_winsys_bo*)buf; - return !bo->bo && !bo->sparse; + return !bo->bo && !(bo->flags & RADEON_FLAG_SPARSE); } static uint64_t amdgpu_bo_get_va(struct pb_buffer *buf) diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h index 88e01b8f3df..c4edb58442b 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.h @@ -90,7 +90,6 @@ struct amdgpu_winsys_bo { void *cpu_ptr; /* for user_ptr and permanent maps */ amdgpu_bo_handle bo; /* NULL for slab entries and sparse buffers */ - bool sparse; bool is_user_ptr; uint32_t unique_id; uint64_t va; diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c index be297be85e3..9658bf7fb4b 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c @@ -420,7 +420,7 @@ int amdgpu_lookup_buffer(struct amdgpu_cs_context *cs, struct amdgpu_winsys_bo * if (bo->bo) { buffers = cs->real_buffers; num_buffers = cs->num_real_buffers; - } else if (!bo->sparse) { + } else if (!(bo->flags & RADEON_FLAG_SPARSE)) { buffers = cs->slab_buffers; num_buffers = cs->num_slab_buffers; } else { @@ -643,7 +643,7 @@ static unsigned amdgpu_cs_add_buffer(struct radeon_cmdbuf *rcs, (1u << priority) & cs->last_added_bo_priority_usage) return cs->last_added_bo_index; - if (!bo->sparse) { + if (!(bo->flags & RADEON_FLAG_SPARSE)) { if (!bo->bo) { index = amdgpu_lookup_or_add_slab_buffer(acs, bo); if (index < 0) diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h index 5c8ba753609..ae90814b1de 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h @@ -263,7 +263,7 @@ amdgpu_bo_is_referenced_by_cs_with_usage(struct amdgpu_cs *cs, return false; buffer = bo->bo ? &cs->csc->real_buffers[index] : - bo->sparse ? &cs->csc->sparse_buffers[index] : + bo->flags & RADEON_FLAG_SPARSE ? &cs->csc->sparse_buffers[index] : &cs->csc->slab_buffers[index]; return (buffer->usage & usage) != 0; -- cgit v1.2.3