summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/amdgpu/drm
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2021-10-22 00:52:40 -0400
committerMarge Bot <emma+marge@anholt.net>2021-10-29 06:54:22 +0000
commita5118bc97dc009c486157b193dca484587fdb591 (patch)
tree75621bbb91876a207c3d86ef86d2e8d79c55fd6e /src/gallium/winsys/amdgpu/drm
parent107bc76882e9e8d8f1c71d68d3af7d27194bfad1 (diff)
winsys/amdgpu: don't clear RADEON_USAGE_SYNCHRONIZED for last_added_bo_usage
It was breaking the early return path. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13478>
Diffstat (limited to 'src/gallium/winsys/amdgpu/drm')
-rw-r--r--src/gallium/winsys/amdgpu/drm/amdgpu_cs.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index 2152890774d..6fb8099ce52 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -665,29 +665,32 @@ static unsigned amdgpu_cs_add_buffer(struct radeon_cmdbuf *rcs,
buffer = &cs->slab_buffers[index];
buffer->usage |= usage;
+ cs->last_added_bo_usage = buffer->usage;
- usage &= ~RADEON_USAGE_SYNCHRONIZED;
index = buffer->slab_real_idx;
+ buffer = &cs->real_buffers[index];
+ buffer->usage |= usage & ~RADEON_USAGE_SYNCHRONIZED;
} else {
index = amdgpu_lookup_or_add_real_buffer(rcs, cs, bo);
if (index < 0)
return 0;
- }
- buffer = &cs->real_buffers[index];
+ buffer = &cs->real_buffers[index];
+ buffer->usage |= usage;
+ cs->last_added_bo_usage = buffer->usage;
+ }
} else {
index = amdgpu_lookup_or_add_sparse_buffer(rcs, cs, bo);
if (index < 0)
return 0;
buffer = &cs->sparse_buffers[index];
+ buffer->usage |= usage;
+ cs->last_added_bo_usage = buffer->usage;
}
- buffer->usage |= usage;
-
cs->last_added_bo = bo;
cs->last_added_bo_index = index;
- cs->last_added_bo_usage = buffer->usage;
return index;
}