radv: correctly return VK_ERROR_OUT_OF_DEVICE_MEMORY when mapping a BO fails
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27039>
This commit is contained in:

committed by
Marge Bot

parent
4fe5f06d40
commit
6febec12e4
@@ -981,8 +981,10 @@ radv_update_preamble_cs(struct radv_queue_state *queue, struct radv_device *devi
|
|||||||
|
|
||||||
if (descriptor_bo != queue->descriptor_bo) {
|
if (descriptor_bo != queue->descriptor_bo) {
|
||||||
uint32_t *map = (uint32_t *)ws->buffer_map(descriptor_bo);
|
uint32_t *map = (uint32_t *)ws->buffer_map(descriptor_bo);
|
||||||
if (!map)
|
if (!map) {
|
||||||
|
result = VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||||
goto fail;
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
radv_fill_shader_rings(device, map, scratch_bo, needs->esgs_ring_size, esgs_ring_bo, needs->gsvs_ring_size,
|
radv_fill_shader_rings(device, map, scratch_bo, needs->esgs_ring_size, esgs_ring_bo, needs->gsvs_ring_size,
|
||||||
gsvs_ring_bo, tess_rings_bo, task_rings_bo, mesh_scratch_ring_bo, needs->attr_ring_size,
|
gsvs_ring_bo, tess_rings_bo, task_rings_bo, mesh_scratch_ring_bo, needs->attr_ring_size,
|
||||||
|
@@ -265,7 +265,7 @@ radv_amdgpu_cs_get_new_ib(struct radeon_cmdbuf *_cs, uint32_t ib_size)
|
|||||||
cs->ib_mapped = cs->ws->base.buffer_map(cs->ib_buffer);
|
cs->ib_mapped = cs->ws->base.buffer_map(cs->ib_buffer);
|
||||||
if (!cs->ib_mapped) {
|
if (!cs->ib_mapped) {
|
||||||
cs->ws->base.buffer_destroy(&cs->ws->base, cs->ib_buffer);
|
cs->ws->base.buffer_destroy(&cs->ws->base, cs->ib_buffer);
|
||||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
cs->ib.ib_mc_address = radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va;
|
cs->ib.ib_mc_address = radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va;
|
||||||
@@ -730,7 +730,7 @@ radv_amdgpu_cs_execute_secondary(struct radeon_cmdbuf *_parent, struct radeon_cm
|
|||||||
|
|
||||||
mapped = ws->base.buffer_map(ib->bo);
|
mapped = ws->base.buffer_map(ib->bo);
|
||||||
if (!mapped) {
|
if (!mapped) {
|
||||||
parent->status = VK_ERROR_OUT_OF_HOST_MEMORY;
|
parent->status = VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user