radv: improve the error messages when a CS submission failed
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sun, 12 Jul 2020 19:03:33 +0000 (21:03 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 17 Jul 2020 15:25:13 +0000 (17:25 +0200)
While we are at it, do not duplicate the error messages for the
three different submission paths.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5876>

src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c

index daebdf9cc5fb3a8d46430e1e6a2056b6674040b6..4dfccbb06e88dcfc90c7b978b89754d99ddc2a33 100644 (file)
@@ -912,13 +912,6 @@ static int radv_amdgpu_winsys_cs_submit_chained(struct radeon_winsys_ctx *_ctx,
 
        /* Submit the CS. */
        r = radv_amdgpu_cs_submit(ctx, &request, sem_info);
-       if (r) {
-               if (r == -ENOMEM)
-                       fprintf(stderr, "amdgpu: Not enough memory for command submission.\n");
-               else
-                       fprintf(stderr, "amdgpu: The CS has been rejected, "
-                                       "see dmesg for more information.\n");
-       }
 
        free(request.handles);
 
@@ -997,13 +990,6 @@ static int radv_amdgpu_winsys_cs_submit_fallback(struct radeon_winsys_ctx *_ctx,
 
        /* Submit the CS. */
        r = radv_amdgpu_cs_submit(ctx, &request, sem_info);
-       if (r) {
-               if (r == -ENOMEM)
-                       fprintf(stderr, "amdgpu: Not enough memory for command submission.\n");
-               else
-                       fprintf(stderr, "amdgpu: The CS has been rejected, "
-                                       "see dmesg for more information.\n");
-       }
 
        free(request.handles);
        free(ibs);
@@ -1195,13 +1181,6 @@ static int radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx,
 
                sem_info->cs_emit_signal = (i == cs_count - cnt) ? emit_signal_sem : false;
                r = radv_amdgpu_cs_submit(ctx, &request, sem_info);
-               if (r) {
-                       if (r == -ENOMEM)
-                               fprintf(stderr, "amdgpu: Not enough memory for command submission.\n");
-                       else
-                               fprintf(stderr, "amdgpu: The CS has been rejected, "
-                                               "see dmesg for more information.\n");
-               }
 
                free(request.handles);
 
@@ -1590,6 +1569,16 @@ static int radv_amdgpu_cs_submit(struct radv_amdgpu_ctx *ctx,
        if (bo_list)
                amdgpu_bo_list_destroy_raw(ctx->ws->dev, bo_list);
 
+       if (r) {
+               if (r == -ENOMEM)
+                       fprintf(stderr, "amdgpu: Not enough memory for command submission.\n");
+               else if (r == -ECANCELED)
+                       fprintf(stderr, "amdgpu: The CS has been cancelled because the context is lost.\n");
+               else
+                       fprintf(stderr, "amdgpu: The CS has been rejected, "
+                                       "see dmesg for more information (%i).\n", r);
+       }
+
 error_out:
        free(chunks);
        free(chunk_data);