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