Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/gallium/auxiliary/rbug/rbug_context.h
4561 views
1
/*
2
* Copyright 2009 VMware, Inc.
3
* All Rights Reserved.
4
*
5
* Permission is hereby granted, free of charge, to any person obtaining a
6
* copy of this software and associated documentation files (the "Software"),
7
* to deal in the Software without restriction, including without limitation
8
* on the rights to use, copy, modify, merge, publish, distribute, sub
9
* license, and/or sell copies of the Software, and to permit persons to whom
10
* the Software is furnished to do so, subject to the following conditions:
11
*
12
* The above copyright notice and this permission notice (including the next
13
* paragraph) shall be included in all copies or substantial portions of the
14
* Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
19
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
20
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22
* USE OR OTHER DEALINGS IN THE SOFTWARE.
23
*/
24
25
/*
26
* This file holds structs decelerations and function prototypes for one of
27
* the rbug extensions. Implementation of the functions is in the same folder
28
* in the c file matching this file's name.
29
*
30
* The structs what is returned from the demarshal functions. The functions
31
* starting rbug_send_* encodes a call to the write format and sends that to
32
* the supplied connection, while functions starting with rbug_demarshal_*
33
* demarshal data from the wire protocol.
34
*
35
* Structs and functions ending with _reply are replies to requests.
36
*/
37
38
#ifndef _RBUG_PROTO_CONTEXT_H_
39
#define _RBUG_PROTO_CONTEXT_H_
40
41
#include "rbug_proto.h"
42
#include "rbug_core.h"
43
44
typedef enum
45
{
46
RBUG_BLOCK_BEFORE = 1,
47
RBUG_BLOCK_AFTER = 2,
48
RBUG_BLOCK_RULE = 4,
49
RBUG_BLOCK_MASK = 7
50
} rbug_block_t;
51
52
struct rbug_proto_context_list
53
{
54
struct rbug_header header;
55
};
56
57
struct rbug_proto_context_info
58
{
59
struct rbug_header header;
60
rbug_context_t context;
61
};
62
63
struct rbug_proto_context_draw_block
64
{
65
struct rbug_header header;
66
rbug_context_t context;
67
rbug_block_t block;
68
};
69
70
struct rbug_proto_context_draw_step
71
{
72
struct rbug_header header;
73
rbug_context_t context;
74
rbug_block_t step;
75
};
76
77
struct rbug_proto_context_draw_unblock
78
{
79
struct rbug_header header;
80
rbug_context_t context;
81
rbug_block_t unblock;
82
};
83
84
struct rbug_proto_context_draw_rule
85
{
86
struct rbug_header header;
87
rbug_context_t context;
88
rbug_shader_t vertex;
89
rbug_shader_t fragment;
90
rbug_texture_t texture;
91
rbug_texture_t surface;
92
rbug_block_t block;
93
};
94
95
struct rbug_proto_context_flush
96
{
97
struct rbug_header header;
98
rbug_context_t context;
99
};
100
101
struct rbug_proto_context_list_reply
102
{
103
struct rbug_header header;
104
uint32_t serial;
105
rbug_context_t *contexts;
106
uint32_t contexts_len;
107
};
108
109
struct rbug_proto_context_info_reply
110
{
111
struct rbug_header header;
112
uint32_t serial;
113
rbug_shader_t vertex;
114
rbug_shader_t fragment;
115
rbug_texture_t *texs;
116
uint32_t texs_len;
117
rbug_texture_t *cbufs;
118
uint32_t cbufs_len;
119
rbug_texture_t zsbuf;
120
rbug_block_t blocker;
121
rbug_block_t blocked;
122
};
123
124
struct rbug_proto_context_draw_blocked
125
{
126
struct rbug_header header;
127
rbug_context_t context;
128
rbug_block_t block;
129
};
130
131
int rbug_send_context_list(struct rbug_connection *__con,
132
uint32_t *__serial);
133
134
int rbug_send_context_info(struct rbug_connection *__con,
135
rbug_context_t context,
136
uint32_t *__serial);
137
138
int rbug_send_context_draw_block(struct rbug_connection *__con,
139
rbug_context_t context,
140
rbug_block_t block,
141
uint32_t *__serial);
142
143
int rbug_send_context_draw_step(struct rbug_connection *__con,
144
rbug_context_t context,
145
rbug_block_t step,
146
uint32_t *__serial);
147
148
int rbug_send_context_draw_unblock(struct rbug_connection *__con,
149
rbug_context_t context,
150
rbug_block_t unblock,
151
uint32_t *__serial);
152
153
int rbug_send_context_draw_rule(struct rbug_connection *__con,
154
rbug_context_t context,
155
rbug_shader_t vertex,
156
rbug_shader_t fragment,
157
rbug_texture_t texture,
158
rbug_texture_t surface,
159
rbug_block_t block,
160
uint32_t *__serial);
161
162
int rbug_send_context_flush(struct rbug_connection *__con,
163
rbug_context_t context,
164
uint32_t *__serial);
165
166
int rbug_send_context_list_reply(struct rbug_connection *__con,
167
uint32_t serial,
168
rbug_context_t *contexts,
169
uint32_t contexts_len,
170
uint32_t *__serial);
171
172
int rbug_send_context_info_reply(struct rbug_connection *__con,
173
uint32_t serial,
174
rbug_shader_t vertex,
175
rbug_shader_t fragment,
176
rbug_texture_t *texs,
177
uint32_t texs_len,
178
rbug_texture_t *cbufs,
179
uint32_t cbufs_len,
180
rbug_texture_t zsbuf,
181
rbug_block_t blocker,
182
rbug_block_t blocked,
183
uint32_t *__serial);
184
185
int rbug_send_context_draw_blocked(struct rbug_connection *__con,
186
rbug_context_t context,
187
rbug_block_t block,
188
uint32_t *__serial);
189
190
struct rbug_proto_context_list * rbug_demarshal_context_list(struct rbug_proto_header *header);
191
192
struct rbug_proto_context_info * rbug_demarshal_context_info(struct rbug_proto_header *header);
193
194
struct rbug_proto_context_draw_block * rbug_demarshal_context_draw_block(struct rbug_proto_header *header);
195
196
struct rbug_proto_context_draw_step * rbug_demarshal_context_draw_step(struct rbug_proto_header *header);
197
198
struct rbug_proto_context_draw_unblock * rbug_demarshal_context_draw_unblock(struct rbug_proto_header *header);
199
200
struct rbug_proto_context_draw_rule * rbug_demarshal_context_draw_rule(struct rbug_proto_header *header);
201
202
struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header);
203
204
struct rbug_proto_context_list_reply * rbug_demarshal_context_list_reply(struct rbug_proto_header *header);
205
206
struct rbug_proto_context_info_reply * rbug_demarshal_context_info_reply(struct rbug_proto_header *header);
207
208
struct rbug_proto_context_draw_blocked * rbug_demarshal_context_draw_blocked(struct rbug_proto_header *header);
209
210
#endif
211
212