[virglrenderer-devel] [PATCH 3/5] vrend: Add optional KHR_debug printing code
Marc-André Lureau
marcandre.lureau at redhat.com
Mon Nov 27 21:28:57 UTC 2017
----- Original Message -----
> Currently only prints errors, not enabled by default.
>
> Signed-off-by: Jakob Bornecrantz <jakob.bornecrantz at collabora.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau at redhat.com>
> ---
> src/vrend_renderer.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
> index 17f4b82..088b815 100644
> --- a/src/vrend_renderer.c
> +++ b/src/vrend_renderer.c
> @@ -61,6 +61,9 @@
> /* debugging aid to dump shaders */
> int vrend_dump_shaders;
>
> +/* debugging via KHR_debug extension */
> +int vrend_use_debug_cb = 0;
> +
> struct vrend_if_cbs *vrend_clicbs;
>
> struct vrend_fence {
> @@ -3813,6 +3816,17 @@ static void vrend_renderer_use_threaded_sync(void)
> }
> #endif
>
> +static void vrend_debug_cb(GLenum source, GLenum type, GLuint id,
> + GLenum severity, GLsizei length,
> + const GLchar* message, const void* userParam)
> +{
> + if (type != GL_DEBUG_TYPE_ERROR) {
> + return;
> + }
> +
> + fprintf(stderr, "ERROR: %s\n", message);
> +}
> +
> int vrend_renderer_init(struct vrend_if_cbs *cbs, uint32_t flags)
> {
> int gl_ver;
> @@ -3833,6 +3847,13 @@ int vrend_renderer_init(struct vrend_if_cbs *cbs,
> uint32_t flags)
> vrend_clicbs->make_current(0, gl_context);
> gl_ver = epoxy_gl_version();
>
> + /* enable error output as early as possible */
> + if (vrend_use_debug_cb && epoxy_has_gl_extension("GL_KHR_debug")) {
> + glDebugMessageCallback(vrend_debug_cb, NULL);
> + glEnable(GL_DEBUG_OUTPUT);
> + glDisable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
> + }
> +
> vrend_state.gl_major_ver = gl_ver / 10;
> vrend_state.gl_minor_ver = gl_ver % 10;
> if (gl_ver > 30 && !epoxy_has_gl_extension("GL_ARB_compatibility")) {
> --
> 2.11.0
>
> _______________________________________________
> virglrenderer-devel mailing list
> virglrenderer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel
>
More information about the virglrenderer-devel
mailing list