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