diff options
Diffstat (limited to 'src/gallium/drivers/virgl/virgl_encode.c')
-rw-r--r-- | src/gallium/drivers/virgl/virgl_encode.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c index 0cb5184d193..670c5fe6c3d 100644 --- a/src/gallium/drivers/virgl/virgl_encode.c +++ b/src/gallium/drivers/virgl/virgl_encode.c @@ -350,6 +350,12 @@ int virgl_encoder_set_framebuffer_state(struct virgl_context *ctx, virgl_encoder_write_dword(ctx->cbuf, surf ? surf->handle : 0); } + struct virgl_screen *rs = virgl_screen(ctx->base.screen); + if (rs->caps.caps.v2.capability_bits & VIRGL_CAP_FB_NO_ATTACH) { + virgl_encoder_write_cmd_dword(ctx, VIRGL_CMD0(VIRGL_CCMD_SET_FRAMEBUFFER_STATE_NO_ATTACH, 0, VIRGL_SET_FRAMEBUFFER_STATE_NO_ATTACH_SIZE)); + virgl_encoder_write_dword(ctx->cbuf, state->width | (state->height << 16)); + virgl_encoder_write_dword(ctx->cbuf, state->layers | (state->samples << 16)); + } return 0; } |