1 | /* SPDX-License-Identifier: GPL-2.0 OR MIT */
|
---|
2 | /**********************************************************
|
---|
3 | * Copyright 2012-2019 VMware, Inc.
|
---|
4 | *
|
---|
5 | * Permission is hereby granted, free of charge, to any person
|
---|
6 | * obtaining a copy of this software and associated documentation
|
---|
7 | * files (the "Software"), to deal in the Software without
|
---|
8 | * restriction, including without limitation the rights to use, copy,
|
---|
9 | * modify, merge, publish, distribute, sublicense, and/or sell copies
|
---|
10 | * of the Software, and to permit persons to whom the Software is
|
---|
11 | * furnished to do so, subject to the following conditions:
|
---|
12 | *
|
---|
13 | * The above copyright notice and this permission notice shall be
|
---|
14 | * included in all copies or substantial portions of the Software.
|
---|
15 | *
|
---|
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
---|
17 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
---|
18 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
---|
19 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
---|
20 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
---|
21 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
---|
22 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
---|
23 | * SOFTWARE.
|
---|
24 | *
|
---|
25 | **********************************************************/
|
---|
26 |
|
---|
27 | /*
|
---|
28 | * svga3d_dx.h --
|
---|
29 | *
|
---|
30 | * SVGA 3d hardware definitions for DX10 support.
|
---|
31 | */
|
---|
32 |
|
---|
33 | #ifndef _SVGA3D_DX_H_
|
---|
34 | #define _SVGA3D_DX_H_
|
---|
35 |
|
---|
36 | #define INCLUDE_ALLOW_MODULE
|
---|
37 | #define INCLUDE_ALLOW_USERLEVEL
|
---|
38 | #define INCLUDE_ALLOW_VMCORE
|
---|
39 | #include "includeCheck.h"
|
---|
40 |
|
---|
41 | #include "svga3d_limits.h"
|
---|
42 |
|
---|
43 | #define SVGA3D_INPUT_MIN 0
|
---|
44 | #define SVGA3D_INPUT_PER_VERTEX_DATA 0
|
---|
45 | #define SVGA3D_INPUT_PER_INSTANCE_DATA 1
|
---|
46 | #define SVGA3D_INPUT_MAX 2
|
---|
47 | typedef uint32 SVGA3dInputClassification;
|
---|
48 |
|
---|
49 | #define SVGA3D_RESOURCE_TYPE_MIN 1
|
---|
50 | #define SVGA3D_RESOURCE_BUFFER 1
|
---|
51 | #define SVGA3D_RESOURCE_TEXTURE1D 2
|
---|
52 | #define SVGA3D_RESOURCE_TEXTURE2D 3
|
---|
53 | #define SVGA3D_RESOURCE_TEXTURE3D 4
|
---|
54 | #define SVGA3D_RESOURCE_TEXTURECUBE 5
|
---|
55 | #define SVGA3D_RESOURCE_TYPE_DX10_MAX 6
|
---|
56 | #define SVGA3D_RESOURCE_BUFFEREX 6
|
---|
57 | #define SVGA3D_RESOURCE_TYPE_MAX 7
|
---|
58 | typedef uint32 SVGA3dResourceType;
|
---|
59 |
|
---|
60 | #define SVGA3D_COLOR_WRITE_ENABLE_RED (1 << 0)
|
---|
61 | #define SVGA3D_COLOR_WRITE_ENABLE_GREEN (1 << 1)
|
---|
62 | #define SVGA3D_COLOR_WRITE_ENABLE_BLUE (1 << 2)
|
---|
63 | #define SVGA3D_COLOR_WRITE_ENABLE_ALPHA (1 << 3)
|
---|
64 | #define SVGA3D_COLOR_WRITE_ENABLE_ALL (SVGA3D_COLOR_WRITE_ENABLE_RED | \
|
---|
65 | SVGA3D_COLOR_WRITE_ENABLE_GREEN | \
|
---|
66 | SVGA3D_COLOR_WRITE_ENABLE_BLUE | \
|
---|
67 | SVGA3D_COLOR_WRITE_ENABLE_ALPHA)
|
---|
68 | typedef uint8 SVGA3dColorWriteEnable;
|
---|
69 |
|
---|
70 | #define SVGA3D_DEPTH_WRITE_MASK_ZERO 0
|
---|
71 | #define SVGA3D_DEPTH_WRITE_MASK_ALL 1
|
---|
72 | typedef uint8 SVGA3dDepthWriteMask;
|
---|
73 |
|
---|
74 | #define SVGA3D_FILTER_MIP_LINEAR (1 << 0)
|
---|
75 | #define SVGA3D_FILTER_MAG_LINEAR (1 << 2)
|
---|
76 | #define SVGA3D_FILTER_MIN_LINEAR (1 << 4)
|
---|
77 | #define SVGA3D_FILTER_ANISOTROPIC (1 << 6)
|
---|
78 | #define SVGA3D_FILTER_COMPARE (1 << 7)
|
---|
79 | typedef uint32 SVGA3dFilter;
|
---|
80 |
|
---|
81 | #define SVGA3D_CULL_INVALID 0
|
---|
82 | #define SVGA3D_CULL_MIN 1
|
---|
83 | #define SVGA3D_CULL_NONE 1
|
---|
84 | #define SVGA3D_CULL_FRONT 2
|
---|
85 | #define SVGA3D_CULL_BACK 3
|
---|
86 | #define SVGA3D_CULL_MAX 4
|
---|
87 | typedef uint8 SVGA3dCullMode;
|
---|
88 |
|
---|
89 | #define SVGA3D_COMPARISON_INVALID 0
|
---|
90 | #define SVGA3D_COMPARISON_MIN 1
|
---|
91 | #define SVGA3D_COMPARISON_NEVER 1
|
---|
92 | #define SVGA3D_COMPARISON_LESS 2
|
---|
93 | #define SVGA3D_COMPARISON_EQUAL 3
|
---|
94 | #define SVGA3D_COMPARISON_LESS_EQUAL 4
|
---|
95 | #define SVGA3D_COMPARISON_GREATER 5
|
---|
96 | #define SVGA3D_COMPARISON_NOT_EQUAL 6
|
---|
97 | #define SVGA3D_COMPARISON_GREATER_EQUAL 7
|
---|
98 | #define SVGA3D_COMPARISON_ALWAYS 8
|
---|
99 | #define SVGA3D_COMPARISON_MAX 9
|
---|
100 | typedef uint8 SVGA3dComparisonFunc;
|
---|
101 |
|
---|
102 | /*
|
---|
103 | * SVGA3D_MULTISAMPLE_RAST_DISABLE disables MSAA for all primitives.
|
---|
104 | * SVGA3D_MULTISAMPLE_RAST_DISABLE_LINE, which is supported in SM41,
|
---|
105 | * disables MSAA for lines only.
|
---|
106 | */
|
---|
107 | #define SVGA3D_MULTISAMPLE_RAST_DISABLE 0
|
---|
108 | #define SVGA3D_MULTISAMPLE_RAST_ENABLE 1
|
---|
109 | #define SVGA3D_MULTISAMPLE_RAST_DX_MAX 1
|
---|
110 | #define SVGA3D_MULTISAMPLE_RAST_DISABLE_LINE 2
|
---|
111 | #define SVGA3D_MULTISAMPLE_RAST_MAX 2
|
---|
112 | typedef uint8 SVGA3dMultisampleRastEnable;
|
---|
113 |
|
---|
114 | #define SVGA3D_DX_MAX_VERTEXBUFFERS 32
|
---|
115 | #define SVGA3D_DX_MAX_VERTEXINPUTREGISTERS 16
|
---|
116 | #define SVGA3D_DX_SM41_MAX_VERTEXINPUTREGISTERS 32
|
---|
117 | #define SVGA3D_DX_MAX_SOTARGETS 4
|
---|
118 | #define SVGA3D_DX_MAX_SRVIEWS 128
|
---|
119 | #define SVGA3D_DX_MAX_CONSTBUFFERS 16
|
---|
120 | #define SVGA3D_DX_MAX_SAMPLERS 16
|
---|
121 | #define SVGA3D_DX_MAX_CLASS_INSTANCES 253
|
---|
122 |
|
---|
123 | #define SVGA3D_DX_MAX_CONSTBUF_BINDING_SIZE (4096 * 4 * (uint32)sizeof(uint32))
|
---|
124 |
|
---|
125 | typedef uint32 SVGA3dShaderResourceViewId;
|
---|
126 | typedef uint32 SVGA3dRenderTargetViewId;
|
---|
127 | typedef uint32 SVGA3dDepthStencilViewId;
|
---|
128 | typedef uint32 SVGA3dUAViewId;
|
---|
129 |
|
---|
130 | typedef uint32 SVGA3dShaderId;
|
---|
131 | typedef uint32 SVGA3dElementLayoutId;
|
---|
132 | typedef uint32 SVGA3dSamplerId;
|
---|
133 | typedef uint32 SVGA3dBlendStateId;
|
---|
134 | typedef uint32 SVGA3dDepthStencilStateId;
|
---|
135 | typedef uint32 SVGA3dRasterizerStateId;
|
---|
136 | typedef uint32 SVGA3dQueryId;
|
---|
137 | typedef uint32 SVGA3dStreamOutputId;
|
---|
138 |
|
---|
139 | typedef union {
|
---|
140 | struct {
|
---|
141 | float r;
|
---|
142 | float g;
|
---|
143 | float b;
|
---|
144 | float a;
|
---|
145 | };
|
---|
146 |
|
---|
147 | float value[4];
|
---|
148 | } SVGA3dRGBAFloat;
|
---|
149 |
|
---|
150 | typedef union {
|
---|
151 | struct {
|
---|
152 | uint32 r;
|
---|
153 | uint32 g;
|
---|
154 | uint32 b;
|
---|
155 | uint32 a;
|
---|
156 | };
|
---|
157 |
|
---|
158 | uint32 value[4];
|
---|
159 | } SVGA3dRGBAUint32;
|
---|
160 |
|
---|
161 | typedef
|
---|
162 | #include "vmware_pack_begin.h"
|
---|
163 | struct {
|
---|
164 | uint32 cid;
|
---|
165 | SVGAMobId mobid;
|
---|
166 | }
|
---|
167 | #include "vmware_pack_end.h"
|
---|
168 | SVGAOTableDXContextEntry;
|
---|
169 |
|
---|
170 | typedef
|
---|
171 | #include "vmware_pack_begin.h"
|
---|
172 | struct SVGA3dCmdDXDefineContext {
|
---|
173 | uint32 cid;
|
---|
174 | }
|
---|
175 | #include "vmware_pack_end.h"
|
---|
176 | SVGA3dCmdDXDefineContext; /* SVGA_3D_CMD_DX_DEFINE_CONTEXT */
|
---|
177 |
|
---|
178 | typedef
|
---|
179 | #include "vmware_pack_begin.h"
|
---|
180 | struct SVGA3dCmdDXDestroyContext {
|
---|
181 | uint32 cid;
|
---|
182 | }
|
---|
183 | #include "vmware_pack_end.h"
|
---|
184 | SVGA3dCmdDXDestroyContext; /* SVGA_3D_CMD_DX_DESTROY_CONTEXT */
|
---|
185 |
|
---|
186 | /*
|
---|
187 | * Bind a DX context.
|
---|
188 | *
|
---|
189 | * validContents should be set to 0 for new contexts,
|
---|
190 | * and 1 if this is an old context which is getting paged
|
---|
191 | * back on to the device.
|
---|
192 | *
|
---|
193 | * For new contexts, it is recommended that the driver
|
---|
194 | * issue commands to initialize all interesting state
|
---|
195 | * prior to rendering.
|
---|
196 | */
|
---|
197 | typedef
|
---|
198 | #include "vmware_pack_begin.h"
|
---|
199 | struct SVGA3dCmdDXBindContext {
|
---|
200 | uint32 cid;
|
---|
201 | SVGAMobId mobid;
|
---|
202 | uint32 validContents;
|
---|
203 | }
|
---|
204 | #include "vmware_pack_end.h"
|
---|
205 | SVGA3dCmdDXBindContext; /* SVGA_3D_CMD_DX_BIND_CONTEXT */
|
---|
206 |
|
---|
207 | /*
|
---|
208 | * Readback a DX context.
|
---|
209 | * (Request that the device flush the contents back into guest memory.)
|
---|
210 | */
|
---|
211 | typedef
|
---|
212 | #include "vmware_pack_begin.h"
|
---|
213 | struct SVGA3dCmdDXReadbackContext {
|
---|
214 | uint32 cid;
|
---|
215 | }
|
---|
216 | #include "vmware_pack_end.h"
|
---|
217 | SVGA3dCmdDXReadbackContext; /* SVGA_3D_CMD_DX_READBACK_CONTEXT */
|
---|
218 |
|
---|
219 | /*
|
---|
220 | * Invalidate a guest-backed context.
|
---|
221 | */
|
---|
222 | typedef
|
---|
223 | #include "vmware_pack_begin.h"
|
---|
224 | struct SVGA3dCmdDXInvalidateContext {
|
---|
225 | uint32 cid;
|
---|
226 | }
|
---|
227 | #include "vmware_pack_end.h"
|
---|
228 | SVGA3dCmdDXInvalidateContext; /* SVGA_3D_CMD_DX_INVALIDATE_CONTEXT */
|
---|
229 |
|
---|
230 | typedef
|
---|
231 | #include "vmware_pack_begin.h"
|
---|
232 | struct SVGA3dCmdDXSetSingleConstantBuffer {
|
---|
233 | uint32 slot;
|
---|
234 | SVGA3dShaderType type;
|
---|
235 | SVGA3dSurfaceId sid;
|
---|
236 | uint32 offsetInBytes;
|
---|
237 | uint32 sizeInBytes;
|
---|
238 | }
|
---|
239 | #include "vmware_pack_end.h"
|
---|
240 | SVGA3dCmdDXSetSingleConstantBuffer;
|
---|
241 | /* SVGA_3D_CMD_DX_SET_SINGLE_CONSTANT_BUFFER */
|
---|
242 |
|
---|
243 | typedef
|
---|
244 | #include "vmware_pack_begin.h"
|
---|
245 | struct SVGA3dCmdDXSetShaderResources {
|
---|
246 | uint32 startView;
|
---|
247 | SVGA3dShaderType type;
|
---|
248 |
|
---|
249 | /*
|
---|
250 | * Followed by a variable number of SVGA3dShaderResourceViewId's.
|
---|
251 | */
|
---|
252 | }
|
---|
253 | #include "vmware_pack_end.h"
|
---|
254 | SVGA3dCmdDXSetShaderResources; /* SVGA_3D_CMD_DX_SET_SHADER_RESOURCES */
|
---|
255 |
|
---|
256 | typedef
|
---|
257 | #include "vmware_pack_begin.h"
|
---|
258 | struct SVGA3dCmdDXSetShader {
|
---|
259 | SVGA3dShaderId shaderId;
|
---|
260 | SVGA3dShaderType type;
|
---|
261 | }
|
---|
262 | #include "vmware_pack_end.h"
|
---|
263 | SVGA3dCmdDXSetShader; /* SVGA_3D_CMD_DX_SET_SHADER */
|
---|
264 |
|
---|
265 | typedef union {
|
---|
266 | struct {
|
---|
267 | uint32 cbOffset : 12;
|
---|
268 | uint32 cbId : 4;
|
---|
269 | uint32 baseSamp : 4;
|
---|
270 | uint32 baseTex : 7;
|
---|
271 | uint32 reserved : 5;
|
---|
272 | };
|
---|
273 | uint32 value;
|
---|
274 | } SVGA3dIfaceData;
|
---|
275 |
|
---|
276 | typedef
|
---|
277 | #include "vmware_pack_begin.h"
|
---|
278 | struct SVGA3dCmdDXSetShaderIface {
|
---|
279 | SVGA3dShaderType type;
|
---|
280 | uint32 numClassInstances;
|
---|
281 | uint32 index;
|
---|
282 | uint32 iface;
|
---|
283 | SVGA3dIfaceData data;
|
---|
284 | }
|
---|
285 | #include "vmware_pack_end.h"
|
---|
286 | SVGA3dCmdDXSetShaderIface; /* SVGA_3D_CMD_DX_SET_SHADER_IFACE */
|
---|
287 |
|
---|
288 | typedef
|
---|
289 | #include "vmware_pack_begin.h"
|
---|
290 | struct SVGA3dCmdDXBindShaderIface {
|
---|
291 | uint32 cid;
|
---|
292 | SVGAMobId mobid;
|
---|
293 | uint32 offsetInBytes;
|
---|
294 | }
|
---|
295 | #include "vmware_pack_end.h"
|
---|
296 | SVGA3dCmdDXBindShaderIface; /* SVGA_3D_CMD_DX_BIND_SHADER_IFACE */
|
---|
297 |
|
---|
298 | typedef
|
---|
299 | #include "vmware_pack_begin.h"
|
---|
300 | struct SVGA3dCmdDXSetSamplers {
|
---|
301 | uint32 startSampler;
|
---|
302 | SVGA3dShaderType type;
|
---|
303 |
|
---|
304 | /*
|
---|
305 | * Followed by a variable number of SVGA3dSamplerId's.
|
---|
306 | */
|
---|
307 | }
|
---|
308 | #include "vmware_pack_end.h"
|
---|
309 | SVGA3dCmdDXSetSamplers; /* SVGA_3D_CMD_DX_SET_SAMPLERS */
|
---|
310 |
|
---|
311 | typedef
|
---|
312 | #include "vmware_pack_begin.h"
|
---|
313 | struct SVGA3dCmdDXDraw {
|
---|
314 | uint32 vertexCount;
|
---|
315 | uint32 startVertexLocation;
|
---|
316 | }
|
---|
317 | #include "vmware_pack_end.h"
|
---|
318 | SVGA3dCmdDXDraw; /* SVGA_3D_CMD_DX_DRAW */
|
---|
319 |
|
---|
320 | typedef
|
---|
321 | #include "vmware_pack_begin.h"
|
---|
322 | struct SVGA3dCmdDXDrawIndexed {
|
---|
323 | uint32 indexCount;
|
---|
324 | uint32 startIndexLocation;
|
---|
325 | int32 baseVertexLocation;
|
---|
326 | }
|
---|
327 | #include "vmware_pack_end.h"
|
---|
328 | SVGA3dCmdDXDrawIndexed; /* SVGA_3D_CMD_DX_DRAW_INDEXED */
|
---|
329 |
|
---|
330 | typedef
|
---|
331 | #include "vmware_pack_begin.h"
|
---|
332 | struct SVGA3dCmdDXDrawInstanced {
|
---|
333 | uint32 vertexCountPerInstance;
|
---|
334 | uint32 instanceCount;
|
---|
335 | uint32 startVertexLocation;
|
---|
336 | uint32 startInstanceLocation;
|
---|
337 | }
|
---|
338 | #include "vmware_pack_end.h"
|
---|
339 | SVGA3dCmdDXDrawInstanced; /* SVGA_3D_CMD_DX_DRAW_INSTANCED */
|
---|
340 |
|
---|
341 | typedef
|
---|
342 | #include "vmware_pack_begin.h"
|
---|
343 | struct SVGA3dCmdDXDrawIndexedInstanced {
|
---|
344 | uint32 indexCountPerInstance;
|
---|
345 | uint32 instanceCount;
|
---|
346 | uint32 startIndexLocation;
|
---|
347 | int32 baseVertexLocation;
|
---|
348 | uint32 startInstanceLocation;
|
---|
349 | }
|
---|
350 | #include "vmware_pack_end.h"
|
---|
351 | SVGA3dCmdDXDrawIndexedInstanced; /* SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED */
|
---|
352 |
|
---|
353 | typedef
|
---|
354 | #include "vmware_pack_begin.h"
|
---|
355 | struct SVGA3dCmdDXDrawIndexedInstancedIndirect {
|
---|
356 | SVGA3dSurfaceId argsBufferSid;
|
---|
357 | uint32 byteOffsetForArgs;
|
---|
358 | }
|
---|
359 | #include "vmware_pack_end.h"
|
---|
360 | SVGA3dCmdDXDrawIndexedInstancedIndirect;
|
---|
361 | /* SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED_INDIRECT */
|
---|
362 |
|
---|
363 | typedef
|
---|
364 | #include "vmware_pack_begin.h"
|
---|
365 | struct SVGA3dCmdDXDrawInstancedIndirect {
|
---|
366 | SVGA3dSurfaceId argsBufferSid;
|
---|
367 | uint32 byteOffsetForArgs;
|
---|
368 | }
|
---|
369 | #include "vmware_pack_end.h"
|
---|
370 | SVGA3dCmdDXDrawInstancedIndirect;
|
---|
371 | /* SVGA_3D_CMD_DX_DRAW_INSTANCED_INDIRECT */
|
---|
372 |
|
---|
373 | typedef
|
---|
374 | #include "vmware_pack_begin.h"
|
---|
375 | struct SVGA3dCmdDXDrawAuto {
|
---|
376 | uint32 pad0;
|
---|
377 | }
|
---|
378 | #include "vmware_pack_end.h"
|
---|
379 | SVGA3dCmdDXDrawAuto; /* SVGA_3D_CMD_DX_DRAW_AUTO */
|
---|
380 |
|
---|
381 | typedef
|
---|
382 | #include "vmware_pack_begin.h"
|
---|
383 | struct SVGA3dCmdDXDispatch {
|
---|
384 | uint32 threadGroupCountX;
|
---|
385 | uint32 threadGroupCountY;
|
---|
386 | uint32 threadGroupCountZ;
|
---|
387 | }
|
---|
388 | #include "vmware_pack_end.h"
|
---|
389 | SVGA3dCmdDXDispatch;
|
---|
390 | /* SVGA_3D_CMD_DX_DISPATCH */
|
---|
391 |
|
---|
392 | typedef
|
---|
393 | #include "vmware_pack_begin.h"
|
---|
394 | struct SVGA3dCmdDXDispatchIndirect {
|
---|
395 | SVGA3dSurfaceId argsBufferSid;
|
---|
396 | uint32 byteOffsetForArgs;
|
---|
397 | }
|
---|
398 | #include "vmware_pack_end.h"
|
---|
399 | SVGA3dCmdDXDispatchIndirect;
|
---|
400 | /* SVGA_3D_CMD_DX_DISPATCH_INDIRECT */
|
---|
401 |
|
---|
402 | typedef
|
---|
403 | #include "vmware_pack_begin.h"
|
---|
404 | struct SVGA3dCmdDXSetInputLayout {
|
---|
405 | SVGA3dElementLayoutId elementLayoutId;
|
---|
406 | }
|
---|
407 | #include "vmware_pack_end.h"
|
---|
408 | SVGA3dCmdDXSetInputLayout; /* SVGA_3D_CMD_DX_SET_INPUT_LAYOUT */
|
---|
409 |
|
---|
410 | typedef
|
---|
411 | #include "vmware_pack_begin.h"
|
---|
412 | struct SVGA3dVertexBuffer {
|
---|
413 | SVGA3dSurfaceId sid;
|
---|
414 | uint32 stride;
|
---|
415 | uint32 offset;
|
---|
416 | }
|
---|
417 | #include "vmware_pack_end.h"
|
---|
418 | SVGA3dVertexBuffer;
|
---|
419 |
|
---|
420 | typedef
|
---|
421 | #include "vmware_pack_begin.h"
|
---|
422 | struct SVGA3dCmdDXSetVertexBuffers {
|
---|
423 | uint32 startBuffer;
|
---|
424 | /* Followed by a variable number of SVGA3dVertexBuffer's. */
|
---|
425 | }
|
---|
426 | #include "vmware_pack_end.h"
|
---|
427 | SVGA3dCmdDXSetVertexBuffers; /* SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS */
|
---|
428 |
|
---|
429 | typedef
|
---|
430 | #include "vmware_pack_begin.h"
|
---|
431 | struct SVGA3dCmdDXSetIndexBuffer {
|
---|
432 | SVGA3dSurfaceId sid;
|
---|
433 | SVGA3dSurfaceFormat format;
|
---|
434 | uint32 offset;
|
---|
435 | }
|
---|
436 | #include "vmware_pack_end.h"
|
---|
437 | SVGA3dCmdDXSetIndexBuffer; /* SVGA_3D_CMD_DX_SET_INDEX_BUFFER */
|
---|
438 |
|
---|
439 | typedef
|
---|
440 | #include "vmware_pack_begin.h"
|
---|
441 | struct SVGA3dCmdDXSetTopology {
|
---|
442 | SVGA3dPrimitiveType topology;
|
---|
443 | }
|
---|
444 | #include "vmware_pack_end.h"
|
---|
445 | SVGA3dCmdDXSetTopology; /* SVGA_3D_CMD_DX_SET_TOPOLOGY */
|
---|
446 |
|
---|
447 | typedef
|
---|
448 | #include "vmware_pack_begin.h"
|
---|
449 | struct SVGA3dCmdDXSetRenderTargets {
|
---|
450 | SVGA3dDepthStencilViewId depthStencilViewId;
|
---|
451 | /* Followed by a variable number of SVGA3dRenderTargetViewId's. */
|
---|
452 | }
|
---|
453 | #include "vmware_pack_end.h"
|
---|
454 | SVGA3dCmdDXSetRenderTargets; /* SVGA_3D_CMD_DX_SET_RENDERTARGETS */
|
---|
455 |
|
---|
456 | typedef
|
---|
457 | #include "vmware_pack_begin.h"
|
---|
458 | struct SVGA3dCmdDXSetBlendState {
|
---|
459 | SVGA3dBlendStateId blendId;
|
---|
460 | float blendFactor[4];
|
---|
461 | uint32 sampleMask;
|
---|
462 | }
|
---|
463 | #include "vmware_pack_end.h"
|
---|
464 | SVGA3dCmdDXSetBlendState; /* SVGA_3D_CMD_DX_SET_BLEND_STATE */
|
---|
465 |
|
---|
466 | typedef
|
---|
467 | #include "vmware_pack_begin.h"
|
---|
468 | struct SVGA3dCmdDXSetDepthStencilState {
|
---|
469 | SVGA3dDepthStencilStateId depthStencilId;
|
---|
470 | uint32 stencilRef;
|
---|
471 | }
|
---|
472 | #include "vmware_pack_end.h"
|
---|
473 | SVGA3dCmdDXSetDepthStencilState; /* SVGA_3D_CMD_DX_SET_DEPTHSTENCIL_STATE */
|
---|
474 |
|
---|
475 | typedef
|
---|
476 | #include "vmware_pack_begin.h"
|
---|
477 | struct SVGA3dCmdDXSetRasterizerState {
|
---|
478 | SVGA3dRasterizerStateId rasterizerId;
|
---|
479 | }
|
---|
480 | #include "vmware_pack_end.h"
|
---|
481 | SVGA3dCmdDXSetRasterizerState; /* SVGA_3D_CMD_DX_SET_RASTERIZER_STATE */
|
---|
482 |
|
---|
483 | #define SVGA3D_DXQUERY_FLAG_PREDICATEHINT (1 << 0)
|
---|
484 | typedef uint32 SVGA3dDXQueryFlags;
|
---|
485 |
|
---|
486 | /*
|
---|
487 | * The SVGADXQueryDeviceState and SVGADXQueryDeviceBits are used by the device
|
---|
488 | * to track query state transitions, but are not intended to be used by the
|
---|
489 | * driver.
|
---|
490 | */
|
---|
491 | #define SVGADX_QDSTATE_INVALID ((uint8)-1) /* Query has no state */
|
---|
492 | #define SVGADX_QDSTATE_MIN 0
|
---|
493 | #define SVGADX_QDSTATE_IDLE 0 /* Query hasn't started yet */
|
---|
494 | #define SVGADX_QDSTATE_ACTIVE 1 /* Query is actively gathering data */
|
---|
495 | #define SVGADX_QDSTATE_PENDING 2 /* Query is waiting for results */
|
---|
496 | #define SVGADX_QDSTATE_FINISHED 3 /* Query has completed */
|
---|
497 | #define SVGADX_QDSTATE_MAX 4
|
---|
498 | typedef uint8 SVGADXQueryDeviceState;
|
---|
499 |
|
---|
500 | typedef
|
---|
501 | #include "vmware_pack_begin.h"
|
---|
502 | struct {
|
---|
503 | SVGA3dQueryTypeUint8 type;
|
---|
504 | uint16 pad0;
|
---|
505 | SVGADXQueryDeviceState state;
|
---|
506 | SVGA3dDXQueryFlags flags;
|
---|
507 | SVGAMobId mobid;
|
---|
508 | uint32 offset;
|
---|
509 | }
|
---|
510 | #include "vmware_pack_end.h"
|
---|
511 | SVGACOTableDXQueryEntry;
|
---|
512 |
|
---|
513 | typedef
|
---|
514 | #include "vmware_pack_begin.h"
|
---|
515 | struct SVGA3dCmdDXDefineQuery {
|
---|
516 | SVGA3dQueryId queryId;
|
---|
517 | SVGA3dQueryType type;
|
---|
518 | SVGA3dDXQueryFlags flags;
|
---|
519 | }
|
---|
520 | #include "vmware_pack_end.h"
|
---|
521 | SVGA3dCmdDXDefineQuery; /* SVGA_3D_CMD_DX_DEFINE_QUERY */
|
---|
522 |
|
---|
523 | typedef
|
---|
524 | #include "vmware_pack_begin.h"
|
---|
525 | struct SVGA3dCmdDXDestroyQuery {
|
---|
526 | SVGA3dQueryId queryId;
|
---|
527 | }
|
---|
528 | #include "vmware_pack_end.h"
|
---|
529 | SVGA3dCmdDXDestroyQuery; /* SVGA_3D_CMD_DX_DESTROY_QUERY */
|
---|
530 |
|
---|
531 | typedef
|
---|
532 | #include "vmware_pack_begin.h"
|
---|
533 | struct SVGA3dCmdDXBindQuery {
|
---|
534 | SVGA3dQueryId queryId;
|
---|
535 | SVGAMobId mobid;
|
---|
536 | }
|
---|
537 | #include "vmware_pack_end.h"
|
---|
538 | SVGA3dCmdDXBindQuery; /* SVGA_3D_CMD_DX_BIND_QUERY */
|
---|
539 |
|
---|
540 | typedef
|
---|
541 | #include "vmware_pack_begin.h"
|
---|
542 | struct SVGA3dCmdDXSetQueryOffset {
|
---|
543 | SVGA3dQueryId queryId;
|
---|
544 | uint32 mobOffset;
|
---|
545 | }
|
---|
546 | #include "vmware_pack_end.h"
|
---|
547 | SVGA3dCmdDXSetQueryOffset; /* SVGA_3D_CMD_DX_SET_QUERY_OFFSET */
|
---|
548 |
|
---|
549 | typedef
|
---|
550 | #include "vmware_pack_begin.h"
|
---|
551 | struct SVGA3dCmdDXBeginQuery {
|
---|
552 | SVGA3dQueryId queryId;
|
---|
553 | }
|
---|
554 | #include "vmware_pack_end.h"
|
---|
555 | SVGA3dCmdDXBeginQuery; /* SVGA_3D_CMD_DX_QUERY_BEGIN */
|
---|
556 |
|
---|
557 | typedef
|
---|
558 | #include "vmware_pack_begin.h"
|
---|
559 | struct SVGA3dCmdDXEndQuery {
|
---|
560 | SVGA3dQueryId queryId;
|
---|
561 | }
|
---|
562 | #include "vmware_pack_end.h"
|
---|
563 | SVGA3dCmdDXEndQuery; /* SVGA_3D_CMD_DX_QUERY_END */
|
---|
564 |
|
---|
565 | typedef
|
---|
566 | #include "vmware_pack_begin.h"
|
---|
567 | struct SVGA3dCmdDXReadbackQuery {
|
---|
568 | SVGA3dQueryId queryId;
|
---|
569 | }
|
---|
570 | #include "vmware_pack_end.h"
|
---|
571 | SVGA3dCmdDXReadbackQuery; /* SVGA_3D_CMD_DX_READBACK_QUERY */
|
---|
572 |
|
---|
573 | typedef
|
---|
574 | #include "vmware_pack_begin.h"
|
---|
575 | struct SVGA3dCmdDXMoveQuery {
|
---|
576 | SVGA3dQueryId queryId;
|
---|
577 | SVGAMobId mobid;
|
---|
578 | uint32 mobOffset;
|
---|
579 | }
|
---|
580 | #include "vmware_pack_end.h"
|
---|
581 | SVGA3dCmdDXMoveQuery; /* SVGA_3D_CMD_DX_MOVE_QUERY */
|
---|
582 |
|
---|
583 | typedef
|
---|
584 | #include "vmware_pack_begin.h"
|
---|
585 | struct SVGA3dCmdDXBindAllQuery {
|
---|
586 | uint32 cid;
|
---|
587 | SVGAMobId mobid;
|
---|
588 | }
|
---|
589 | #include "vmware_pack_end.h"
|
---|
590 | SVGA3dCmdDXBindAllQuery; /* SVGA_3D_CMD_DX_BIND_ALL_QUERY */
|
---|
591 |
|
---|
592 | typedef
|
---|
593 | #include "vmware_pack_begin.h"
|
---|
594 | struct SVGA3dCmdDXReadbackAllQuery {
|
---|
595 | uint32 cid;
|
---|
596 | }
|
---|
597 | #include "vmware_pack_end.h"
|
---|
598 | SVGA3dCmdDXReadbackAllQuery; /* SVGA_3D_CMD_DX_READBACK_ALL_QUERY */
|
---|
599 |
|
---|
600 | typedef
|
---|
601 | #include "vmware_pack_begin.h"
|
---|
602 | struct SVGA3dCmdDXSetPredication {
|
---|
603 | SVGA3dQueryId queryId;
|
---|
604 | uint32 predicateValue;
|
---|
605 | }
|
---|
606 | #include "vmware_pack_end.h"
|
---|
607 | SVGA3dCmdDXSetPredication; /* SVGA_3D_CMD_DX_SET_PREDICATION */
|
---|
608 |
|
---|
609 | typedef
|
---|
610 | #include "vmware_pack_begin.h"
|
---|
611 | struct MKS3dDXSOState {
|
---|
612 | uint32 offset; /* Starting offset */
|
---|
613 | uint32 intOffset; /* Internal offset */
|
---|
614 | uint32 vertexCount; /* vertices written */
|
---|
615 | uint32 dead;
|
---|
616 | }
|
---|
617 | #include "vmware_pack_end.h"
|
---|
618 | SVGA3dDXSOState;
|
---|
619 |
|
---|
620 | /* Set the offset field to this value to append SO values to the buffer */
|
---|
621 | #define SVGA3D_DX_SO_OFFSET_APPEND ((uint32) ~0u)
|
---|
622 |
|
---|
623 | typedef
|
---|
624 | #include "vmware_pack_begin.h"
|
---|
625 | struct SVGA3dSoTarget {
|
---|
626 | SVGA3dSurfaceId sid;
|
---|
627 | uint32 offset;
|
---|
628 | uint32 sizeInBytes;
|
---|
629 | }
|
---|
630 | #include "vmware_pack_end.h"
|
---|
631 | SVGA3dSoTarget;
|
---|
632 |
|
---|
633 | typedef
|
---|
634 | #include "vmware_pack_begin.h"
|
---|
635 | struct SVGA3dCmdDXSetSOTargets {
|
---|
636 | uint32 pad0;
|
---|
637 | /* Followed by a variable number of SVGA3dSOTarget's. */
|
---|
638 | }
|
---|
639 | #include "vmware_pack_end.h"
|
---|
640 | SVGA3dCmdDXSetSOTargets; /* SVGA_3D_CMD_DX_SET_SOTARGETS */
|
---|
641 |
|
---|
642 | typedef
|
---|
643 | #include "vmware_pack_begin.h"
|
---|
644 | struct SVGA3dViewport
|
---|
645 | {
|
---|
646 | float x;
|
---|
647 | float y;
|
---|
648 | float width;
|
---|
649 | float height;
|
---|
650 | float minDepth;
|
---|
651 | float maxDepth;
|
---|
652 | }
|
---|
653 | #include "vmware_pack_end.h"
|
---|
654 | SVGA3dViewport;
|
---|
655 |
|
---|
656 | typedef
|
---|
657 | #include "vmware_pack_begin.h"
|
---|
658 | struct SVGA3dCmdDXSetViewports {
|
---|
659 | uint32 pad0;
|
---|
660 | /* Followed by a variable number of SVGA3dViewport's. */
|
---|
661 | }
|
---|
662 | #include "vmware_pack_end.h"
|
---|
663 | SVGA3dCmdDXSetViewports; /* SVGA_3D_CMD_DX_SET_VIEWPORTS */
|
---|
664 |
|
---|
665 | #define SVGA3D_DX_MAX_VIEWPORTS 16
|
---|
666 |
|
---|
667 | typedef
|
---|
668 | #include "vmware_pack_begin.h"
|
---|
669 | struct SVGA3dCmdDXSetScissorRects {
|
---|
670 | uint32 pad0;
|
---|
671 | /* Followed by a variable number of SVGASignedRect's. */
|
---|
672 | }
|
---|
673 | #include "vmware_pack_end.h"
|
---|
674 | SVGA3dCmdDXSetScissorRects; /* SVGA_3D_CMD_DX_SET_SCISSORRECTS */
|
---|
675 |
|
---|
676 | #define SVGA3D_DX_MAX_SCISSORRECTS 16
|
---|
677 |
|
---|
678 | typedef
|
---|
679 | #include "vmware_pack_begin.h"
|
---|
680 | struct SVGA3dCmdDXClearRenderTargetView {
|
---|
681 | SVGA3dRenderTargetViewId renderTargetViewId;
|
---|
682 | SVGA3dRGBAFloat rgba;
|
---|
683 | }
|
---|
684 | #include "vmware_pack_end.h"
|
---|
685 | SVGA3dCmdDXClearRenderTargetView; /* SVGA_3D_CMD_DX_CLEAR_RENDERTARGET_VIEW */
|
---|
686 |
|
---|
687 | typedef
|
---|
688 | #include "vmware_pack_begin.h"
|
---|
689 | struct SVGA3dCmdDXClearDepthStencilView {
|
---|
690 | uint16 flags;
|
---|
691 | uint16 stencil;
|
---|
692 | SVGA3dDepthStencilViewId depthStencilViewId;
|
---|
693 | float depth;
|
---|
694 | }
|
---|
695 | #include "vmware_pack_end.h"
|
---|
696 | SVGA3dCmdDXClearDepthStencilView; /* SVGA_3D_CMD_DX_CLEAR_DEPTHSTENCIL_VIEW */
|
---|
697 |
|
---|
698 | typedef
|
---|
699 | #include "vmware_pack_begin.h"
|
---|
700 | struct SVGA3dCmdDXPredCopyRegion {
|
---|
701 | SVGA3dSurfaceId dstSid;
|
---|
702 | uint32 dstSubResource;
|
---|
703 | SVGA3dSurfaceId srcSid;
|
---|
704 | uint32 srcSubResource;
|
---|
705 | SVGA3dCopyBox box;
|
---|
706 | }
|
---|
707 | #include "vmware_pack_end.h"
|
---|
708 | SVGA3dCmdDXPredCopyRegion;
|
---|
709 | /* SVGA_3D_CMD_DX_PRED_COPY_REGION */
|
---|
710 |
|
---|
711 | typedef
|
---|
712 | #include "vmware_pack_begin.h"
|
---|
713 | struct SVGA3dCmdDXPredCopy {
|
---|
714 | SVGA3dSurfaceId dstSid;
|
---|
715 | SVGA3dSurfaceId srcSid;
|
---|
716 | }
|
---|
717 | #include "vmware_pack_end.h"
|
---|
718 | SVGA3dCmdDXPredCopy; /* SVGA_3D_CMD_DX_PRED_COPY */
|
---|
719 |
|
---|
720 | typedef
|
---|
721 | #include "vmware_pack_begin.h"
|
---|
722 | struct SVGA3dCmdDXPredConvertRegion {
|
---|
723 | SVGA3dSurfaceId dstSid;
|
---|
724 | uint32 dstSubResource;
|
---|
725 | SVGA3dBox destBox;
|
---|
726 | SVGA3dSurfaceId srcSid;
|
---|
727 | uint32 srcSubResource;
|
---|
728 | SVGA3dBox srcBox;
|
---|
729 | }
|
---|
730 | #include "vmware_pack_end.h"
|
---|
731 | SVGA3dCmdDXPredConvertRegion; /* SVGA_3D_CMD_DX_PRED_CONVERT_REGION */
|
---|
732 |
|
---|
733 | typedef
|
---|
734 | #include "vmware_pack_begin.h"
|
---|
735 | struct SVGA3dCmdDXPredConvert {
|
---|
736 | SVGA3dSurfaceId dstSid;
|
---|
737 | SVGA3dSurfaceId srcSid;
|
---|
738 | }
|
---|
739 | #include "vmware_pack_end.h"
|
---|
740 | SVGA3dCmdDXPredConvert; /* SVGA_3D_CMD_DX_PRED_CONVERT */
|
---|
741 |
|
---|
742 | typedef
|
---|
743 | #include "vmware_pack_begin.h"
|
---|
744 | struct SVGA3dCmdDXBufferCopy {
|
---|
745 | SVGA3dSurfaceId dest;
|
---|
746 | SVGA3dSurfaceId src;
|
---|
747 | uint32 destX;
|
---|
748 | uint32 srcX;
|
---|
749 | uint32 width;
|
---|
750 | }
|
---|
751 | #include "vmware_pack_end.h"
|
---|
752 | SVGA3dCmdDXBufferCopy;
|
---|
753 | /* SVGA_3D_CMD_DX_BUFFER_COPY */
|
---|
754 |
|
---|
755 | /*
|
---|
756 | * Perform a surface copy between a multisample, and a non-multisampled
|
---|
757 | * surface.
|
---|
758 | */
|
---|
759 | typedef
|
---|
760 | #include "vmware_pack_begin.h"
|
---|
761 | struct {
|
---|
762 | SVGA3dSurfaceId dstSid;
|
---|
763 | uint32 dstSubResource;
|
---|
764 | SVGA3dSurfaceId srcSid;
|
---|
765 | uint32 srcSubResource;
|
---|
766 | SVGA3dSurfaceFormat copyFormat;
|
---|
767 | }
|
---|
768 | #include "vmware_pack_end.h"
|
---|
769 | SVGA3dCmdDXResolveCopy; /* SVGA_3D_CMD_DX_RESOLVE_COPY */
|
---|
770 |
|
---|
771 | /*
|
---|
772 | * Perform a predicated surface copy between a multisample, and a
|
---|
773 | * non-multisampled surface.
|
---|
774 | */
|
---|
775 | typedef
|
---|
776 | #include "vmware_pack_begin.h"
|
---|
777 | struct {
|
---|
778 | SVGA3dSurfaceId dstSid;
|
---|
779 | uint32 dstSubResource;
|
---|
780 | SVGA3dSurfaceId srcSid;
|
---|
781 | uint32 srcSubResource;
|
---|
782 | SVGA3dSurfaceFormat copyFormat;
|
---|
783 | }
|
---|
784 | #include "vmware_pack_end.h"
|
---|
785 | SVGA3dCmdDXPredResolveCopy; /* SVGA_3D_CMD_DX_PRED_RESOLVE_COPY */
|
---|
786 |
|
---|
787 | typedef uint32 SVGA3dDXPresentBltMode;
|
---|
788 | #define SVGADX_PRESENTBLT_LINEAR (1 << 0)
|
---|
789 | #define SVGADX_PRESENTBLT_FORCE_SRC_SRGB (1 << 1)
|
---|
790 | #define SVGADX_PRESENTBLT_FORCE_SRC_XRBIAS (1 << 2)
|
---|
791 | #define SVGADX_PRESENTBLT_MODE_MAX (1 << 3)
|
---|
792 |
|
---|
793 | typedef
|
---|
794 | #include "vmware_pack_begin.h"
|
---|
795 | struct SVGA3dCmdDXPresentBlt {
|
---|
796 | SVGA3dSurfaceId srcSid;
|
---|
797 | uint32 srcSubResource;
|
---|
798 | SVGA3dSurfaceId dstSid;
|
---|
799 | uint32 destSubResource;
|
---|
800 | SVGA3dBox boxSrc;
|
---|
801 | SVGA3dBox boxDest;
|
---|
802 | SVGA3dDXPresentBltMode mode;
|
---|
803 | }
|
---|
804 | #include "vmware_pack_end.h"
|
---|
805 | SVGA3dCmdDXPresentBlt; /* SVGA_3D_CMD_DX_PRESENTBLT*/
|
---|
806 |
|
---|
807 | typedef
|
---|
808 | #include "vmware_pack_begin.h"
|
---|
809 | struct SVGA3dCmdDXGenMips {
|
---|
810 | SVGA3dShaderResourceViewId shaderResourceViewId;
|
---|
811 | }
|
---|
812 | #include "vmware_pack_end.h"
|
---|
813 | SVGA3dCmdDXGenMips; /* SVGA_3D_CMD_DX_GENMIPS */
|
---|
814 |
|
---|
815 | /*
|
---|
816 | * Update a sub-resource in a guest-backed resource.
|
---|
817 | * (Inform the device that the guest-contents have been updated.)
|
---|
818 | */
|
---|
819 | typedef
|
---|
820 | #include "vmware_pack_begin.h"
|
---|
821 | struct SVGA3dCmdDXUpdateSubResource {
|
---|
822 | SVGA3dSurfaceId sid;
|
---|
823 | uint32 subResource;
|
---|
824 | SVGA3dBox box;
|
---|
825 | }
|
---|
826 | #include "vmware_pack_end.h"
|
---|
827 | SVGA3dCmdDXUpdateSubResource; /* SVGA_3D_CMD_DX_UPDATE_SUBRESOURCE */
|
---|
828 |
|
---|
829 | /*
|
---|
830 | * Readback a subresource in a guest-backed resource.
|
---|
831 | * (Request the device to flush the dirty contents into the guest.)
|
---|
832 | */
|
---|
833 | typedef
|
---|
834 | #include "vmware_pack_begin.h"
|
---|
835 | struct SVGA3dCmdDXReadbackSubResource {
|
---|
836 | SVGA3dSurfaceId sid;
|
---|
837 | uint32 subResource;
|
---|
838 | }
|
---|
839 | #include "vmware_pack_end.h"
|
---|
840 | SVGA3dCmdDXReadbackSubResource; /* SVGA_3D_CMD_DX_READBACK_SUBRESOURCE */
|
---|
841 |
|
---|
842 | /*
|
---|
843 | * Invalidate an image in a guest-backed surface.
|
---|
844 | * (Notify the device that the contents can be lost.)
|
---|
845 | */
|
---|
846 | typedef
|
---|
847 | #include "vmware_pack_begin.h"
|
---|
848 | struct SVGA3dCmdDXInvalidateSubResource {
|
---|
849 | SVGA3dSurfaceId sid;
|
---|
850 | uint32 subResource;
|
---|
851 | }
|
---|
852 | #include "vmware_pack_end.h"
|
---|
853 | SVGA3dCmdDXInvalidateSubResource; /* SVGA_3D_CMD_DX_INVALIDATE_SUBRESOURCE */
|
---|
854 |
|
---|
855 |
|
---|
856 | /*
|
---|
857 | * Raw byte wise transfer from a buffer surface into another surface
|
---|
858 | * of the requested box. Supported if 3d is enabled and SVGA_CAP_DX
|
---|
859 | * is set. This command does not take a context.
|
---|
860 | */
|
---|
861 | typedef
|
---|
862 | #include "vmware_pack_begin.h"
|
---|
863 | struct SVGA3dCmdDXTransferFromBuffer {
|
---|
864 | SVGA3dSurfaceId srcSid;
|
---|
865 | uint32 srcOffset;
|
---|
866 | uint32 srcPitch;
|
---|
867 | uint32 srcSlicePitch;
|
---|
868 | SVGA3dSurfaceId destSid;
|
---|
869 | uint32 destSubResource;
|
---|
870 | SVGA3dBox destBox;
|
---|
871 | }
|
---|
872 | #include "vmware_pack_end.h"
|
---|
873 | SVGA3dCmdDXTransferFromBuffer; /* SVGA_3D_CMD_DX_TRANSFER_FROM_BUFFER */
|
---|
874 |
|
---|
875 |
|
---|
876 | #define SVGA3D_TRANSFER_TO_BUFFER_READBACK (1 << 0)
|
---|
877 | #define SVGA3D_TRANSFER_TO_BUFFER_FLAGS_MASK (1 << 0)
|
---|
878 | typedef uint32 SVGA3dTransferToBufferFlags;
|
---|
879 |
|
---|
880 | /*
|
---|
881 | * Raw byte wise transfer to a buffer surface from another surface
|
---|
882 | * of the requested box. Supported if SVGA_CAP_DX2 is set. This
|
---|
883 | * command does not take a context.
|
---|
884 | */
|
---|
885 | typedef
|
---|
886 | #include "vmware_pack_begin.h"
|
---|
887 | struct SVGA3dCmdDXTransferToBuffer {
|
---|
888 | SVGA3dSurfaceId srcSid;
|
---|
889 | uint32 srcSubResource;
|
---|
890 | SVGA3dBox srcBox;
|
---|
891 | SVGA3dSurfaceId destSid;
|
---|
892 | uint32 destOffset;
|
---|
893 | uint32 destPitch;
|
---|
894 | uint32 destSlicePitch;
|
---|
895 | SVGA3dTransferToBufferFlags flags;
|
---|
896 | }
|
---|
897 | #include "vmware_pack_end.h"
|
---|
898 | SVGA3dCmdDXTransferToBuffer; /* SVGA_3D_CMD_DX_TRANSFER_TO_BUFFER */
|
---|
899 |
|
---|
900 |
|
---|
901 | /*
|
---|
902 | * Raw byte wise transfer from a buffer surface into another surface
|
---|
903 | * of the requested box. Supported if SVGA3D_DEVCAP_DXCONTEXT is set.
|
---|
904 | * The context is implied from the command buffer header.
|
---|
905 | */
|
---|
906 | typedef
|
---|
907 | #include "vmware_pack_begin.h"
|
---|
908 | struct SVGA3dCmdDXPredTransferFromBuffer {
|
---|
909 | SVGA3dSurfaceId srcSid;
|
---|
910 | uint32 srcOffset;
|
---|
911 | uint32 srcPitch;
|
---|
912 | uint32 srcSlicePitch;
|
---|
913 | SVGA3dSurfaceId destSid;
|
---|
914 | uint32 destSubResource;
|
---|
915 | SVGA3dBox destBox;
|
---|
916 | }
|
---|
917 | #include "vmware_pack_end.h"
|
---|
918 | SVGA3dCmdDXPredTransferFromBuffer;
|
---|
919 | /* SVGA_3D_CMD_DX_PRED_TRANSFER_FROM_BUFFER */
|
---|
920 |
|
---|
921 |
|
---|
922 | typedef
|
---|
923 | #include "vmware_pack_begin.h"
|
---|
924 | struct SVGA3dCmdDXSurfaceCopyAndReadback {
|
---|
925 | SVGA3dSurfaceId srcSid;
|
---|
926 | SVGA3dSurfaceId destSid;
|
---|
927 | SVGA3dCopyBox box;
|
---|
928 | }
|
---|
929 | #include "vmware_pack_end.h"
|
---|
930 | SVGA3dCmdDXSurfaceCopyAndReadback;
|
---|
931 | /* SVGA_3D_CMD_DX_SURFACE_COPY_AND_READBACK */
|
---|
932 |
|
---|
933 | /*
|
---|
934 | * SVGA_DX_HINT_NONE: Does nothing.
|
---|
935 | *
|
---|
936 | * SVGA_DX_HINT_PREFETCH_OBJECT:
|
---|
937 | * SVGA_DX_HINT_PREEVICT_OBJECT:
|
---|
938 | * Consumes a SVGAObjectRef, and hints that the host should consider
|
---|
939 | * fetching/evicting the specified object.
|
---|
940 | *
|
---|
941 | * An id of SVGA3D_INVALID_ID can be used if the guest isn't sure
|
---|
942 | * what object was affected. (For instance, if the guest knows that
|
---|
943 | * it is about to evict a DXShader, but doesn't know precisely which one,
|
---|
944 | * the device can still use this to help limit it's search, or track
|
---|
945 | * how many page-outs have happened.)
|
---|
946 | *
|
---|
947 | * SVGA_DX_HINT_PREFETCH_COBJECT:
|
---|
948 | * SVGA_DX_HINT_PREEVICT_COBJECT:
|
---|
949 | * Same as the above, except they consume an SVGACObjectRef.
|
---|
950 | */
|
---|
951 | typedef uint32 SVGADXHintId;
|
---|
952 | #define SVGA_DX_HINT_NONE 0
|
---|
953 | #define SVGA_DX_HINT_PREFETCH_OBJECT 1
|
---|
954 | #define SVGA_DX_HINT_PREEVICT_OBJECT 2
|
---|
955 | #define SVGA_DX_HINT_PREFETCH_COBJECT 3
|
---|
956 | #define SVGA_DX_HINT_PREEVICT_COBJECT 4
|
---|
957 | #define SVGA_DX_HINT_MAX 5
|
---|
958 |
|
---|
959 | typedef
|
---|
960 | #include "vmware_pack_begin.h"
|
---|
961 | struct SVGAObjectRef {
|
---|
962 | SVGAOTableType type;
|
---|
963 | uint32 id;
|
---|
964 | }
|
---|
965 | #include "vmware_pack_end.h"
|
---|
966 | SVGAObjectRef;
|
---|
967 |
|
---|
968 | typedef
|
---|
969 | #include "vmware_pack_begin.h"
|
---|
970 | struct SVGACObjectRef {
|
---|
971 | SVGACOTableType type;
|
---|
972 | uint32 cid;
|
---|
973 | uint32 id;
|
---|
974 | }
|
---|
975 | #include "vmware_pack_end.h"
|
---|
976 | SVGACObjectRef;
|
---|
977 |
|
---|
978 | typedef
|
---|
979 | #include "vmware_pack_begin.h"
|
---|
980 | struct SVGA3dCmdDXHint {
|
---|
981 | SVGADXHintId hintId;
|
---|
982 |
|
---|
983 | /*
|
---|
984 | * Followed by variable sized data depending on the hintId.
|
---|
985 | */
|
---|
986 | }
|
---|
987 | #include "vmware_pack_end.h"
|
---|
988 | SVGA3dCmdDXHint;
|
---|
989 | /* SVGA_3D_CMD_DX_HINT */
|
---|
990 |
|
---|
991 | typedef
|
---|
992 | #include "vmware_pack_begin.h"
|
---|
993 | struct SVGA3dCmdDXBufferUpdate {
|
---|
994 | SVGA3dSurfaceId sid;
|
---|
995 | uint32 x;
|
---|
996 | uint32 width;
|
---|
997 | }
|
---|
998 | #include "vmware_pack_end.h"
|
---|
999 | SVGA3dCmdDXBufferUpdate;
|
---|
1000 | /* SVGA_3D_CMD_DX_BUFFER_UPDATE */
|
---|
1001 |
|
---|
1002 | typedef
|
---|
1003 | #include "vmware_pack_begin.h"
|
---|
1004 | struct SVGA3dCmdDXSetConstantBufferOffset {
|
---|
1005 | uint32 slot;
|
---|
1006 | uint32 offsetInBytes;
|
---|
1007 | }
|
---|
1008 | #include "vmware_pack_end.h"
|
---|
1009 | SVGA3dCmdDXSetConstantBufferOffset;
|
---|
1010 |
|
---|
1011 | typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetVSConstantBufferOffset;
|
---|
1012 | /* SVGA_3D_CMD_DX_SET_VS_CONSTANT_BUFFER_OFFSET */
|
---|
1013 |
|
---|
1014 | typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetPSConstantBufferOffset;
|
---|
1015 | /* SVGA_3D_CMD_DX_SET_PS_CONSTANT_BUFFER_OFFSET */
|
---|
1016 |
|
---|
1017 | typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetGSConstantBufferOffset;
|
---|
1018 | /* SVGA_3D_CMD_DX_SET_GS_CONSTANT_BUFFER_OFFSET */
|
---|
1019 |
|
---|
1020 | typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetHSConstantBufferOffset;
|
---|
1021 | /* SVGA_3D_CMD_DX_SET_HS_CONSTANT_BUFFER_OFFSET */
|
---|
1022 |
|
---|
1023 | typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetDSConstantBufferOffset;
|
---|
1024 | /* SVGA_3D_CMD_DX_SET_DS_CONSTANT_BUFFER_OFFSET */
|
---|
1025 |
|
---|
1026 | typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetCSConstantBufferOffset;
|
---|
1027 | /* SVGA_3D_CMD_DX_SET_CS_CONSTANT_BUFFER_OFFSET */
|
---|
1028 |
|
---|
1029 |
|
---|
1030 | #define SVGA3D_BUFFEREX_SRV_RAW (1 << 0)
|
---|
1031 | #define SVGA3D_BUFFEREX_SRV_FLAGS_MAX (1 << 1)
|
---|
1032 | #define SVGA3D_BUFFEREX_SRV_FLAGS_MASK (SVGA3D_BUFFEREX_SRV_FLAGS_MAX - 1)
|
---|
1033 | typedef uint32 SVGA3dBufferExFlags;
|
---|
1034 |
|
---|
1035 | typedef
|
---|
1036 | #include "vmware_pack_begin.h"
|
---|
1037 | struct {
|
---|
1038 | union {
|
---|
1039 | struct {
|
---|
1040 | uint32 firstElement;
|
---|
1041 | uint32 numElements;
|
---|
1042 | uint32 pad0;
|
---|
1043 | uint32 pad1;
|
---|
1044 | } buffer;
|
---|
1045 | struct {
|
---|
1046 | uint32 mostDetailedMip;
|
---|
1047 | uint32 firstArraySlice;
|
---|
1048 | uint32 mipLevels;
|
---|
1049 | uint32 arraySize;
|
---|
1050 | } tex; /* 1d, 2d, 3d, cube */
|
---|
1051 | struct {
|
---|
1052 | uint32 firstElement;
|
---|
1053 | uint32 numElements;
|
---|
1054 | SVGA3dBufferExFlags flags;
|
---|
1055 | uint32 pad0;
|
---|
1056 | } bufferex;
|
---|
1057 | };
|
---|
1058 | }
|
---|
1059 | #include "vmware_pack_end.h"
|
---|
1060 | SVGA3dShaderResourceViewDesc;
|
---|
1061 |
|
---|
1062 | typedef
|
---|
1063 | #include "vmware_pack_begin.h"
|
---|
1064 | struct {
|
---|
1065 | SVGA3dSurfaceId sid;
|
---|
1066 | SVGA3dSurfaceFormat format;
|
---|
1067 | SVGA3dResourceType resourceDimension;
|
---|
1068 | SVGA3dShaderResourceViewDesc desc;
|
---|
1069 | uint32 pad;
|
---|
1070 | }
|
---|
1071 | #include "vmware_pack_end.h"
|
---|
1072 | SVGACOTableDXSRViewEntry;
|
---|
1073 |
|
---|
1074 | typedef
|
---|
1075 | #include "vmware_pack_begin.h"
|
---|
1076 | struct SVGA3dCmdDXDefineShaderResourceView {
|
---|
1077 | SVGA3dShaderResourceViewId shaderResourceViewId;
|
---|
1078 |
|
---|
1079 | SVGA3dSurfaceId sid;
|
---|
1080 | SVGA3dSurfaceFormat format;
|
---|
1081 | SVGA3dResourceType resourceDimension;
|
---|
1082 |
|
---|
1083 | SVGA3dShaderResourceViewDesc desc;
|
---|
1084 | }
|
---|
1085 | #include "vmware_pack_end.h"
|
---|
1086 | SVGA3dCmdDXDefineShaderResourceView;
|
---|
1087 | /* SVGA_3D_CMD_DX_DEFINE_SHADERRESOURCE_VIEW */
|
---|
1088 |
|
---|
1089 | typedef
|
---|
1090 | #include "vmware_pack_begin.h"
|
---|
1091 | struct SVGA3dCmdDXDestroyShaderResourceView {
|
---|
1092 | SVGA3dShaderResourceViewId shaderResourceViewId;
|
---|
1093 | }
|
---|
1094 | #include "vmware_pack_end.h"
|
---|
1095 | SVGA3dCmdDXDestroyShaderResourceView;
|
---|
1096 | /* SVGA_3D_CMD_DX_DESTROY_SHADERRESOURCE_VIEW */
|
---|
1097 |
|
---|
1098 | typedef
|
---|
1099 | #include "vmware_pack_begin.h"
|
---|
1100 | struct SVGA3dRenderTargetViewDesc {
|
---|
1101 | union {
|
---|
1102 | struct {
|
---|
1103 | uint32 firstElement;
|
---|
1104 | uint32 numElements;
|
---|
1105 | uint32 padding0;
|
---|
1106 | } buffer;
|
---|
1107 | struct {
|
---|
1108 | uint32 mipSlice;
|
---|
1109 | uint32 firstArraySlice;
|
---|
1110 | uint32 arraySize;
|
---|
1111 | } tex; /* 1d, 2d, cube */
|
---|
1112 | struct {
|
---|
1113 | uint32 mipSlice;
|
---|
1114 | uint32 firstW;
|
---|
1115 | uint32 wSize;
|
---|
1116 | } tex3D;
|
---|
1117 | };
|
---|
1118 | }
|
---|
1119 | #include "vmware_pack_end.h"
|
---|
1120 | SVGA3dRenderTargetViewDesc;
|
---|
1121 |
|
---|
1122 | typedef
|
---|
1123 | #include "vmware_pack_begin.h"
|
---|
1124 | struct {
|
---|
1125 | SVGA3dSurfaceId sid;
|
---|
1126 | SVGA3dSurfaceFormat format;
|
---|
1127 | SVGA3dResourceType resourceDimension;
|
---|
1128 | SVGA3dRenderTargetViewDesc desc;
|
---|
1129 | uint32 pad[2];
|
---|
1130 | }
|
---|
1131 | #include "vmware_pack_end.h"
|
---|
1132 | SVGACOTableDXRTViewEntry;
|
---|
1133 |
|
---|
1134 | typedef
|
---|
1135 | #include "vmware_pack_begin.h"
|
---|
1136 | struct SVGA3dCmdDXDefineRenderTargetView {
|
---|
1137 | SVGA3dRenderTargetViewId renderTargetViewId;
|
---|
1138 |
|
---|
1139 | SVGA3dSurfaceId sid;
|
---|
1140 | SVGA3dSurfaceFormat format;
|
---|
1141 | SVGA3dResourceType resourceDimension;
|
---|
1142 |
|
---|
1143 | SVGA3dRenderTargetViewDesc desc;
|
---|
1144 | }
|
---|
1145 | #include "vmware_pack_end.h"
|
---|
1146 | SVGA3dCmdDXDefineRenderTargetView;
|
---|
1147 | /* SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW */
|
---|
1148 |
|
---|
1149 | typedef
|
---|
1150 | #include "vmware_pack_begin.h"
|
---|
1151 | struct SVGA3dCmdDXDestroyRenderTargetView {
|
---|
1152 | SVGA3dRenderTargetViewId renderTargetViewId;
|
---|
1153 | }
|
---|
1154 | #include "vmware_pack_end.h"
|
---|
1155 | SVGA3dCmdDXDestroyRenderTargetView;
|
---|
1156 | /* SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW */
|
---|
1157 |
|
---|
1158 | /*
|
---|
1159 | */
|
---|
1160 | #define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_DEPTH 0x01
|
---|
1161 | #define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_STENCIL 0x02
|
---|
1162 | #define SVGA3D_DXDSVIEW_CREATE_FLAG_MASK 0x03
|
---|
1163 | typedef uint8 SVGA3DCreateDSViewFlags;
|
---|
1164 |
|
---|
1165 | typedef
|
---|
1166 | #include "vmware_pack_begin.h"
|
---|
1167 | struct {
|
---|
1168 | SVGA3dSurfaceId sid;
|
---|
1169 | SVGA3dSurfaceFormat format;
|
---|
1170 | SVGA3dResourceType resourceDimension;
|
---|
1171 | uint32 mipSlice;
|
---|
1172 | uint32 firstArraySlice;
|
---|
1173 | uint32 arraySize;
|
---|
1174 | SVGA3DCreateDSViewFlags flags;
|
---|
1175 | uint8 pad0;
|
---|
1176 | uint16 pad1;
|
---|
1177 | uint32 pad2;
|
---|
1178 | }
|
---|
1179 | #include "vmware_pack_end.h"
|
---|
1180 | SVGACOTableDXDSViewEntry;
|
---|
1181 |
|
---|
1182 | typedef
|
---|
1183 | #include "vmware_pack_begin.h"
|
---|
1184 | struct SVGA3dCmdDXDefineDepthStencilView {
|
---|
1185 | SVGA3dDepthStencilViewId depthStencilViewId;
|
---|
1186 |
|
---|
1187 | SVGA3dSurfaceId sid;
|
---|
1188 | SVGA3dSurfaceFormat format;
|
---|
1189 | SVGA3dResourceType resourceDimension;
|
---|
1190 | uint32 mipSlice;
|
---|
1191 | uint32 firstArraySlice;
|
---|
1192 | uint32 arraySize;
|
---|
1193 | SVGA3DCreateDSViewFlags flags;
|
---|
1194 | uint8 pad0;
|
---|
1195 | uint16 pad1;
|
---|
1196 | }
|
---|
1197 | #include "vmware_pack_end.h"
|
---|
1198 | SVGA3dCmdDXDefineDepthStencilView;
|
---|
1199 | /* SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW */
|
---|
1200 |
|
---|
1201 | /*
|
---|
1202 | * Version 2 needed in order to start validating and using the flags
|
---|
1203 | * field. Unfortunately the device wasn't validating or using the
|
---|
1204 | * flags field and the driver wasn't initializing it in shipped code,
|
---|
1205 | * so a new version of the command is needed to allow that code to
|
---|
1206 | * continue to work.
|
---|
1207 | */
|
---|
1208 | typedef
|
---|
1209 | #include "vmware_pack_begin.h"
|
---|
1210 | struct SVGA3dCmdDXDefineDepthStencilView_v2 {
|
---|
1211 | SVGA3dDepthStencilViewId depthStencilViewId;
|
---|
1212 |
|
---|
1213 | SVGA3dSurfaceId sid;
|
---|
1214 | SVGA3dSurfaceFormat format;
|
---|
1215 | SVGA3dResourceType resourceDimension;
|
---|
1216 | uint32 mipSlice;
|
---|
1217 | uint32 firstArraySlice;
|
---|
1218 | uint32 arraySize;
|
---|
1219 | SVGA3DCreateDSViewFlags flags;
|
---|
1220 | uint8 pad0;
|
---|
1221 | uint16 pad1;
|
---|
1222 | }
|
---|
1223 | #include "vmware_pack_end.h"
|
---|
1224 | SVGA3dCmdDXDefineDepthStencilView_v2;
|
---|
1225 | /* SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW_V2 */
|
---|
1226 |
|
---|
1227 | typedef
|
---|
1228 | #include "vmware_pack_begin.h"
|
---|
1229 | struct SVGA3dCmdDXDestroyDepthStencilView {
|
---|
1230 | SVGA3dDepthStencilViewId depthStencilViewId;
|
---|
1231 | }
|
---|
1232 | #include "vmware_pack_end.h"
|
---|
1233 | SVGA3dCmdDXDestroyDepthStencilView;
|
---|
1234 | /* SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_VIEW */
|
---|
1235 |
|
---|
1236 |
|
---|
1237 | #define SVGA3D_UABUFFER_RAW (1 << 0)
|
---|
1238 | #define SVGA3D_UABUFFER_APPEND (1 << 1)
|
---|
1239 | #define SVGA3D_UABUFFER_COUNTER (1 << 2)
|
---|
1240 | typedef uint32 SVGA3dUABufferFlags;
|
---|
1241 |
|
---|
1242 | typedef
|
---|
1243 | #include "vmware_pack_begin.h"
|
---|
1244 | struct {
|
---|
1245 | union {
|
---|
1246 | struct {
|
---|
1247 | uint32 firstElement;
|
---|
1248 | uint32 numElements;
|
---|
1249 | SVGA3dUABufferFlags flags;
|
---|
1250 | uint32 padding0;
|
---|
1251 | uint32 padding1;
|
---|
1252 | } buffer;
|
---|
1253 | struct {
|
---|
1254 | uint32 mipSlice;
|
---|
1255 | uint32 firstArraySlice;
|
---|
1256 | uint32 arraySize;
|
---|
1257 | uint32 padding0;
|
---|
1258 | uint32 padding1;
|
---|
1259 | } tex; /* 1d, 2d */
|
---|
1260 | struct {
|
---|
1261 | uint32 mipSlice;
|
---|
1262 | uint32 firstW;
|
---|
1263 | uint32 wSize;
|
---|
1264 | uint32 padding0;
|
---|
1265 | uint32 padding1;
|
---|
1266 | } tex3D;
|
---|
1267 | };
|
---|
1268 | }
|
---|
1269 | #include "vmware_pack_end.h"
|
---|
1270 | SVGA3dUAViewDesc;
|
---|
1271 |
|
---|
1272 | typedef
|
---|
1273 | #include "vmware_pack_begin.h"
|
---|
1274 | struct {
|
---|
1275 | SVGA3dSurfaceId sid;
|
---|
1276 | SVGA3dSurfaceFormat format;
|
---|
1277 | SVGA3dResourceType resourceDimension;
|
---|
1278 | SVGA3dUAViewDesc desc;
|
---|
1279 | uint32 structureCount;
|
---|
1280 | uint32 pad[7];
|
---|
1281 | }
|
---|
1282 | #include "vmware_pack_end.h"
|
---|
1283 | SVGACOTableDXUAViewEntry;
|
---|
1284 |
|
---|
1285 | typedef
|
---|
1286 | #include "vmware_pack_begin.h"
|
---|
1287 | struct SVGA3dCmdDXDefineUAView {
|
---|
1288 | SVGA3dUAViewId uaViewId;
|
---|
1289 |
|
---|
1290 | SVGA3dSurfaceId sid;
|
---|
1291 | SVGA3dSurfaceFormat format;
|
---|
1292 | SVGA3dResourceType resourceDimension;
|
---|
1293 |
|
---|
1294 | SVGA3dUAViewDesc desc;
|
---|
1295 | }
|
---|
1296 | #include "vmware_pack_end.h"
|
---|
1297 | SVGA3dCmdDXDefineUAView;
|
---|
1298 | /* SVGA_3D_CMD_DX_DEFINE_UA_VIEW */
|
---|
1299 |
|
---|
1300 | typedef
|
---|
1301 | #include "vmware_pack_begin.h"
|
---|
1302 | struct SVGA3dCmdDXDestroyUAView {
|
---|
1303 | SVGA3dUAViewId uaViewId;
|
---|
1304 | }
|
---|
1305 | #include "vmware_pack_end.h"
|
---|
1306 | SVGA3dCmdDXDestroyUAView;
|
---|
1307 | /* SVGA_3D_CMD_DX_DESTROY_UA_VIEW */
|
---|
1308 |
|
---|
1309 | typedef
|
---|
1310 | #include "vmware_pack_begin.h"
|
---|
1311 | struct SVGA3dCmdDXClearUAViewUint {
|
---|
1312 | SVGA3dUAViewId uaViewId;
|
---|
1313 | SVGA3dRGBAUint32 value;
|
---|
1314 | }
|
---|
1315 | #include "vmware_pack_end.h"
|
---|
1316 | SVGA3dCmdDXClearUAViewUint;
|
---|
1317 | /* SVGA_3D_CMD_DX_CLEAR_UA_VIEW_UINT */
|
---|
1318 |
|
---|
1319 | typedef
|
---|
1320 | #include "vmware_pack_begin.h"
|
---|
1321 | struct SVGA3dCmdDXClearUAViewFloat {
|
---|
1322 | SVGA3dUAViewId uaViewId;
|
---|
1323 | SVGA3dRGBAFloat value;
|
---|
1324 | }
|
---|
1325 | #include "vmware_pack_end.h"
|
---|
1326 | SVGA3dCmdDXClearUAViewFloat;
|
---|
1327 | /* SVGA_3D_CMD_DX_CLEAR_UA_VIEW_FLOAT */
|
---|
1328 |
|
---|
1329 | typedef
|
---|
1330 | #include "vmware_pack_begin.h"
|
---|
1331 | struct SVGA3dCmdDXCopyStructureCount {
|
---|
1332 | SVGA3dUAViewId srcUAViewId;
|
---|
1333 | SVGA3dSurfaceId destSid;
|
---|
1334 | uint32 destByteOffset;
|
---|
1335 | }
|
---|
1336 | #include "vmware_pack_end.h"
|
---|
1337 | SVGA3dCmdDXCopyStructureCount;
|
---|
1338 | /* SVGA_3D_CMD_DX_COPY_STRUCTURE_COUNT */
|
---|
1339 |
|
---|
1340 | typedef
|
---|
1341 | #include "vmware_pack_begin.h"
|
---|
1342 | struct SVGA3dCmdDXSetStructureCount {
|
---|
1343 | SVGA3dUAViewId uaViewId;
|
---|
1344 | uint32 structureCount;
|
---|
1345 | }
|
---|
1346 | #include "vmware_pack_end.h"
|
---|
1347 | SVGA3dCmdDXSetStructureCount;
|
---|
1348 | /* SVGA_3D_CMD_DX_SET_STRUCTURE_COUNT */
|
---|
1349 |
|
---|
1350 | typedef
|
---|
1351 | #include "vmware_pack_begin.h"
|
---|
1352 | struct SVGA3dCmdDXSetUAViews {
|
---|
1353 | uint32 uavSpliceIndex;
|
---|
1354 | /* Followed by a variable number of SVGA3dUAViewId's. */
|
---|
1355 | }
|
---|
1356 | #include "vmware_pack_end.h"
|
---|
1357 | SVGA3dCmdDXSetUAViews; /* SVGA_3D_CMD_DX_SET_UA_VIEWS */
|
---|
1358 |
|
---|
1359 | typedef
|
---|
1360 | #include "vmware_pack_begin.h"
|
---|
1361 | struct SVGA3dCmdDXSetCSUAViews {
|
---|
1362 | uint32 startIndex;
|
---|
1363 | /* Followed by a variable number of SVGA3dUAViewId's. */
|
---|
1364 | }
|
---|
1365 | #include "vmware_pack_end.h"
|
---|
1366 | SVGA3dCmdDXSetCSUAViews; /* SVGA_3D_CMD_DX_SET_CS_UA_VIEWS */
|
---|
1367 |
|
---|
1368 | typedef
|
---|
1369 | #include "vmware_pack_begin.h"
|
---|
1370 | struct SVGA3dInputElementDesc {
|
---|
1371 | uint32 inputSlot;
|
---|
1372 | uint32 alignedByteOffset;
|
---|
1373 | SVGA3dSurfaceFormat format;
|
---|
1374 | SVGA3dInputClassification inputSlotClass;
|
---|
1375 | uint32 instanceDataStepRate;
|
---|
1376 | uint32 inputRegister;
|
---|
1377 | }
|
---|
1378 | #include "vmware_pack_end.h"
|
---|
1379 | SVGA3dInputElementDesc;
|
---|
1380 |
|
---|
1381 | typedef
|
---|
1382 | #include "vmware_pack_begin.h"
|
---|
1383 | struct {
|
---|
1384 | uint32 elid;
|
---|
1385 | uint32 numDescs;
|
---|
1386 | SVGA3dInputElementDesc descs[32];
|
---|
1387 | uint32 pad[62];
|
---|
1388 | }
|
---|
1389 | #include "vmware_pack_end.h"
|
---|
1390 | SVGACOTableDXElementLayoutEntry;
|
---|
1391 |
|
---|
1392 | typedef
|
---|
1393 | #include "vmware_pack_begin.h"
|
---|
1394 | struct SVGA3dCmdDXDefineElementLayout {
|
---|
1395 | SVGA3dElementLayoutId elementLayoutId;
|
---|
1396 | /* Followed by a variable number of SVGA3dInputElementDesc's. */
|
---|
1397 | }
|
---|
1398 | #include "vmware_pack_end.h"
|
---|
1399 | SVGA3dCmdDXDefineElementLayout;
|
---|
1400 | /* SVGA_3D_CMD_DX_DEFINE_ELEMENTLAYOUT */
|
---|
1401 |
|
---|
1402 | typedef
|
---|
1403 | #include "vmware_pack_begin.h"
|
---|
1404 | struct SVGA3dCmdDXDestroyElementLayout {
|
---|
1405 | SVGA3dElementLayoutId elementLayoutId;
|
---|
1406 | }
|
---|
1407 | #include "vmware_pack_end.h"
|
---|
1408 | SVGA3dCmdDXDestroyElementLayout;
|
---|
1409 | /* SVGA_3D_CMD_DX_DESTROY_ELEMENTLAYOUT */
|
---|
1410 |
|
---|
1411 |
|
---|
1412 | #define SVGA3D_DX_MAX_RENDER_TARGETS 8
|
---|
1413 |
|
---|
1414 | typedef
|
---|
1415 | #include "vmware_pack_begin.h"
|
---|
1416 | struct SVGA3dDXBlendStatePerRT {
|
---|
1417 | uint8 blendEnable;
|
---|
1418 | uint8 srcBlend;
|
---|
1419 | uint8 destBlend;
|
---|
1420 | uint8 blendOp;
|
---|
1421 | uint8 srcBlendAlpha;
|
---|
1422 | uint8 destBlendAlpha;
|
---|
1423 | uint8 blendOpAlpha;
|
---|
1424 | SVGA3dColorWriteEnable renderTargetWriteMask;
|
---|
1425 | uint8 logicOpEnable;
|
---|
1426 | uint8 logicOp;
|
---|
1427 | uint16 pad0;
|
---|
1428 | }
|
---|
1429 | #include "vmware_pack_end.h"
|
---|
1430 | SVGA3dDXBlendStatePerRT;
|
---|
1431 |
|
---|
1432 | typedef
|
---|
1433 | #include "vmware_pack_begin.h"
|
---|
1434 | struct {
|
---|
1435 | uint8 alphaToCoverageEnable;
|
---|
1436 | uint8 independentBlendEnable;
|
---|
1437 | uint16 pad0;
|
---|
1438 | SVGA3dDXBlendStatePerRT perRT[SVGA3D_MAX_RENDER_TARGETS];
|
---|
1439 | uint32 pad1[7];
|
---|
1440 | }
|
---|
1441 | #include "vmware_pack_end.h"
|
---|
1442 | SVGACOTableDXBlendStateEntry;
|
---|
1443 |
|
---|
1444 | /*
|
---|
1445 | */
|
---|
1446 | typedef
|
---|
1447 | #include "vmware_pack_begin.h"
|
---|
1448 | struct SVGA3dCmdDXDefineBlendState {
|
---|
1449 | SVGA3dBlendStateId blendId;
|
---|
1450 | uint8 alphaToCoverageEnable;
|
---|
1451 | uint8 independentBlendEnable;
|
---|
1452 | uint16 pad0;
|
---|
1453 | SVGA3dDXBlendStatePerRT perRT[SVGA3D_MAX_RENDER_TARGETS];
|
---|
1454 | }
|
---|
1455 | #include "vmware_pack_end.h"
|
---|
1456 | SVGA3dCmdDXDefineBlendState; /* SVGA_3D_CMD_DX_DEFINE_BLEND_STATE */
|
---|
1457 |
|
---|
1458 | typedef
|
---|
1459 | #include "vmware_pack_begin.h"
|
---|
1460 | struct SVGA3dCmdDXDestroyBlendState {
|
---|
1461 | SVGA3dBlendStateId blendId;
|
---|
1462 | }
|
---|
1463 | #include "vmware_pack_end.h"
|
---|
1464 | SVGA3dCmdDXDestroyBlendState; /* SVGA_3D_CMD_DX_DESTROY_BLEND_STATE */
|
---|
1465 |
|
---|
1466 | typedef
|
---|
1467 | #include "vmware_pack_begin.h"
|
---|
1468 | struct {
|
---|
1469 | uint8 depthEnable;
|
---|
1470 | SVGA3dDepthWriteMask depthWriteMask;
|
---|
1471 | SVGA3dComparisonFunc depthFunc;
|
---|
1472 | uint8 stencilEnable;
|
---|
1473 | uint8 frontEnable;
|
---|
1474 | uint8 backEnable;
|
---|
1475 | uint8 stencilReadMask;
|
---|
1476 | uint8 stencilWriteMask;
|
---|
1477 |
|
---|
1478 | uint8 frontStencilFailOp;
|
---|
1479 | uint8 frontStencilDepthFailOp;
|
---|
1480 | uint8 frontStencilPassOp;
|
---|
1481 | SVGA3dComparisonFunc frontStencilFunc;
|
---|
1482 |
|
---|
1483 | uint8 backStencilFailOp;
|
---|
1484 | uint8 backStencilDepthFailOp;
|
---|
1485 | uint8 backStencilPassOp;
|
---|
1486 | SVGA3dComparisonFunc backStencilFunc;
|
---|
1487 | }
|
---|
1488 | #include "vmware_pack_end.h"
|
---|
1489 | SVGACOTableDXDepthStencilEntry;
|
---|
1490 |
|
---|
1491 | /*
|
---|
1492 | */
|
---|
1493 | typedef
|
---|
1494 | #include "vmware_pack_begin.h"
|
---|
1495 | struct SVGA3dCmdDXDefineDepthStencilState {
|
---|
1496 | SVGA3dDepthStencilStateId depthStencilId;
|
---|
1497 |
|
---|
1498 | uint8 depthEnable;
|
---|
1499 | SVGA3dDepthWriteMask depthWriteMask;
|
---|
1500 | SVGA3dComparisonFunc depthFunc;
|
---|
1501 | uint8 stencilEnable;
|
---|
1502 | uint8 frontEnable;
|
---|
1503 | uint8 backEnable;
|
---|
1504 | uint8 stencilReadMask;
|
---|
1505 | uint8 stencilWriteMask;
|
---|
1506 |
|
---|
1507 | uint8 frontStencilFailOp;
|
---|
1508 | uint8 frontStencilDepthFailOp;
|
---|
1509 | uint8 frontStencilPassOp;
|
---|
1510 | SVGA3dComparisonFunc frontStencilFunc;
|
---|
1511 |
|
---|
1512 | uint8 backStencilFailOp;
|
---|
1513 | uint8 backStencilDepthFailOp;
|
---|
1514 | uint8 backStencilPassOp;
|
---|
1515 | SVGA3dComparisonFunc backStencilFunc;
|
---|
1516 | }
|
---|
1517 | #include "vmware_pack_end.h"
|
---|
1518 | SVGA3dCmdDXDefineDepthStencilState;
|
---|
1519 | /* SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_STATE */
|
---|
1520 |
|
---|
1521 | typedef
|
---|
1522 | #include "vmware_pack_begin.h"
|
---|
1523 | struct SVGA3dCmdDXDestroyDepthStencilState {
|
---|
1524 | SVGA3dDepthStencilStateId depthStencilId;
|
---|
1525 | }
|
---|
1526 | #include "vmware_pack_end.h"
|
---|
1527 | SVGA3dCmdDXDestroyDepthStencilState;
|
---|
1528 | /* SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_STATE */
|
---|
1529 |
|
---|
1530 | typedef
|
---|
1531 | #include "vmware_pack_begin.h"
|
---|
1532 | struct {
|
---|
1533 | uint8 fillMode;
|
---|
1534 | SVGA3dCullMode cullMode;
|
---|
1535 | uint8 frontCounterClockwise;
|
---|
1536 | uint8 provokingVertexLast;
|
---|
1537 | int32 depthBias;
|
---|
1538 | float depthBiasClamp;
|
---|
1539 | float slopeScaledDepthBias;
|
---|
1540 | uint8 depthClipEnable;
|
---|
1541 | uint8 scissorEnable;
|
---|
1542 | SVGA3dMultisampleRastEnable multisampleEnable;
|
---|
1543 | uint8 antialiasedLineEnable;
|
---|
1544 | float lineWidth;
|
---|
1545 | uint8 lineStippleEnable;
|
---|
1546 | uint8 lineStippleFactor;
|
---|
1547 | uint16 lineStipplePattern;
|
---|
1548 | uint8 forcedSampleCount;
|
---|
1549 | uint8 mustBeZero[3];
|
---|
1550 | }
|
---|
1551 | #include "vmware_pack_end.h"
|
---|
1552 | SVGACOTableDXRasterizerStateEntry;
|
---|
1553 |
|
---|
1554 | /*
|
---|
1555 | */
|
---|
1556 | typedef
|
---|
1557 | #include "vmware_pack_begin.h"
|
---|
1558 | struct SVGA3dCmdDXDefineRasterizerState {
|
---|
1559 | SVGA3dRasterizerStateId rasterizerId;
|
---|
1560 |
|
---|
1561 | uint8 fillMode;
|
---|
1562 | SVGA3dCullMode cullMode;
|
---|
1563 | uint8 frontCounterClockwise;
|
---|
1564 | uint8 provokingVertexLast;
|
---|
1565 | int32 depthBias;
|
---|
1566 | float depthBiasClamp;
|
---|
1567 | float slopeScaledDepthBias;
|
---|
1568 | uint8 depthClipEnable;
|
---|
1569 | uint8 scissorEnable;
|
---|
1570 | SVGA3dMultisampleRastEnable multisampleEnable;
|
---|
1571 | uint8 antialiasedLineEnable;
|
---|
1572 | float lineWidth;
|
---|
1573 | uint8 lineStippleEnable;
|
---|
1574 | uint8 lineStippleFactor;
|
---|
1575 | uint16 lineStipplePattern;
|
---|
1576 | }
|
---|
1577 | #include "vmware_pack_end.h"
|
---|
1578 | SVGA3dCmdDXDefineRasterizerState;
|
---|
1579 | /* SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE */
|
---|
1580 |
|
---|
1581 | typedef
|
---|
1582 | #include "vmware_pack_begin.h"
|
---|
1583 | struct SVGA3dCmdDXDestroyRasterizerState {
|
---|
1584 | SVGA3dRasterizerStateId rasterizerId;
|
---|
1585 | }
|
---|
1586 | #include "vmware_pack_end.h"
|
---|
1587 | SVGA3dCmdDXDestroyRasterizerState;
|
---|
1588 | /* SVGA_3D_CMD_DX_DESTROY_RASTERIZER_STATE */
|
---|
1589 |
|
---|
1590 | typedef
|
---|
1591 | #include "vmware_pack_begin.h"
|
---|
1592 | struct {
|
---|
1593 | SVGA3dFilter filter;
|
---|
1594 | uint8 addressU;
|
---|
1595 | uint8 addressV;
|
---|
1596 | uint8 addressW;
|
---|
1597 | uint8 pad0;
|
---|
1598 | float mipLODBias;
|
---|
1599 | uint8 maxAnisotropy;
|
---|
1600 | SVGA3dComparisonFunc comparisonFunc;
|
---|
1601 | uint16 pad1;
|
---|
1602 | SVGA3dRGBAFloat borderColor;
|
---|
1603 | float minLOD;
|
---|
1604 | float maxLOD;
|
---|
1605 | uint32 pad2[6];
|
---|
1606 | }
|
---|
1607 | #include "vmware_pack_end.h"
|
---|
1608 | SVGACOTableDXSamplerEntry;
|
---|
1609 |
|
---|
1610 | /*
|
---|
1611 | */
|
---|
1612 | typedef
|
---|
1613 | #include "vmware_pack_begin.h"
|
---|
1614 | struct SVGA3dCmdDXDefineSamplerState {
|
---|
1615 | SVGA3dSamplerId samplerId;
|
---|
1616 | SVGA3dFilter filter;
|
---|
1617 | uint8 addressU;
|
---|
1618 | uint8 addressV;
|
---|
1619 | uint8 addressW;
|
---|
1620 | uint8 pad0;
|
---|
1621 | float mipLODBias;
|
---|
1622 | uint8 maxAnisotropy;
|
---|
1623 | SVGA3dComparisonFunc comparisonFunc;
|
---|
1624 | uint16 pad1;
|
---|
1625 | SVGA3dRGBAFloat borderColor;
|
---|
1626 | float minLOD;
|
---|
1627 | float maxLOD;
|
---|
1628 | }
|
---|
1629 | #include "vmware_pack_end.h"
|
---|
1630 | SVGA3dCmdDXDefineSamplerState; /* SVGA_3D_CMD_DX_DEFINE_SAMPLER_STATE */
|
---|
1631 |
|
---|
1632 | typedef
|
---|
1633 | #include "vmware_pack_begin.h"
|
---|
1634 | struct SVGA3dCmdDXDestroySamplerState {
|
---|
1635 | SVGA3dSamplerId samplerId;
|
---|
1636 | }
|
---|
1637 | #include "vmware_pack_end.h"
|
---|
1638 | SVGA3dCmdDXDestroySamplerState; /* SVGA_3D_CMD_DX_DESTROY_SAMPLER_STATE */
|
---|
1639 |
|
---|
1640 |
|
---|
1641 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_UNDEFINED 0
|
---|
1642 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_POSITION 1
|
---|
1643 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_CLIP_DISTANCE 2
|
---|
1644 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_CULL_DISTANCE 3
|
---|
1645 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_RENDER_TARGET_ARRAY_INDEX 4
|
---|
1646 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_VIEWPORT_ARRAY_INDEX 5
|
---|
1647 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_VERTEX_ID 6
|
---|
1648 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_PRIMITIVE_ID 7
|
---|
1649 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_INSTANCE_ID 8
|
---|
1650 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_IS_FRONT_FACE 9
|
---|
1651 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_SAMPLE_INDEX 10
|
---|
1652 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR 11
|
---|
1653 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR 12
|
---|
1654 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR 13
|
---|
1655 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR 14
|
---|
1656 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_U_INSIDE_TESSFACTOR 15
|
---|
1657 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_QUAD_V_INSIDE_TESSFACTOR 16
|
---|
1658 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR 17
|
---|
1659 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR 18
|
---|
1660 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR 19
|
---|
1661 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_TRI_INSIDE_TESSFACTOR 20
|
---|
1662 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_LINE_DETAIL_TESSFACTOR 21
|
---|
1663 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_FINAL_LINE_DENSITY_TESSFACTOR 22
|
---|
1664 | #define SVGADX_SIGNATURE_SEMANTIC_NAME_MAX 23
|
---|
1665 | typedef uint32 SVGA3dDXSignatureSemanticName;
|
---|
1666 |
|
---|
1667 | #define SVGADX_SIGNATURE_REGISTER_COMPONENT_UNKNOWN 0
|
---|
1668 | typedef uint32 SVGA3dDXSignatureRegisterComponentType;
|
---|
1669 |
|
---|
1670 | #define SVGADX_SIGNATURE_MIN_PRECISION_DEFAULT 0
|
---|
1671 | typedef uint32 SVGA3dDXSignatureMinPrecision;
|
---|
1672 |
|
---|
1673 | typedef
|
---|
1674 | #include "vmware_pack_begin.h"
|
---|
1675 | struct SVGA3dDXSignatureEntry {
|
---|
1676 | uint32 registerIndex;
|
---|
1677 | SVGA3dDXSignatureSemanticName semanticName;
|
---|
1678 | uint32 mask; /* Lower 4 bits represent X, Y, Z, W channels */
|
---|
1679 | SVGA3dDXSignatureRegisterComponentType componentType;
|
---|
1680 | SVGA3dDXSignatureMinPrecision minPrecision;
|
---|
1681 | }
|
---|
1682 | #include "vmware_pack_end.h"
|
---|
1683 | SVGA3dDXShaderSignatureEntry;
|
---|
1684 |
|
---|
1685 | #define SVGADX_SIGNATURE_HEADER_VERSION_0 0x08a92d12
|
---|
1686 |
|
---|
1687 | /*
|
---|
1688 | * The SVGA3dDXSignatureHeader structure is added after the shader
|
---|
1689 | * body in the mob that is bound to the shader. It is followed by the
|
---|
1690 | * specified number of SVGA3dDXSignatureEntry structures for each of
|
---|
1691 | * the three types of signatures in the order (input, output, patch
|
---|
1692 | * constants).
|
---|
1693 | */
|
---|
1694 | typedef
|
---|
1695 | #include "vmware_pack_begin.h"
|
---|
1696 | struct SVGA3dDXSignatureHeader {
|
---|
1697 | uint32 headerVersion;
|
---|
1698 | uint32 numInputSignatures;
|
---|
1699 | uint32 numOutputSignatures;
|
---|
1700 | uint32 numPatchConstantSignatures;
|
---|
1701 | }
|
---|
1702 | #include "vmware_pack_end.h"
|
---|
1703 | SVGA3dDXShaderSignatureHeader;
|
---|
1704 |
|
---|
1705 | typedef
|
---|
1706 | #include "vmware_pack_begin.h"
|
---|
1707 | struct SVGA3dCmdDXDefineShader {
|
---|
1708 | SVGA3dShaderId shaderId;
|
---|
1709 | SVGA3dShaderType type;
|
---|
1710 | uint32 sizeInBytes; /* Number of bytes of shader text. */
|
---|
1711 | }
|
---|
1712 | #include "vmware_pack_end.h"
|
---|
1713 | SVGA3dCmdDXDefineShader; /* SVGA_3D_CMD_DX_DEFINE_SHADER */
|
---|
1714 |
|
---|
1715 | typedef
|
---|
1716 | #include "vmware_pack_begin.h"
|
---|
1717 | struct SVGACOTableDXShaderEntry {
|
---|
1718 | SVGA3dShaderType type;
|
---|
1719 | uint32 sizeInBytes;
|
---|
1720 | uint32 offsetInBytes;
|
---|
1721 | SVGAMobId mobid;
|
---|
1722 | uint32 pad[4];
|
---|
1723 | }
|
---|
1724 | #include "vmware_pack_end.h"
|
---|
1725 | SVGACOTableDXShaderEntry;
|
---|
1726 |
|
---|
1727 | typedef
|
---|
1728 | #include "vmware_pack_begin.h"
|
---|
1729 | struct SVGA3dCmdDXDestroyShader {
|
---|
1730 | SVGA3dShaderId shaderId;
|
---|
1731 | }
|
---|
1732 | #include "vmware_pack_end.h"
|
---|
1733 | SVGA3dCmdDXDestroyShader; /* SVGA_3D_CMD_DX_DESTROY_SHADER */
|
---|
1734 |
|
---|
1735 | typedef
|
---|
1736 | #include "vmware_pack_begin.h"
|
---|
1737 | struct SVGA3dCmdDXBindShader {
|
---|
1738 | uint32 cid;
|
---|
1739 | uint32 shid;
|
---|
1740 | SVGAMobId mobid;
|
---|
1741 | uint32 offsetInBytes;
|
---|
1742 | }
|
---|
1743 | #include "vmware_pack_end.h"
|
---|
1744 | SVGA3dCmdDXBindShader; /* SVGA_3D_CMD_DX_BIND_SHADER */
|
---|
1745 |
|
---|
1746 | typedef
|
---|
1747 | #include "vmware_pack_begin.h"
|
---|
1748 | struct SVGA3dCmdDXBindAllShader {
|
---|
1749 | uint32 cid;
|
---|
1750 | SVGAMobId mobid;
|
---|
1751 | }
|
---|
1752 | #include "vmware_pack_end.h"
|
---|
1753 | SVGA3dCmdDXBindAllShader; /* SVGA_3D_CMD_DX_BIND_ALL_SHADER */
|
---|
1754 |
|
---|
1755 | typedef
|
---|
1756 | #include "vmware_pack_begin.h"
|
---|
1757 | struct SVGA3dCmdDXCondBindAllShader {
|
---|
1758 | uint32 cid;
|
---|
1759 | SVGAMobId testMobid;
|
---|
1760 | SVGAMobId mobid;
|
---|
1761 | }
|
---|
1762 | #include "vmware_pack_end.h"
|
---|
1763 | SVGA3dCmdDXCondBindAllShader; /* SVGA_3D_CMD_DX_COND_BIND_ALL_SHADER */
|
---|
1764 |
|
---|
1765 | /*
|
---|
1766 | * The maximum number of streamout decl's in each streamout entry.
|
---|
1767 | */
|
---|
1768 | #define SVGA3D_MAX_DX10_STREAMOUT_DECLS 64
|
---|
1769 | #define SVGA3D_MAX_STREAMOUT_DECLS 512
|
---|
1770 |
|
---|
1771 | typedef
|
---|
1772 | #include "vmware_pack_begin.h"
|
---|
1773 | struct SVGA3dStreamOutputDeclarationEntry {
|
---|
1774 | uint32 outputSlot;
|
---|
1775 | uint32 registerIndex;
|
---|
1776 | uint8 registerMask;
|
---|
1777 | uint8 pad0;
|
---|
1778 | uint16 pad1;
|
---|
1779 | uint32 stream;
|
---|
1780 | }
|
---|
1781 | #include "vmware_pack_end.h"
|
---|
1782 | SVGA3dStreamOutputDeclarationEntry;
|
---|
1783 |
|
---|
1784 | typedef
|
---|
1785 | #include "vmware_pack_begin.h"
|
---|
1786 | struct SVGAOTableStreamOutputEntry {
|
---|
1787 | uint32 numOutputStreamEntries;
|
---|
1788 | SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_DX10_STREAMOUT_DECLS];
|
---|
1789 | uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
|
---|
1790 | uint32 rasterizedStream;
|
---|
1791 | uint32 numOutputStreamStrides;
|
---|
1792 | uint32 mobid;
|
---|
1793 | uint32 offsetInBytes;
|
---|
1794 | uint8 usesMob;
|
---|
1795 | uint8 pad0;
|
---|
1796 | uint16 pad1;
|
---|
1797 | uint32 pad2[246];
|
---|
1798 | }
|
---|
1799 | #include "vmware_pack_end.h"
|
---|
1800 | SVGACOTableDXStreamOutputEntry;
|
---|
1801 |
|
---|
1802 | typedef
|
---|
1803 | #include "vmware_pack_begin.h"
|
---|
1804 | struct SVGA3dCmdDXDefineStreamOutput {
|
---|
1805 | SVGA3dStreamOutputId soid;
|
---|
1806 | uint32 numOutputStreamEntries;
|
---|
1807 | SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_DX10_STREAMOUT_DECLS];
|
---|
1808 | uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
|
---|
1809 | uint32 rasterizedStream;
|
---|
1810 | }
|
---|
1811 | #include "vmware_pack_end.h"
|
---|
1812 | SVGA3dCmdDXDefineStreamOutput; /* SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT */
|
---|
1813 |
|
---|
1814 | /*
|
---|
1815 | * Version 2 needed in order to start validating and using the
|
---|
1816 | * rasterizedStream field. Unfortunately the device wasn't validating
|
---|
1817 | * or using this field and the driver wasn't initializing it in shipped
|
---|
1818 | * code, so a new version of the command is needed to allow that code
|
---|
1819 | * to continue to work. Also added new numOutputStreamStrides field.
|
---|
1820 | */
|
---|
1821 |
|
---|
1822 | #define SVGA3D_DX_SO_NO_RASTERIZED_STREAM 0xFFFFFFFF
|
---|
1823 |
|
---|
1824 | typedef
|
---|
1825 | #include "vmware_pack_begin.h"
|
---|
1826 | struct SVGA3dCmdDXDefineStreamOutputWithMob {
|
---|
1827 | SVGA3dStreamOutputId soid;
|
---|
1828 | uint32 numOutputStreamEntries;
|
---|
1829 | uint32 numOutputStreamStrides;
|
---|
1830 | uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
|
---|
1831 | uint32 rasterizedStream;
|
---|
1832 | }
|
---|
1833 | #include "vmware_pack_end.h"
|
---|
1834 | SVGA3dCmdDXDefineStreamOutputWithMob;
|
---|
1835 | /* SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT_WITH_MOB */
|
---|
1836 |
|
---|
1837 | typedef
|
---|
1838 | #include "vmware_pack_begin.h"
|
---|
1839 | struct SVGA3dCmdDXBindStreamOutput {
|
---|
1840 | SVGA3dStreamOutputId soid;
|
---|
1841 | uint32 mobid;
|
---|
1842 | uint32 offsetInBytes;
|
---|
1843 | uint32 sizeInBytes;
|
---|
1844 | }
|
---|
1845 | #include "vmware_pack_end.h"
|
---|
1846 | SVGA3dCmdDXBindStreamOutput; /* SVGA_3D_CMD_DX_BIND_STREAMOUTPUT */
|
---|
1847 |
|
---|
1848 | typedef
|
---|
1849 | #include "vmware_pack_begin.h"
|
---|
1850 | struct SVGA3dCmdDXDestroyStreamOutput {
|
---|
1851 | SVGA3dStreamOutputId soid;
|
---|
1852 | }
|
---|
1853 | #include "vmware_pack_end.h"
|
---|
1854 | SVGA3dCmdDXDestroyStreamOutput; /* SVGA_3D_CMD_DX_DESTROY_STREAMOUTPUT */
|
---|
1855 |
|
---|
1856 | typedef
|
---|
1857 | #include "vmware_pack_begin.h"
|
---|
1858 | struct SVGA3dCmdDXSetStreamOutput {
|
---|
1859 | SVGA3dStreamOutputId soid;
|
---|
1860 | }
|
---|
1861 | #include "vmware_pack_end.h"
|
---|
1862 | SVGA3dCmdDXSetStreamOutput; /* SVGA_3D_CMD_DX_SET_STREAMOUTPUT */
|
---|
1863 |
|
---|
1864 | typedef
|
---|
1865 | #include "vmware_pack_begin.h"
|
---|
1866 | struct SVGA3dCmdDXSetMinLOD {
|
---|
1867 | SVGA3dSurfaceId sid;
|
---|
1868 | float minLOD;
|
---|
1869 | }
|
---|
1870 | #include "vmware_pack_end.h"
|
---|
1871 | SVGA3dCmdDXSetMinLOD; /* SVGA_3D_CMD_DX_SET_MIN_LOD */
|
---|
1872 |
|
---|
1873 | typedef
|
---|
1874 | #include "vmware_pack_begin.h"
|
---|
1875 | struct {
|
---|
1876 | uint64 value;
|
---|
1877 | uint32 mobId;
|
---|
1878 | uint32 mobOffset;
|
---|
1879 | }
|
---|
1880 | #include "vmware_pack_end.h"
|
---|
1881 | SVGA3dCmdDXMobFence64; /* SVGA_3D_CMD_DX_MOB_FENCE_64 */
|
---|
1882 |
|
---|
1883 | /*
|
---|
1884 | * SVGA3dCmdSetCOTable --
|
---|
1885 | *
|
---|
1886 | * This command allows the guest to bind a mob to a context-object table.
|
---|
1887 | */
|
---|
1888 | typedef
|
---|
1889 | #include "vmware_pack_begin.h"
|
---|
1890 | struct SVGA3dCmdDXSetCOTable {
|
---|
1891 | uint32 cid;
|
---|
1892 | uint32 mobid;
|
---|
1893 | SVGACOTableType type;
|
---|
1894 | uint32 validSizeInBytes;
|
---|
1895 | }
|
---|
1896 | #include "vmware_pack_end.h"
|
---|
1897 | SVGA3dCmdDXSetCOTable; /* SVGA_3D_CMD_DX_SET_COTABLE */
|
---|
1898 |
|
---|
1899 | /*
|
---|
1900 | * Guests using SVGA_3D_CMD_DX_GROW_COTABLE are promising that
|
---|
1901 | * the new COTable contains the same contents as the old one, except possibly
|
---|
1902 | * for some new invalid entries at the end.
|
---|
1903 | *
|
---|
1904 | * If there is an old cotable mob bound, it also has to still be valid.
|
---|
1905 | *
|
---|
1906 | * (Otherwise, guests should use the DXSetCOTableBase command.)
|
---|
1907 | */
|
---|
1908 | typedef
|
---|
1909 | #include "vmware_pack_begin.h"
|
---|
1910 | struct SVGA3dCmdDXGrowCOTable {
|
---|
1911 | uint32 cid;
|
---|
1912 | uint32 mobid;
|
---|
1913 | SVGACOTableType type;
|
---|
1914 | uint32 validSizeInBytes;
|
---|
1915 | }
|
---|
1916 | #include "vmware_pack_end.h"
|
---|
1917 | SVGA3dCmdDXGrowCOTable; /* SVGA_3D_CMD_DX_GROW_COTABLE */
|
---|
1918 |
|
---|
1919 | typedef
|
---|
1920 | #include "vmware_pack_begin.h"
|
---|
1921 | struct SVGA3dCmdDXReadbackCOTable {
|
---|
1922 | uint32 cid;
|
---|
1923 | SVGACOTableType type;
|
---|
1924 | }
|
---|
1925 | #include "vmware_pack_end.h"
|
---|
1926 | SVGA3dCmdDXReadbackCOTable; /* SVGA_3D_CMD_DX_READBACK_COTABLE */
|
---|
1927 |
|
---|
1928 | typedef
|
---|
1929 | #include "vmware_pack_begin.h"
|
---|
1930 | struct SVGA3dCOTableData {
|
---|
1931 | uint32 mobid;
|
---|
1932 | }
|
---|
1933 | #include "vmware_pack_end.h"
|
---|
1934 | SVGA3dCOTableData;
|
---|
1935 |
|
---|
1936 | typedef
|
---|
1937 | #include "vmware_pack_begin.h"
|
---|
1938 | struct SVGA3dBufferBinding {
|
---|
1939 | uint32 bufferId;
|
---|
1940 | uint32 stride;
|
---|
1941 | uint32 offset;
|
---|
1942 | }
|
---|
1943 | #include "vmware_pack_end.h"
|
---|
1944 | SVGA3dBufferBinding;
|
---|
1945 |
|
---|
1946 | typedef
|
---|
1947 | #include "vmware_pack_begin.h"
|
---|
1948 | struct SVGA3dConstantBufferBinding {
|
---|
1949 | uint32 sid;
|
---|
1950 | uint32 offsetInBytes;
|
---|
1951 | uint32 sizeInBytes;
|
---|
1952 | }
|
---|
1953 | #include "vmware_pack_end.h"
|
---|
1954 | SVGA3dConstantBufferBinding;
|
---|
1955 |
|
---|
1956 | typedef
|
---|
1957 | #include "vmware_pack_begin.h"
|
---|
1958 | struct SVGADXInputAssemblyMobFormat {
|
---|
1959 | uint32 layoutId;
|
---|
1960 | SVGA3dBufferBinding vertexBuffers[SVGA3D_DX_MAX_VERTEXBUFFERS];
|
---|
1961 | uint32 indexBufferSid;
|
---|
1962 | uint32 pad;
|
---|
1963 | uint32 indexBufferOffset;
|
---|
1964 | uint32 indexBufferFormat;
|
---|
1965 | uint32 topology;
|
---|
1966 | }
|
---|
1967 | #include "vmware_pack_end.h"
|
---|
1968 | SVGADXInputAssemblyMobFormat;
|
---|
1969 |
|
---|
1970 | typedef
|
---|
1971 | #include "vmware_pack_begin.h"
|
---|
1972 | struct SVGADXContextMobFormat {
|
---|
1973 | SVGADXInputAssemblyMobFormat inputAssembly;
|
---|
1974 |
|
---|
1975 | struct {
|
---|
1976 | uint32 blendStateId;
|
---|
1977 | uint32 blendFactor[4];
|
---|
1978 | uint32 sampleMask;
|
---|
1979 | uint32 depthStencilStateId;
|
---|
1980 | uint32 stencilRef;
|
---|
1981 | uint32 rasterizerStateId;
|
---|
1982 | uint32 depthStencilViewId;
|
---|
1983 | uint32 renderTargetViewIds[SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS];
|
---|
1984 | } renderState;
|
---|
1985 |
|
---|
1986 | uint32 pad0[8];
|
---|
1987 |
|
---|
1988 | struct {
|
---|
1989 | uint32 targets[SVGA3D_DX_MAX_SOTARGETS];
|
---|
1990 | uint32 soid;
|
---|
1991 | } streamOut;
|
---|
1992 |
|
---|
1993 | uint32 pad1[10];
|
---|
1994 |
|
---|
1995 | uint32 uavSpliceIndex;
|
---|
1996 |
|
---|
1997 | uint8 numViewports;
|
---|
1998 | uint8 numScissorRects;
|
---|
1999 | uint16 pad2[1];
|
---|
2000 |
|
---|
2001 | uint32 pad3[3];
|
---|
2002 |
|
---|
2003 | SVGA3dViewport viewports[SVGA3D_DX_MAX_VIEWPORTS];
|
---|
2004 | uint32 pad4[32];
|
---|
2005 |
|
---|
2006 | SVGASignedRect scissorRects[SVGA3D_DX_MAX_SCISSORRECTS];
|
---|
2007 | uint32 pad5[64];
|
---|
2008 |
|
---|
2009 | struct {
|
---|
2010 | uint32 queryID;
|
---|
2011 | uint32 value;
|
---|
2012 | } predication;
|
---|
2013 |
|
---|
2014 | SVGAMobId shaderIfaceMobid;
|
---|
2015 | uint32 shaderIfaceOffset;
|
---|
2016 | struct {
|
---|
2017 | uint32 shaderId;
|
---|
2018 | SVGA3dConstantBufferBinding constantBuffers[SVGA3D_DX_MAX_CONSTBUFFERS];
|
---|
2019 | uint32 shaderResources[SVGA3D_DX_MAX_SRVIEWS];
|
---|
2020 | uint32 samplers[SVGA3D_DX_MAX_SAMPLERS];
|
---|
2021 | } shaderState[SVGA3D_NUM_SHADERTYPE];
|
---|
2022 | uint32 pad6[26];
|
---|
2023 |
|
---|
2024 | SVGA3dQueryId queryID[SVGA3D_MAX_QUERY];
|
---|
2025 |
|
---|
2026 | SVGA3dCOTableData cotables[SVGA_COTABLE_MAX];
|
---|
2027 |
|
---|
2028 | uint32 pad7[64];
|
---|
2029 |
|
---|
2030 | uint32 uaViewIds[SVGA3D_DX11_1_MAX_UAVIEWS];
|
---|
2031 | uint32 csuaViewIds[SVGA3D_DX11_1_MAX_UAVIEWS];
|
---|
2032 |
|
---|
2033 | uint32 pad8[188];
|
---|
2034 | }
|
---|
2035 | #include "vmware_pack_end.h"
|
---|
2036 | SVGADXContextMobFormat;
|
---|
2037 |
|
---|
2038 | /*
|
---|
2039 | * There is conflicting documentation on max class instances (253 vs 256). The
|
---|
2040 | * lower value is the one used throughout the device, but since mob format is
|
---|
2041 | * more involved to increase if needed, conservatively use the higher one here.
|
---|
2042 | */
|
---|
2043 | #define SVGA3D_DX_MAX_CLASS_INSTANCES_PADDED 256
|
---|
2044 |
|
---|
2045 | typedef
|
---|
2046 | #include "vmware_pack_begin.h"
|
---|
2047 | struct SVGADXShaderIfaceMobFormat {
|
---|
2048 | struct {
|
---|
2049 | uint32 numClassInstances;
|
---|
2050 | uint32 iface[SVGA3D_DX_MAX_CLASS_INSTANCES_PADDED];
|
---|
2051 | SVGA3dIfaceData data[SVGA3D_DX_MAX_CLASS_INSTANCES_PADDED];
|
---|
2052 | } shaderIfaceState[SVGA3D_NUM_SHADERTYPE];
|
---|
2053 |
|
---|
2054 | uint32 pad0[1018];
|
---|
2055 | }
|
---|
2056 | #include "vmware_pack_end.h"
|
---|
2057 | SVGADXShaderIfaceMobFormat;
|
---|
2058 |
|
---|
2059 | typedef
|
---|
2060 | #include "vmware_pack_begin.h"
|
---|
2061 | struct SVGA3dCmdDXTempSetContext {
|
---|
2062 | uint32 dxcid;
|
---|
2063 | }
|
---|
2064 | #include "vmware_pack_end.h"
|
---|
2065 | SVGA3dCmdDXTempSetContext; /* SVGA_3D_CMD_DX_TEMP_SET_CONTEXT */
|
---|
2066 |
|
---|
2067 | #ifdef VBOX
|
---|
2068 | typedef struct SVGA3dCmdVBDXClearRenderTargetViewRegion
|
---|
2069 | {
|
---|
2070 | uint32 viewId;
|
---|
2071 | uint32 reserved;
|
---|
2072 | SVGA3dRGBAFloat color;
|
---|
2073 | /* followed by SVGASignedRect array */
|
---|
2074 | } SVGA3dCmdVBDXClearRenderTargetViewRegion; /* SVGA_3D_CMD_VB_DX_CLEAR_RENDERTARGET_VIEW_REGION */
|
---|
2075 | #endif /* VBOX */
|
---|
2076 |
|
---|
2077 | #endif /* _SVGA3D_DX_H_ */
|
---|