Mesa (amdgpu): radeonsi: add amdgpu support for querying the GPU reset state

Marek Olšák mareko at kemper.freedesktop.org
Thu May 14 13:05:26 UTC 2015


Module: Mesa
Branch: amdgpu
Commit: b942c9425aabe6ace5e425aa3c8d63e7381558fb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b942c9425aabe6ace5e425aa3c8d63e7381558fb

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Apr 30 17:02:38 2015 +0200

radeonsi: add amdgpu support for querying the GPU reset state

Reviewed-by: Christian König <christian.koenig at amd.com>

---

 src/gallium/drivers/radeonsi/si_pipe.c |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index c4dc528..a06e224 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -74,6 +74,14 @@ static void si_destroy_context(struct pipe_context *context)
 	FREE(sctx);
 }
 
+static enum pipe_reset_status
+si_amdgpu_get_reset_status(struct pipe_context *ctx)
+{
+	struct si_context *sctx = (struct si_context *)ctx;
+
+	return sctx->b.ws->ctx_query_reset_status(sctx->b.ctx);
+}
+
 static struct pipe_context *si_create_context(struct pipe_screen *screen, void *priv)
 {
 	struct si_context *sctx = CALLOC_STRUCT(si_context);
@@ -96,6 +104,9 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, void *
 	if (!r600_common_context_init(&sctx->b, &sscreen->b))
 		goto fail;
 
+	if (sscreen->b.info.drm_major == 3)
+		sctx->b.b.get_device_reset_status = si_amdgpu_get_reset_status;
+
 	si_init_blit_functions(sctx);
 	si_init_compute_functions(sctx);
 
@@ -260,7 +271,9 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 		return !SI_BIG_ENDIAN && sscreen->b.info.has_userptr;
 
 	case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
-		return sscreen->b.info.drm_major == 2 && sscreen->b.info.drm_minor >= 43;
+		return (sscreen->b.info.drm_major == 2 &&
+			sscreen->b.info.drm_minor >= 43) ||
+		       sscreen->b.info.drm_major == 3;
 
 	case PIPE_CAP_TEXTURE_MULTISAMPLE:
 		/* 2D tiling on CIK is supported since DRM 2.35.0 */




More information about the mesa-commit mailing list