mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 05:40:13 +01:00
radv/gfx9: allocate events from uncached VA space
This copies what amdgpu-pro does, and allocates the memory for an event with an uncached mtype. This fixes hangs with: dEQP-VK.api.command_buffers.record_simul_use_primary Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Cc: "17.2" <mesa-stable@lists.freedesktop.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
76ac8fafad
commit
e8d57802fe
3 changed files with 8 additions and 3 deletions
|
|
@ -2789,7 +2789,7 @@ VkResult radv_CreateEvent(
|
|||
|
||||
event->bo = device->ws->buffer_create(device->ws, 8, 8,
|
||||
RADEON_DOMAIN_GTT,
|
||||
RADEON_FLAG_CPU_ACCESS);
|
||||
RADEON_FLAG_VA_UNCACHED | RADEON_FLAG_CPU_ACCESS);
|
||||
if (!event->bo) {
|
||||
vk_free2(&device->alloc, pAllocator, event);
|
||||
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ enum radeon_bo_flag { /* bitfield */
|
|||
RADEON_FLAG_GTT_WC = (1 << 0),
|
||||
RADEON_FLAG_CPU_ACCESS = (1 << 1),
|
||||
RADEON_FLAG_NO_CPU_ACCESS = (1 << 2),
|
||||
RADEON_FLAG_VIRTUAL = (1 << 3)
|
||||
RADEON_FLAG_VIRTUAL = (1 << 3),
|
||||
RADEON_FLAG_VA_UNCACHED = (1 << 4),
|
||||
};
|
||||
|
||||
enum radeon_bo_usage { /* bitfield */
|
||||
|
|
|
|||
|
|
@ -340,7 +340,11 @@ radv_amdgpu_winsys_bo_create(struct radeon_winsys *_ws,
|
|||
goto error_bo_alloc;
|
||||
}
|
||||
|
||||
r = radv_amdgpu_bo_va_op(ws->dev, buf_handle, 0, size, va, 0, AMDGPU_VA_OP_MAP);
|
||||
|
||||
uint32_t va_flags = 0;
|
||||
if (flags & RADEON_FLAG_VA_UNCACHED)
|
||||
va_flags |= AMDGPU_VM_MTYPE_UC;
|
||||
r = radv_amdgpu_bo_va_op(ws->dev, buf_handle, 0, size, va, flags, AMDGPU_VA_OP_MAP);
|
||||
if (r)
|
||||
goto error_va_map;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue