mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
virgl: add encoder functions for new protocol
Let's encode the new protocol with new helper functions. Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
This commit is contained in:
parent
5510cc67e0
commit
9c4930946a
2 changed files with 28 additions and 0 deletions
|
|
@ -1103,3 +1103,25 @@ int virgl_encode_get_query_result_qbo(struct virgl_context *ctx,
|
||||||
virgl_encoder_write_dword(ctx->cbuf, index);
|
virgl_encoder_write_dword(ctx->cbuf, index);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void virgl_encode_transfer(struct virgl_screen *vs, struct virgl_cmd_buf *buf,
|
||||||
|
struct virgl_transfer *trans, uint32_t direction)
|
||||||
|
{
|
||||||
|
uint32_t command;
|
||||||
|
struct virgl_resource *res = virgl_resource(trans->base.resource);
|
||||||
|
command = VIRGL_CMD0(VIRGL_CCMD_TRANSFER3D, 0, VIRGL_TRANSFER3D_SIZE);
|
||||||
|
virgl_encoder_write_dword(buf, command);
|
||||||
|
virgl_encoder_transfer3d_common(vs, buf, trans);
|
||||||
|
virgl_encoder_write_dword(buf, trans->offset);
|
||||||
|
virgl_encoder_write_dword(buf, direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
void virgl_encode_end_transfers(struct virgl_cmd_buf *buf)
|
||||||
|
{
|
||||||
|
uint32_t command, diff;
|
||||||
|
diff = VIRGL_MAX_TBUF_DWORDS - buf->cdw;
|
||||||
|
if (diff) {
|
||||||
|
command = VIRGL_CMD0(VIRGL_CCMD_END_TRANSFERS, 0, diff - 1);
|
||||||
|
virgl_encoder_write_dword(buf, command);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,8 @@ struct tgsi_token;
|
||||||
|
|
||||||
struct virgl_context;
|
struct virgl_context;
|
||||||
struct virgl_resource;
|
struct virgl_resource;
|
||||||
|
struct virgl_screen;
|
||||||
|
struct virgl_transfer;
|
||||||
struct virgl_sampler_view;
|
struct virgl_sampler_view;
|
||||||
|
|
||||||
struct virgl_surface {
|
struct virgl_surface {
|
||||||
|
|
@ -287,4 +289,8 @@ int virgl_encode_get_query_result_qbo(struct virgl_context *ctx,
|
||||||
uint32_t offset,
|
uint32_t offset,
|
||||||
uint32_t index);
|
uint32_t index);
|
||||||
|
|
||||||
|
void virgl_encode_transfer(struct virgl_screen *vs, struct virgl_cmd_buf *buf,
|
||||||
|
struct virgl_transfer *trans, uint32_t direction);
|
||||||
|
|
||||||
|
void virgl_encode_end_transfers(struct virgl_cmd_buf *buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue