winsys/amdgpu: disallow pb_cache for backing buffers of sparse buffers
because amdgpu_bo_wait doesn't wait for active CS jobs using the buffers. This fixes incorrect buffer reuse of busy buffers. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8895>
This commit is contained in:
parent
a36d5bf11b
commit
8481a3414f
|
@ -968,7 +968,11 @@ sparse_backing_alloc(struct amdgpu_winsys_bo *bo, uint32_t *pstart_page, uint32_
|
|||
|
||||
buf = amdgpu_bo_create(bo->ws, size, RADEON_SPARSE_PAGE_SIZE,
|
||||
bo->base.placement,
|
||||
(bo->base.usage & ~RADEON_FLAG_SPARSE) | RADEON_FLAG_NO_SUBALLOC);
|
||||
(bo->base.usage & ~RADEON_FLAG_SPARSE &
|
||||
/* Set the interprocess sharing flag to disable pb_cache because
|
||||
* amdgpu_bo_wait doesn't wait for active CS jobs.
|
||||
*/
|
||||
~RADEON_FLAG_NO_INTERPROCESS_SHARING) | RADEON_FLAG_NO_SUBALLOC);
|
||||
if (!buf) {
|
||||
FREE(best_backing->chunks);
|
||||
FREE(best_backing);
|
||||
|
|
Loading…
Reference in New Issue