From: Jason Ekstrand Date: Mon, 31 Oct 2016 23:33:43 +0000 (-0700) Subject: anv/device: Return DEVICE_LOST if execbuf2 fails X-Git-Tag: android-x86-6.0-r2~6^2~58 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2f8b48d274bd51613e95a5ca09fd767e431d85a2;p=android-x86%2Fexternal-mesa.git anv/device: Return DEVICE_LOST if execbuf2 fails This makes more sense than OUT_OF_HOST_MEMORY. Technically, you can recover from a failed execbuf2 but the batch you just submitted didn't fully execute so things are in an ill-defined state. The app doesn't want to continue from that point anyway. Signed-off-by: Jason Ekstrand Cc: "13.0" Reviewed-by: Kenneth Graunke (cherry picked from commit c41ec1679f02d6705ceda49d9ad966d0d0833824) --- diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index c995630f152..37615ef1225 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -812,7 +812,7 @@ anv_device_submit_simple_batch(struct anv_device *device, ret = anv_gem_execbuffer(device, &execbuf); if (ret != 0) { /* We don't know the real error. */ - result = vk_errorf(VK_ERROR_OUT_OF_DEVICE_MEMORY, "execbuf2 failed: %m"); + result = vk_errorf(VK_ERROR_DEVICE_LOST, "execbuf2 failed: %m"); goto fail; } @@ -820,7 +820,7 @@ anv_device_submit_simple_batch(struct anv_device *device, ret = anv_gem_wait(device, bo.gem_handle, &timeout); if (ret != 0) { /* We don't know the real error. */ - result = vk_errorf(VK_ERROR_OUT_OF_DEVICE_MEMORY, "execbuf2 failed: %m"); + result = vk_errorf(VK_ERROR_DEVICE_LOST, "execbuf2 failed: %m"); goto fail; } @@ -1090,8 +1090,7 @@ VkResult anv_QueueSubmit( ret = anv_gem_execbuffer(device, &cmd_buffer->execbuf2.execbuf); if (ret != 0) { /* We don't know the real error. */ - return vk_errorf(VK_ERROR_OUT_OF_DEVICE_MEMORY, - "execbuf2 failed: %m"); + return vk_errorf(VK_ERROR_DEVICE_LOST, "execbuf2 failed: %m"); } for (uint32_t k = 0; k < cmd_buffer->execbuf2.bo_count; k++) @@ -1103,8 +1102,7 @@ VkResult anv_QueueSubmit( ret = anv_gem_execbuffer(device, &fence->execbuf); if (ret != 0) { /* We don't know the real error. */ - return vk_errorf(VK_ERROR_OUT_OF_DEVICE_MEMORY, - "execbuf2 failed: %m"); + return vk_errorf(VK_ERROR_DEVICE_LOST, "execbuf2 failed: %m"); } }