mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
winsys/amdgpu: add CLEAR_VRAM flag to zero vram when creating bo
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29010>
This commit is contained in:
parent
468ea03c6e
commit
48ea133c97
2 changed files with 5 additions and 4 deletions
|
|
@ -65,6 +65,7 @@ enum radeon_bo_flag
|
|||
RADEON_FLAG_DISCARDABLE = (1 << 10),
|
||||
RADEON_FLAG_WINSYS_SLAB_BACKING = (1 << 11), /* only used by the winsys */
|
||||
RADEON_FLAG_GFX12_ALLOW_DCC = (1 << 12), /* allow DCC, VRAM only */
|
||||
RADEON_FLAG_CLEAR_VRAM = (1 << 13),
|
||||
};
|
||||
|
||||
static inline void
|
||||
|
|
@ -918,7 +919,7 @@ static inline int radeon_get_heap_index(enum radeon_bo_domain domain, enum radeo
|
|||
/* These are unsupported flags. */
|
||||
/* RADEON_FLAG_DRIVER_INTERNAL is ignored. It doesn't affect allocators. */
|
||||
if (flags & (RADEON_FLAG_NO_SUBALLOC | RADEON_FLAG_SPARSE |
|
||||
RADEON_FLAG_DISCARDABLE))
|
||||
RADEON_FLAG_DISCARDABLE | RADEON_FLAG_CLEAR_VRAM))
|
||||
return -1;
|
||||
|
||||
int heap = 0;
|
||||
|
|
|
|||
|
|
@ -545,8 +545,8 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *aws,
|
|||
aws->info.drm_minor >= 47)
|
||||
request.flags |= AMDGPU_GEM_CREATE_DISCARDABLE;
|
||||
|
||||
if (aws->zero_all_vram_allocs &&
|
||||
(request.preferred_heap & AMDGPU_GEM_DOMAIN_VRAM))
|
||||
if ((flags & RADEON_FLAG_CLEAR_VRAM) || (aws->zero_all_vram_allocs &&
|
||||
(request.preferred_heap & AMDGPU_GEM_DOMAIN_VRAM)))
|
||||
request.flags |= AMDGPU_GEM_CREATE_VRAM_CLEARED;
|
||||
|
||||
if ((flags & RADEON_FLAG_ENCRYPTED) &&
|
||||
|
|
@ -1440,7 +1440,7 @@ no_slab:
|
|||
|
||||
bool use_reusable_pool = !(domain & RADEON_DOMAIN_DOORBELL) &&
|
||||
(flags & RADEON_FLAG_NO_INTERPROCESS_SHARING) &&
|
||||
!(flags & RADEON_FLAG_DISCARDABLE);
|
||||
!(flags & (RADEON_FLAG_DISCARDABLE | RADEON_FLAG_CLEAR_VRAM));
|
||||
|
||||
if (use_reusable_pool) {
|
||||
/* RADEON_FLAG_NO_SUBALLOC is irrelevant for the cache. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue