Dave Airlie | a3a2c64 | 2014-03-31 14:07:58 +1000 | [diff] [blame] | 1 | #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 | |
| 8 | struct virgl_host_query_state { |
| 9 | uint32_t query_state; |
| 10 | uint32_t result_size; |
| 11 | uint64_t result; |
| 12 | }; |
| 13 | |
| 14 | enum 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 */ |
| 31 | enum 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 |