winsys/amdgpu: report a CS rejection as a reset only if there's no GPU reset
authorMarek Olšák <marek.olsak@amd.com>
Thu, 9 May 2019 00:13:46 +0000 (20:13 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 16 May 2019 17:15:36 +0000 (13:15 -0400)
src/gallium/winsys/amdgpu/drm/amdgpu_cs.c

index 555150a7018a2e2166c49375766d3503dac46ce9..955edb3a670b06342d0e68e80bbf2fe19dfd5105 100644 (file)
@@ -352,12 +352,6 @@ amdgpu_ctx_query_reset_status(struct radeon_winsys_ctx *rwctx)
    uint32_t result, hangs;
    int r;
 
-   /* Return a failure due to a rejected command submission. */
-   if (ctx->ws->num_total_rejected_cs > ctx->initial_num_total_rejected_cs) {
-      return ctx->num_rejected_cs ? PIPE_GUILTY_CONTEXT_RESET :
-                                    PIPE_INNOCENT_CONTEXT_RESET;
-   }
-
    /* Return a failure due to a GPU hang. */
    r = amdgpu_cs_query_reset_state(ctx->ctx, &result, &hangs);
    if (r) {
@@ -374,6 +368,11 @@ amdgpu_ctx_query_reset_status(struct radeon_winsys_ctx *rwctx)
       return PIPE_UNKNOWN_CONTEXT_RESET;
    case AMDGPU_CTX_NO_RESET:
    default:
+      /* Return a failure due to a rejected command submission. */
+      if (ctx->ws->num_total_rejected_cs > ctx->initial_num_total_rejected_cs) {
+         return ctx->num_rejected_cs ? PIPE_GUILTY_CONTEXT_RESET :
+                                       PIPE_INNOCENT_CONTEXT_RESET;
+      }
       return PIPE_NO_RESET;
    }
 }