diff options
author | Gert Wollny <[email protected]> | 2018-09-12 11:59:35 +0200 |
---|---|---|
committer | Gert Wollny <[email protected]> | 2018-11-13 14:42:22 +0100 |
commit | 8d4bb6e5cd674da31d665ea54f5a500e8c7c1a6f (patch) | |
tree | 813252a5a608d06ee77cc6c7a5287e794e0a9d5c /src/gallium/drivers/virgl/virgl_context.c | |
parent | caa964b422152788a95a1b248c884df8918a2bbd (diff) |
virgl: Add command and flags to initiate debugging on the host (v2)
On the host VREND_DEBUG=guestallow must be set to let the guest override
the debug flags.
v2: Send flag string instead of flags, this avoids the need to keep
the flags in sync.
v3: Only request host logging if the host actually understands the command
Signed-off-by: Gert Wollny <[email protected]>
Reviewed-by: Erik Faye-Lund <[email protected]>
Diffstat (limited to 'src/gallium/drivers/virgl/virgl_context.c')
-rw-r--r-- | src/gallium/drivers/virgl/virgl_context.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_context.c b/src/gallium/drivers/virgl/virgl_context.c index 4511bf3b2fb..96932c473d8 100644 --- a/src/gallium/drivers/virgl/virgl_context.c +++ b/src/gallium/drivers/virgl/virgl_context.c @@ -1164,6 +1164,7 @@ struct pipe_context *virgl_context_create(struct pipe_screen *pscreen, struct virgl_context *vctx; struct virgl_screen *rs = virgl_screen(pscreen); vctx = CALLOC_STRUCT(virgl_context); + const char *host_debug_flagstring; vctx->cbuf = rs->vws->cmd_buf_create(rs->vws); if (!vctx->cbuf) { @@ -1268,6 +1269,13 @@ struct pipe_context *virgl_context_create(struct pipe_screen *pscreen, virgl_encoder_create_sub_ctx(vctx, vctx->hw_sub_ctx_id); virgl_encoder_set_sub_ctx(vctx, vctx->hw_sub_ctx_id); + + if (rs->caps.caps.v2.capability_bits & VIRGL_CAP_GUEST_MAY_INIT_LOG) { + host_debug_flagstring = getenv("VIRGL_HOST_DEBUG"); + if (host_debug_flagstring) + virgl_encode_host_debug_flagstring(vctx, host_debug_flagstring); + } + return &vctx->base; fail: return NULL; |