nouveau: add support for sending debug messages via KHR_debug
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
@@ -14,6 +14,7 @@ struct nouveau_context {
|
||||
|
||||
struct nouveau_client *client;
|
||||
struct nouveau_pushbuf *pushbuf;
|
||||
struct pipe_debug_callback debug;
|
||||
|
||||
bool vbo_dirty;
|
||||
|
||||
@@ -63,6 +64,9 @@ nouveau_context(struct pipe_context *pipe)
|
||||
void
|
||||
nouveau_context_init_vdec(struct nouveau_context *);
|
||||
|
||||
void
|
||||
nouveau_context_init(struct nouveau_context *);
|
||||
|
||||
void
|
||||
nouveau_scratch_runout_release(struct nouveau_context *);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include "nouveau_winsys.h"
|
||||
#include "nouveau_screen.h"
|
||||
#include "nouveau_context.h"
|
||||
#include "nouveau_fence.h"
|
||||
#include "nouveau_mm.h"
|
||||
#include "nouveau_buffer.h"
|
||||
@@ -238,3 +239,21 @@ nouveau_screen_fini(struct nouveau_screen *screen)
|
||||
|
||||
nouveau_device_del(&screen->device);
|
||||
}
|
||||
|
||||
static void
|
||||
nouveau_set_debug_callback(struct pipe_context *pipe,
|
||||
const struct pipe_debug_callback *cb)
|
||||
{
|
||||
struct nouveau_context *context = nouveau_context(pipe);
|
||||
|
||||
if (cb)
|
||||
context->debug = *cb;
|
||||
else
|
||||
memset(&context->debug, 0, sizeof(context->debug));
|
||||
}
|
||||
|
||||
void
|
||||
nouveau_context_init(struct nouveau_context *context)
|
||||
{
|
||||
context->pipe.set_debug_callback = nouveau_set_debug_callback;
|
||||
}
|
||||
|
||||
@@ -242,6 +242,7 @@ nv30_context_create(struct pipe_screen *pscreen, void *priv, unsigned ctxflags)
|
||||
if (debug_get_bool_option("NV30_SWTNL", false))
|
||||
nv30->draw_flags |= NV30_NEW_SWTNL;
|
||||
|
||||
nouveau_context_init(&nv30->base);
|
||||
nv30->sample_mask = 0xffff;
|
||||
nv30_vbo_init(pipe);
|
||||
nv30_query_init(pipe);
|
||||
|
||||
@@ -306,6 +306,7 @@ nv50_create(struct pipe_screen *pscreen, void *priv, unsigned ctxflags)
|
||||
}
|
||||
nv50->base.pushbuf->kick_notify = nv50_default_kick_notify;
|
||||
|
||||
nouveau_context_init(&nv50->base);
|
||||
nv50_init_query_functions(nv50);
|
||||
nv50_init_surface_functions(nv50);
|
||||
nv50_init_state_functions(nv50);
|
||||
|
||||
@@ -309,6 +309,7 @@ nvc0_create(struct pipe_screen *pscreen, void *priv, unsigned ctxflags)
|
||||
pipe->memory_barrier = nvc0_memory_barrier;
|
||||
pipe->get_sample_position = nvc0_context_get_sample_position;
|
||||
|
||||
nouveau_context_init(&nvc0->base);
|
||||
nvc0_init_query_functions(nvc0);
|
||||
nvc0_init_surface_functions(nvc0);
|
||||
nvc0_init_state_functions(nvc0);
|
||||
|
||||
Reference in New Issue
Block a user