blob: d863b72598a651027e0e5718355c2eff62b608ba [file] [log] [blame]
Dave Airliea3a2c642014-03-31 14:07:58 +10001#ifndef GRAW_PROTOCOL_H
2#define GRAW_PROTOCOL_H
3
4#define VIRGL_QUERY_STATE_NEW 0
5#define VIRGL_QUERY_STATE_DONE 1
6#define VIRGL_QUERY_STATE_WAIT_HOST 2
7
8struct virgl_host_query_state {
9 uint32_t query_state;
10 uint32_t result_size;
11 uint64_t result;
12};
13
14enum virgl_object_type {
15 VIRGL_OBJECT_NULL,
16 VIRGL_OBJECT_BLEND,
17 VIRGL_OBJECT_RASTERIZER,
18 VIRGL_OBJECT_DSA,
19 VIRGL_OBJECT_VS,
20 VIRGL_OBJECT_FS,
21 VIRGL_OBJECT_VERTEX_ELEMENTS,
22 VIRGL_OBJECT_SAMPLER_VIEW,
23 VIRGL_OBJECT_SAMPLER_STATE,
24 VIRGL_OBJECT_SURFACE,
25 VIRGL_OBJECT_QUERY,
26 VIRGL_OBJECT_STREAMOUT_TARGET,
27 VIRGL_MAX_OBJECTS,
28};
29
30/* context cmds to be encoded in the command stream */
31enum virgl_context_cmd {
32 VIRGL_CCMD_NOP = 0,
33 VIRGL_CCMD_CREATE_OBJECT = 1,
34 VIRGL_CCMD_BIND_OBJECT,
35 VIRGL_CCMD_DESTROY_OBJECT,
36 VIRGL_CCMD_SET_VIEWPORT_STATE,
37 VIRGL_CCMD_SET_FRAMEBUFFER_STATE,
38 VIRGL_CCMD_SET_VERTEX_BUFFERS,
39 VIRGL_CCMD_CLEAR,
40 VIRGL_CCMD_DRAW_VBO,
41 VIRGL_CCMD_RESOURCE_INLINE_WRITE,
42 VIRGL_CCMD_SET_SAMPLER_VIEWS,
43 VIRGL_CCMD_SET_INDEX_BUFFER,
44 VIRGL_CCMD_SET_CONSTANT_BUFFER,
45 VIRGL_CCMD_SET_STENCIL_REF,
46 VIRGL_CCMD_SET_BLEND_COLOR,
47 VIRGL_CCMD_SET_SCISSOR_STATE,
48 VIRGL_CCMD_BLIT,
49 VIRGL_CCMD_RESOURCE_COPY_REGION,
50 VIRGL_CCMD_BIND_SAMPLER_STATES,
51 VIRGL_CCMD_BEGIN_QUERY,
52 VIRGL_CCMD_END_QUERY,
53 VIRGL_CCMD_GET_QUERY_RESULT,
54 VIRGL_CCMD_SET_POLYGON_STIPPLE,
55 VIRGL_CCMD_SET_CLIP_STATE,
56 VIRGL_CCMD_SET_SAMPLE_MASK,
57 VIRGL_CCMD_SET_STREAMOUT_TARGETS,
58 VIRGL_CCMD_SET_QUERY_STATE,
59 VIRGL_CCMD_SET_RENDER_CONDITION,
60};
61
62/*
63 8-bit cmd headers
64 8-bit object type
65 16-bit length
66*/
67
68#define VIRGL_CMD0(cmd, obj, len) ((cmd) | ((obj) << 8) | ((len) << 16))
69
70#endif