mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-31 13:30:42 +01:00
radv: correctly return oom from the device when failing to create a cs
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25927>
(cherry picked from commit c4283e32e3)
This commit is contained in:
parent
e8e6ad5692
commit
2ee4ef998a
5 changed files with 10 additions and 8 deletions
|
|
@ -644,7 +644,7 @@
|
|||
"description": "radv: correctly return oom from the device when failing to create a cs",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ radv_create_cmd_buffer(struct vk_command_pool *pool, struct vk_command_buffer **
|
|||
cmd_buffer->cs = device->ws->cs_create(device->ws, ring, cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_SECONDARY);
|
||||
if (!cmd_buffer->cs) {
|
||||
radv_destroy_cmd_buffer(&cmd_buffer->vk);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
return vk_error(device, VK_ERROR_OUT_OF_DEVICE_MEMORY);
|
||||
}
|
||||
|
||||
vk_object_base_init(&device->vk, &cmd_buffer->meta_push_descriptors.base, VK_OBJECT_TYPE_DESCRIPTOR_SET);
|
||||
|
|
@ -698,7 +698,7 @@ radv_gang_init(struct radv_cmd_buffer *cmd_buffer)
|
|||
device->ws->cs_create(device->ws, AMD_IP_COMPUTE, cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_SECONDARY);
|
||||
|
||||
if (!ace_cs) {
|
||||
vk_command_buffer_set_error(&cmd_buffer->vk, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
vk_command_buffer_set_error(&cmd_buffer->vk, VK_ERROR_OUT_OF_DEVICE_MEMORY);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ radv_create_shadow_regs_preamble(const struct radv_device *device, struct radv_q
|
|||
|
||||
struct radeon_cmdbuf *cs = ws->cs_create(ws, AMD_IP_GFX, false);
|
||||
if (!cs)
|
||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||
|
||||
radeon_check_space(ws, cs, 256);
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ radv_init_shadowed_regs_buffer_state(const struct radv_device *device, struct ra
|
|||
|
||||
cs = ws->cs_create(ws, AMD_IP_GFX, false);
|
||||
if (!cs)
|
||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||
|
||||
radeon_check_space(ws, cs, 768);
|
||||
|
||||
|
|
|
|||
|
|
@ -996,7 +996,7 @@ radv_update_preamble_cs(struct radv_queue_state *queue, struct radv_device *devi
|
|||
struct radeon_cmdbuf *cs = NULL;
|
||||
cs = ws->cs_create(ws, radv_queue_family_to_ring(device->physical_device, queue->qf), false);
|
||||
if (!cs) {
|
||||
result = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
result = VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
|
@ -1263,8 +1263,10 @@ radv_create_gang_wait_preambles_postambles(struct radv_queue *queue)
|
|||
struct radeon_cmdbuf *ace_pre_cs = ws->cs_create(ws, AMD_IP_COMPUTE, false);
|
||||
struct radeon_cmdbuf *ace_post_cs = ws->cs_create(ws, AMD_IP_COMPUTE, false);
|
||||
|
||||
if (!leader_pre_cs || !leader_post_cs || !ace_pre_cs || !ace_post_cs)
|
||||
if (!leader_pre_cs || !leader_post_cs || !ace_pre_cs || !ace_post_cs) {
|
||||
r = VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
radeon_check_space(ws, leader_pre_cs, 256);
|
||||
radeon_check_space(ws, leader_post_cs, 256);
|
||||
|
|
|
|||
|
|
@ -1404,7 +1404,7 @@ radv_init_shader_upload_queue(struct radv_device *device)
|
|||
struct radv_shader_dma_submission *submission = calloc(1, sizeof(struct radv_shader_dma_submission));
|
||||
submission->cs = ws->cs_create(ws, AMD_IP_SDMA, false);
|
||||
if (!submission->cs)
|
||||
return VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
|
||||
list_addtail(&submission->list, &device->shader_dma_submissions);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue