[Piglit] [PATCH 02/14] util: Add piglit_glx_error_string to convert a GLX error to a printable string

Ian Romanick idr at freedesktop.org
Thu Dec 8 15:41:49 PST 2011


From: Ian Romanick <ian.d.romanick at intel.com>

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 tests/util/piglit-glx-util.c |   34 ++++++++++++++++++++++++++++++++++
 tests/util/piglit-glx-util.h |    3 +++
 2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/tests/util/piglit-glx-util.c b/tests/util/piglit-glx-util.c
index f8b0d2e..0900788 100644
--- a/tests/util/piglit-glx-util.c
+++ b/tests/util/piglit-glx-util.c
@@ -351,6 +351,40 @@ piglit_glx_get_error(Display *dpy, XErrorEvent *err)
 	return err->error_code - errbase;
 }
 
+/**
+ * Convert a GLX error code to a printable string
+ *
+ * \sa piglit_glx_get_error
+ */
+const char *
+piglit_glx_error_string(int err)
+{
+	static const char *const error_table[] = {
+		"GLXBadContext",
+		"GLXBadContextState",
+		"GLXBadDrawable",
+		"GLXBadPixmap",
+		"GLXBadContextTag",
+		"GLXBadCurrentWindow",
+		"GLXBadRenderRequest",
+		"GLXBadLargeRequest",
+		"GLXUnsupportedPrivateRequest",
+		"GLXBadFBConfig",
+		"GLXBadPbuffer",
+		"GLXBadCurrentDrawable",
+		"GLXBadWindow",
+		"GLXBadProfileARB"
+	};
+
+	if (err < 0) {
+		return "non-GLX error";
+	} else if (err > ARRAY_SIZE(error_table)) {
+		return "unknown GLX error";
+	} else {
+		return error_table[err];
+	}
+}
+
 /* Creates a GLX context for rendering into an FBO */
 void
 piglit_framework_fbo_init_glx()
diff --git a/tests/util/piglit-glx-util.h b/tests/util/piglit-glx-util.h
index dcd91cb..e05688c 100644
--- a/tests/util/piglit-glx-util.h
+++ b/tests/util/piglit-glx-util.h
@@ -52,3 +52,6 @@ GLXFBConfig
 piglit_glx_get_fbconfig_for_visinfo(Display *dpy, XVisualInfo *visinfo);
 int
 piglit_glx_get_error(Display *dpy, XErrorEvent *err);
+
+const char *
+piglit_glx_error_string(int err);
-- 
1.7.6.4



More information about the Piglit mailing list