1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 
  26 
  27 
  28 
  29 
  30 
  31 
  32 
  33 #ifndef _SVGA3D_DX_H_
  34 #define _SVGA3D_DX_H_
  35 
  36 #define INCLUDE_ALLOW_MODULE
  37 #define INCLUDE_ALLOW_USERLEVEL
  38 #define INCLUDE_ALLOW_VMCORE
  39 #include "includeCheck.h"
  40 
  41 #include "svga3d_limits.h"
  42 
  43 #define SVGA3D_INPUT_MIN               0
  44 #define SVGA3D_INPUT_PER_VERTEX_DATA   0
  45 #define SVGA3D_INPUT_PER_INSTANCE_DATA 1
  46 #define SVGA3D_INPUT_MAX               2
  47 typedef uint32 SVGA3dInputClassification;
  48 
  49 #define SVGA3D_RESOURCE_TYPE_MIN      1
  50 #define SVGA3D_RESOURCE_BUFFER        1
  51 #define SVGA3D_RESOURCE_TEXTURE1D     2
  52 #define SVGA3D_RESOURCE_TEXTURE2D     3
  53 #define SVGA3D_RESOURCE_TEXTURE3D     4
  54 #define SVGA3D_RESOURCE_TEXTURECUBE   5
  55 #define SVGA3D_RESOURCE_TYPE_DX10_MAX 6
  56 #define SVGA3D_RESOURCE_BUFFEREX      6
  57 #define SVGA3D_RESOURCE_TYPE_MAX      7
  58 typedef uint32 SVGA3dResourceType;
  59 
  60 #define SVGA3D_COLOR_WRITE_ENABLE_RED     (1 << 0)
  61 #define SVGA3D_COLOR_WRITE_ENABLE_GREEN   (1 << 1)
  62 #define SVGA3D_COLOR_WRITE_ENABLE_BLUE    (1 << 2)
  63 #define SVGA3D_COLOR_WRITE_ENABLE_ALPHA   (1 << 3)
  64 #define SVGA3D_COLOR_WRITE_ENABLE_ALL     (SVGA3D_COLOR_WRITE_ENABLE_RED |   \
  65                                            SVGA3D_COLOR_WRITE_ENABLE_GREEN | \
  66                                            SVGA3D_COLOR_WRITE_ENABLE_BLUE |  \
  67                                            SVGA3D_COLOR_WRITE_ENABLE_ALPHA)
  68 typedef uint8 SVGA3dColorWriteEnable;
  69 
  70 #define SVGA3D_DEPTH_WRITE_MASK_ZERO   0
  71 #define SVGA3D_DEPTH_WRITE_MASK_ALL    1
  72 typedef uint8 SVGA3dDepthWriteMask;
  73 
  74 #define SVGA3D_FILTER_MIP_LINEAR  (1 << 0)
  75 #define SVGA3D_FILTER_MAG_LINEAR  (1 << 2)
  76 #define SVGA3D_FILTER_MIN_LINEAR  (1 << 4)
  77 #define SVGA3D_FILTER_ANISOTROPIC (1 << 6)
  78 #define SVGA3D_FILTER_COMPARE     (1 << 7)
  79 typedef uint32 SVGA3dFilter;
  80 
  81 #define SVGA3D_CULL_INVALID 0
  82 #define SVGA3D_CULL_MIN     1
  83 #define SVGA3D_CULL_NONE    1
  84 #define SVGA3D_CULL_FRONT   2
  85 #define SVGA3D_CULL_BACK    3
  86 #define SVGA3D_CULL_MAX     4
  87 typedef uint8 SVGA3dCullMode;
  88 
  89 #define SVGA3D_COMPARISON_INVALID         0
  90 #define SVGA3D_COMPARISON_MIN             1
  91 #define SVGA3D_COMPARISON_NEVER           1
  92 #define SVGA3D_COMPARISON_LESS            2
  93 #define SVGA3D_COMPARISON_EQUAL           3
  94 #define SVGA3D_COMPARISON_LESS_EQUAL      4
  95 #define SVGA3D_COMPARISON_GREATER         5
  96 #define SVGA3D_COMPARISON_NOT_EQUAL       6
  97 #define SVGA3D_COMPARISON_GREATER_EQUAL   7
  98 #define SVGA3D_COMPARISON_ALWAYS          8
  99 #define SVGA3D_COMPARISON_MAX             9
 100 typedef uint8 SVGA3dComparisonFunc;
 101 
 102 
 103 
 104 
 105 
 106 
 107 #define SVGA3D_MULTISAMPLE_RAST_DISABLE        0
 108 #define SVGA3D_MULTISAMPLE_RAST_ENABLE         1
 109 #define SVGA3D_MULTISAMPLE_RAST_DX_MAX         1
 110 #define SVGA3D_MULTISAMPLE_RAST_DISABLE_LINE   2
 111 #define SVGA3D_MULTISAMPLE_RAST_MAX            2
 112 typedef uint8 SVGA3dMultisampleRastEnable;
 113 
 114 #define SVGA3D_DX_MAX_VERTEXBUFFERS 32
 115 #define SVGA3D_DX_MAX_VERTEXINPUTREGISTERS 16
 116 #define SVGA3D_DX_SM41_MAX_VERTEXINPUTREGISTERS 32
 117 #define SVGA3D_DX_MAX_SOTARGETS 4
 118 #define SVGA3D_DX_MAX_SRVIEWS 128
 119 #define SVGA3D_DX_MAX_CONSTBUFFERS 16
 120 #define SVGA3D_DX_MAX_SAMPLERS 16
 121 
 122 #define SVGA3D_DX_MAX_CONSTBUF_BINDING_SIZE (4096 * 4 * (uint32)sizeof(uint32))
 123 
 124 typedef uint32 SVGA3dShaderResourceViewId;
 125 typedef uint32 SVGA3dRenderTargetViewId;
 126 typedef uint32 SVGA3dDepthStencilViewId;
 127 
 128 typedef uint32 SVGA3dShaderId;
 129 typedef uint32 SVGA3dElementLayoutId;
 130 typedef uint32 SVGA3dSamplerId;
 131 typedef uint32 SVGA3dBlendStateId;
 132 typedef uint32 SVGA3dDepthStencilStateId;
 133 typedef uint32 SVGA3dRasterizerStateId;
 134 typedef uint32 SVGA3dQueryId;
 135 typedef uint32 SVGA3dStreamOutputId;
 136 
 137 typedef union {
 138    struct {
 139       float r;
 140       float g;
 141       float b;
 142       float a;
 143    };
 144 
 145    float value[4];
 146 } SVGA3dRGBAFloat;
 147 
 148 typedef
 149 #include "vmware_pack_begin.h"
 150 struct {
 151    uint32 cid;
 152    SVGAMobId mobid;
 153 }
 154 #include "vmware_pack_end.h"
 155 SVGAOTableDXContextEntry;
 156 
 157 typedef
 158 #include "vmware_pack_begin.h"
 159 struct SVGA3dCmdDXDefineContext {
 160    uint32 cid;
 161 }
 162 #include "vmware_pack_end.h"
 163 SVGA3dCmdDXDefineContext;   
 164 
 165 typedef
 166 #include "vmware_pack_begin.h"
 167 struct SVGA3dCmdDXDestroyContext {
 168    uint32 cid;
 169 }
 170 #include "vmware_pack_end.h"
 171 SVGA3dCmdDXDestroyContext;   
 172 
 173 
 174 
 175 
 176 
 177 
 178 
 179 
 180 
 181 
 182 
 183 
 184 typedef
 185 #include "vmware_pack_begin.h"
 186 struct SVGA3dCmdDXBindContext {
 187    uint32 cid;
 188    SVGAMobId mobid;
 189    uint32 validContents;
 190 }
 191 #include "vmware_pack_end.h"
 192 SVGA3dCmdDXBindContext;   
 193 
 194 
 195 
 196 
 197 
 198 typedef
 199 #include "vmware_pack_begin.h"
 200 struct SVGA3dCmdDXReadbackContext {
 201    uint32 cid;
 202 }
 203 #include "vmware_pack_end.h"
 204 SVGA3dCmdDXReadbackContext;   
 205 
 206 
 207 
 208 
 209 typedef
 210 #include "vmware_pack_begin.h"
 211 struct SVGA3dCmdDXInvalidateContext {
 212    uint32 cid;
 213 }
 214 #include "vmware_pack_end.h"
 215 SVGA3dCmdDXInvalidateContext;   
 216 
 217 typedef
 218 #include "vmware_pack_begin.h"
 219 struct SVGA3dCmdDXSetSingleConstantBuffer {
 220    uint32 slot;
 221    SVGA3dShaderType type;
 222    SVGA3dSurfaceId sid;
 223    uint32 offsetInBytes;
 224    uint32 sizeInBytes;
 225 }
 226 #include "vmware_pack_end.h"
 227 SVGA3dCmdDXSetSingleConstantBuffer;
 228 
 229 
 230 typedef
 231 #include "vmware_pack_begin.h"
 232 struct SVGA3dCmdDXSetShaderResources {
 233    uint32 startView;
 234    SVGA3dShaderType type;
 235 
 236    
 237 
 238 
 239 }
 240 #include "vmware_pack_end.h"
 241 SVGA3dCmdDXSetShaderResources; 
 242 
 243 typedef
 244 #include "vmware_pack_begin.h"
 245 struct SVGA3dCmdDXSetShader {
 246    SVGA3dShaderId shaderId;
 247    SVGA3dShaderType type;
 248 }
 249 #include "vmware_pack_end.h"
 250 SVGA3dCmdDXSetShader; 
 251 
 252 typedef
 253 #include "vmware_pack_begin.h"
 254 struct SVGA3dCmdDXSetSamplers {
 255    uint32 startSampler;
 256    SVGA3dShaderType type;
 257 
 258    
 259 
 260 
 261 }
 262 #include "vmware_pack_end.h"
 263 SVGA3dCmdDXSetSamplers; 
 264 
 265 typedef
 266 #include "vmware_pack_begin.h"
 267 struct SVGA3dCmdDXDraw {
 268    uint32 vertexCount;
 269    uint32 startVertexLocation;
 270 }
 271 #include "vmware_pack_end.h"
 272 SVGA3dCmdDXDraw; 
 273 
 274 typedef
 275 #include "vmware_pack_begin.h"
 276 struct SVGA3dCmdDXDrawIndexed {
 277    uint32 indexCount;
 278    uint32 startIndexLocation;
 279    int32  baseVertexLocation;
 280 }
 281 #include "vmware_pack_end.h"
 282 SVGA3dCmdDXDrawIndexed; 
 283 
 284 typedef
 285 #include "vmware_pack_begin.h"
 286 struct SVGA3dCmdDXDrawInstanced {
 287    uint32 vertexCountPerInstance;
 288    uint32 instanceCount;
 289    uint32 startVertexLocation;
 290    uint32 startInstanceLocation;
 291 }
 292 #include "vmware_pack_end.h"
 293 SVGA3dCmdDXDrawInstanced; 
 294 
 295 typedef
 296 #include "vmware_pack_begin.h"
 297 struct SVGA3dCmdDXDrawIndexedInstanced {
 298    uint32 indexCountPerInstance;
 299    uint32 instanceCount;
 300    uint32 startIndexLocation;
 301    int32  baseVertexLocation;
 302    uint32 startInstanceLocation;
 303 }
 304 #include "vmware_pack_end.h"
 305 SVGA3dCmdDXDrawIndexedInstanced; 
 306 
 307 typedef
 308 #include "vmware_pack_begin.h"
 309 struct SVGA3dCmdDXDrawAuto {
 310    uint32 pad0;
 311 }
 312 #include "vmware_pack_end.h"
 313 SVGA3dCmdDXDrawAuto; 
 314 
 315 typedef
 316 #include "vmware_pack_begin.h"
 317 struct SVGA3dCmdDXSetInputLayout {
 318    SVGA3dElementLayoutId elementLayoutId;
 319 }
 320 #include "vmware_pack_end.h"
 321 SVGA3dCmdDXSetInputLayout; 
 322 
 323 typedef
 324 #include "vmware_pack_begin.h"
 325 struct SVGA3dVertexBuffer {
 326    SVGA3dSurfaceId sid;
 327    uint32 stride;
 328    uint32 offset;
 329 }
 330 #include "vmware_pack_end.h"
 331 SVGA3dVertexBuffer;
 332 
 333 typedef
 334 #include "vmware_pack_begin.h"
 335 struct SVGA3dCmdDXSetVertexBuffers {
 336    uint32 startBuffer;
 337    
 338 }
 339 #include "vmware_pack_end.h"
 340 SVGA3dCmdDXSetVertexBuffers; 
 341 
 342 typedef
 343 #include "vmware_pack_begin.h"
 344 struct SVGA3dCmdDXSetIndexBuffer {
 345    SVGA3dSurfaceId sid;
 346    SVGA3dSurfaceFormat format;
 347    uint32 offset;
 348 }
 349 #include "vmware_pack_end.h"
 350 SVGA3dCmdDXSetIndexBuffer; 
 351 
 352 typedef
 353 #include "vmware_pack_begin.h"
 354 struct SVGA3dCmdDXSetTopology {
 355    SVGA3dPrimitiveType topology;
 356 }
 357 #include "vmware_pack_end.h"
 358 SVGA3dCmdDXSetTopology; 
 359 
 360 typedef
 361 #include "vmware_pack_begin.h"
 362 struct SVGA3dCmdDXSetRenderTargets {
 363    SVGA3dDepthStencilViewId depthStencilViewId;
 364    
 365 }
 366 #include "vmware_pack_end.h"
 367 SVGA3dCmdDXSetRenderTargets; 
 368 
 369 typedef
 370 #include "vmware_pack_begin.h"
 371 struct SVGA3dCmdDXSetBlendState {
 372    SVGA3dBlendStateId blendId;
 373    float blendFactor[4];
 374    uint32 sampleMask;
 375 }
 376 #include "vmware_pack_end.h"
 377 SVGA3dCmdDXSetBlendState; 
 378 
 379 typedef
 380 #include "vmware_pack_begin.h"
 381 struct SVGA3dCmdDXSetDepthStencilState {
 382    SVGA3dDepthStencilStateId depthStencilId;
 383    uint32 stencilRef;
 384 }
 385 #include "vmware_pack_end.h"
 386 SVGA3dCmdDXSetDepthStencilState; 
 387 
 388 typedef
 389 #include "vmware_pack_begin.h"
 390 struct SVGA3dCmdDXSetRasterizerState {
 391    SVGA3dRasterizerStateId rasterizerId;
 392 }
 393 #include "vmware_pack_end.h"
 394 SVGA3dCmdDXSetRasterizerState; 
 395 
 396 #define SVGA3D_DXQUERY_FLAG_PREDICATEHINT (1 << 0)
 397 typedef uint32 SVGA3dDXQueryFlags;
 398 
 399 
 400 
 401 
 402 
 403 
 404 #define SVGADX_QDSTATE_INVALID   ((uint8)-1) 
 405 #define SVGADX_QDSTATE_MIN       0
 406 #define SVGADX_QDSTATE_IDLE      0   
 407 #define SVGADX_QDSTATE_ACTIVE    1   
 408 #define SVGADX_QDSTATE_PENDING   2   
 409 #define SVGADX_QDSTATE_FINISHED  3   
 410 #define SVGADX_QDSTATE_MAX       4
 411 typedef uint8 SVGADXQueryDeviceState;
 412 
 413 typedef
 414 #include "vmware_pack_begin.h"
 415 struct {
 416    SVGA3dQueryTypeUint8 type;
 417    uint16 pad0;
 418    SVGADXQueryDeviceState state;
 419    SVGA3dDXQueryFlags flags;
 420    SVGAMobId mobid;
 421    uint32 offset;
 422 }
 423 #include "vmware_pack_end.h"
 424 SVGACOTableDXQueryEntry;
 425 
 426 typedef
 427 #include "vmware_pack_begin.h"
 428 struct SVGA3dCmdDXDefineQuery {
 429    SVGA3dQueryId queryId;
 430    SVGA3dQueryType type;
 431    SVGA3dDXQueryFlags flags;
 432 }
 433 #include "vmware_pack_end.h"
 434 SVGA3dCmdDXDefineQuery; 
 435 
 436 typedef
 437 #include "vmware_pack_begin.h"
 438 struct SVGA3dCmdDXDestroyQuery {
 439    SVGA3dQueryId queryId;
 440 }
 441 #include "vmware_pack_end.h"
 442 SVGA3dCmdDXDestroyQuery; 
 443 
 444 typedef
 445 #include "vmware_pack_begin.h"
 446 struct SVGA3dCmdDXBindQuery {
 447    SVGA3dQueryId queryId;
 448    SVGAMobId mobid;
 449 }
 450 #include "vmware_pack_end.h"
 451 SVGA3dCmdDXBindQuery; 
 452 
 453 typedef
 454 #include "vmware_pack_begin.h"
 455 struct SVGA3dCmdDXSetQueryOffset {
 456    SVGA3dQueryId queryId;
 457    uint32 mobOffset;
 458 }
 459 #include "vmware_pack_end.h"
 460 SVGA3dCmdDXSetQueryOffset; 
 461 
 462 typedef
 463 #include "vmware_pack_begin.h"
 464 struct SVGA3dCmdDXBeginQuery {
 465    SVGA3dQueryId queryId;
 466 }
 467 #include "vmware_pack_end.h"
 468 SVGA3dCmdDXBeginQuery; 
 469 
 470 typedef
 471 #include "vmware_pack_begin.h"
 472 struct SVGA3dCmdDXEndQuery {
 473    SVGA3dQueryId queryId;
 474 }
 475 #include "vmware_pack_end.h"
 476 SVGA3dCmdDXEndQuery; 
 477 
 478 typedef
 479 #include "vmware_pack_begin.h"
 480 struct SVGA3dCmdDXReadbackQuery {
 481    SVGA3dQueryId queryId;
 482 }
 483 #include "vmware_pack_end.h"
 484 SVGA3dCmdDXReadbackQuery; 
 485 
 486 typedef
 487 #include "vmware_pack_begin.h"
 488 struct SVGA3dCmdDXMoveQuery {
 489    SVGA3dQueryId queryId;
 490    SVGAMobId mobid;
 491    uint32 mobOffset;
 492 }
 493 #include "vmware_pack_end.h"
 494 SVGA3dCmdDXMoveQuery; 
 495 
 496 typedef
 497 #include "vmware_pack_begin.h"
 498 struct SVGA3dCmdDXBindAllQuery {
 499    uint32 cid;
 500    SVGAMobId mobid;
 501 }
 502 #include "vmware_pack_end.h"
 503 SVGA3dCmdDXBindAllQuery; 
 504 
 505 typedef
 506 #include "vmware_pack_begin.h"
 507 struct SVGA3dCmdDXReadbackAllQuery {
 508    uint32 cid;
 509 }
 510 #include "vmware_pack_end.h"
 511 SVGA3dCmdDXReadbackAllQuery; 
 512 
 513 typedef
 514 #include "vmware_pack_begin.h"
 515 struct SVGA3dCmdDXSetPredication {
 516    SVGA3dQueryId queryId;
 517    uint32 predicateValue;
 518 }
 519 #include "vmware_pack_end.h"
 520 SVGA3dCmdDXSetPredication; 
 521 
 522 typedef
 523 #include "vmware_pack_begin.h"
 524 struct MKS3dDXSOState {
 525    uint32 offset;       
 526    uint32 intOffset;    
 527    uint32 vertexCount;  
 528    uint32 sizeInBytes;  
 529 }
 530 #include "vmware_pack_end.h"
 531 SVGA3dDXSOState;
 532 
 533 
 534 #define SVGA3D_DX_SO_OFFSET_APPEND ((uint32) ~0u)
 535 
 536 typedef
 537 #include "vmware_pack_begin.h"
 538 struct SVGA3dSoTarget {
 539    SVGA3dSurfaceId sid;
 540    uint32 offset;
 541    uint32 sizeInBytes;
 542 }
 543 #include "vmware_pack_end.h"
 544 SVGA3dSoTarget;
 545 
 546 typedef
 547 #include "vmware_pack_begin.h"
 548 struct SVGA3dCmdDXSetSOTargets {
 549    uint32 pad0;
 550    
 551 }
 552 #include "vmware_pack_end.h"
 553 SVGA3dCmdDXSetSOTargets; 
 554 
 555 typedef
 556 #include "vmware_pack_begin.h"
 557 struct SVGA3dViewport
 558 {
 559    float x;
 560    float y;
 561    float width;
 562    float height;
 563    float minDepth;
 564    float maxDepth;
 565 }
 566 #include "vmware_pack_end.h"
 567 SVGA3dViewport;
 568 
 569 typedef
 570 #include "vmware_pack_begin.h"
 571 struct SVGA3dCmdDXSetViewports {
 572    uint32 pad0;
 573    
 574 }
 575 #include "vmware_pack_end.h"
 576 SVGA3dCmdDXSetViewports; 
 577 
 578 #define SVGA3D_DX_MAX_VIEWPORTS  16
 579 
 580 typedef
 581 #include "vmware_pack_begin.h"
 582 struct SVGA3dCmdDXSetScissorRects {
 583    uint32 pad0;
 584    
 585 }
 586 #include "vmware_pack_end.h"
 587 SVGA3dCmdDXSetScissorRects; 
 588 
 589 #define SVGA3D_DX_MAX_SCISSORRECTS  16
 590 
 591 typedef
 592 #include "vmware_pack_begin.h"
 593 struct SVGA3dCmdDXClearRenderTargetView {
 594    SVGA3dRenderTargetViewId renderTargetViewId;
 595    SVGA3dRGBAFloat rgba;
 596 }
 597 #include "vmware_pack_end.h"
 598 SVGA3dCmdDXClearRenderTargetView; 
 599 
 600 typedef
 601 #include "vmware_pack_begin.h"
 602 struct SVGA3dCmdDXClearDepthStencilView {
 603    uint16 flags;
 604    uint16 stencil;
 605    SVGA3dDepthStencilViewId depthStencilViewId;
 606    float depth;
 607 }
 608 #include "vmware_pack_end.h"
 609 SVGA3dCmdDXClearDepthStencilView; 
 610 
 611 typedef
 612 #include "vmware_pack_begin.h"
 613 struct SVGA3dCmdDXPredCopyRegion {
 614    SVGA3dSurfaceId dstSid;
 615    uint32 dstSubResource;
 616    SVGA3dSurfaceId srcSid;
 617    uint32 srcSubResource;
 618    SVGA3dCopyBox box;
 619 }
 620 #include "vmware_pack_end.h"
 621 SVGA3dCmdDXPredCopyRegion;
 622 
 623 
 624 typedef
 625 #include "vmware_pack_begin.h"
 626 struct SVGA3dCmdDXPredCopy {
 627    SVGA3dSurfaceId dstSid;
 628    SVGA3dSurfaceId srcSid;
 629 }
 630 #include "vmware_pack_end.h"
 631 SVGA3dCmdDXPredCopy; 
 632 
 633 typedef
 634 #include "vmware_pack_begin.h"
 635 struct SVGA3dCmdDXPredConvertRegion {
 636    SVGA3dSurfaceId dstSid;
 637    uint32 dstSubResource;
 638    SVGA3dBox destBox;
 639    SVGA3dSurfaceId srcSid;
 640    uint32 srcSubResource;
 641    SVGA3dBox srcBox;
 642 }
 643 #include "vmware_pack_end.h"
 644 SVGA3dCmdDXPredConvertRegion; 
 645 
 646 typedef
 647 #include "vmware_pack_begin.h"
 648 struct SVGA3dCmdDXPredConvert {
 649    SVGA3dSurfaceId dstSid;
 650    SVGA3dSurfaceId srcSid;
 651 }
 652 #include "vmware_pack_end.h"
 653 SVGA3dCmdDXPredConvert; 
 654 
 655 typedef
 656 #include "vmware_pack_begin.h"
 657 struct SVGA3dCmdDXBufferCopy {
 658    SVGA3dSurfaceId dest;
 659    SVGA3dSurfaceId src;
 660    uint32 destX;
 661    uint32 srcX;
 662    uint32 width;
 663 }
 664 #include "vmware_pack_end.h"
 665 SVGA3dCmdDXBufferCopy;
 666 
 667 
 668 
 669 
 670 
 671 
 672 typedef
 673 #include "vmware_pack_begin.h"
 674 struct {
 675    SVGA3dSurfaceId dstSid;
 676    uint32 dstSubResource;
 677    SVGA3dSurfaceId srcSid;
 678    uint32 srcSubResource;
 679    SVGA3dSurfaceFormat copyFormat;
 680 }
 681 #include "vmware_pack_end.h"
 682 SVGA3dCmdDXResolveCopy;               
 683 
 684 
 685 
 686 
 687 
 688 typedef
 689 #include "vmware_pack_begin.h"
 690 struct {
 691    SVGA3dSurfaceId dstSid;
 692    uint32 dstSubResource;
 693    SVGA3dSurfaceId srcSid;
 694    uint32 srcSubResource;
 695    SVGA3dSurfaceFormat copyFormat;
 696 }
 697 #include "vmware_pack_end.h"
 698 SVGA3dCmdDXPredResolveCopy;           
 699 
 700 typedef uint32 SVGA3dDXPresentBltMode;
 701 #define SVGADX_PRESENTBLT_LINEAR           (1 << 0)
 702 #define SVGADX_PRESENTBLT_FORCE_SRC_SRGB   (1 << 1)
 703 #define SVGADX_PRESENTBLT_FORCE_SRC_XRBIAS (1 << 2)
 704 #define SVGADX_PRESENTBLT_MODE_MAX         (1 << 3)
 705 
 706 typedef
 707 #include "vmware_pack_begin.h"
 708 struct SVGA3dCmdDXPresentBlt {
 709    SVGA3dSurfaceId srcSid;
 710    uint32 srcSubResource;
 711    SVGA3dSurfaceId dstSid;
 712    uint32 destSubResource;
 713    SVGA3dBox boxSrc;
 714    SVGA3dBox boxDest;
 715    SVGA3dDXPresentBltMode mode;
 716 }
 717 #include "vmware_pack_end.h"
 718 SVGA3dCmdDXPresentBlt; 
 719 
 720 typedef
 721 #include "vmware_pack_begin.h"
 722 struct SVGA3dCmdDXGenMips {
 723    SVGA3dShaderResourceViewId shaderResourceViewId;
 724 }
 725 #include "vmware_pack_end.h"
 726 SVGA3dCmdDXGenMips; 
 727 
 728 
 729 
 730 
 731 
 732 typedef
 733 #include "vmware_pack_begin.h"
 734 struct SVGA3dCmdDXUpdateSubResource {
 735    SVGA3dSurfaceId sid;
 736    uint32 subResource;
 737    SVGA3dBox box;
 738 }
 739 #include "vmware_pack_end.h"
 740 SVGA3dCmdDXUpdateSubResource;   
 741 
 742 
 743 
 744 
 745 
 746 typedef
 747 #include "vmware_pack_begin.h"
 748 struct SVGA3dCmdDXReadbackSubResource {
 749    SVGA3dSurfaceId sid;
 750    uint32 subResource;
 751 }
 752 #include "vmware_pack_end.h"
 753 SVGA3dCmdDXReadbackSubResource;   
 754 
 755 
 756 
 757 
 758 
 759 typedef
 760 #include "vmware_pack_begin.h"
 761 struct SVGA3dCmdDXInvalidateSubResource {
 762    SVGA3dSurfaceId sid;
 763    uint32 subResource;
 764 }
 765 #include "vmware_pack_end.h"
 766 SVGA3dCmdDXInvalidateSubResource;   
 767 
 768 
 769 
 770 
 771 
 772 
 773 
 774 typedef
 775 #include "vmware_pack_begin.h"
 776 struct SVGA3dCmdDXTransferFromBuffer {
 777    SVGA3dSurfaceId srcSid;
 778    uint32 srcOffset;
 779    uint32 srcPitch;
 780    uint32 srcSlicePitch;
 781    SVGA3dSurfaceId destSid;
 782    uint32 destSubResource;
 783    SVGA3dBox destBox;
 784 }
 785 #include "vmware_pack_end.h"
 786 SVGA3dCmdDXTransferFromBuffer;   
 787 
 788 
 789 
 790 
 791 
 792 
 793 
 794 typedef
 795 #include "vmware_pack_begin.h"
 796 struct SVGA3dCmdDXPredTransferFromBuffer {
 797    SVGA3dSurfaceId srcSid;
 798    uint32 srcOffset;
 799    uint32 srcPitch;
 800    uint32 srcSlicePitch;
 801    SVGA3dSurfaceId destSid;
 802    uint32 destSubResource;
 803    SVGA3dBox destBox;
 804 }
 805 #include "vmware_pack_end.h"
 806 SVGA3dCmdDXPredTransferFromBuffer;
 807 
 808 
 809 
 810 typedef
 811 #include "vmware_pack_begin.h"
 812 struct SVGA3dCmdDXSurfaceCopyAndReadback {
 813    SVGA3dSurfaceId srcSid;
 814    SVGA3dSurfaceId destSid;
 815    SVGA3dCopyBox box;
 816 }
 817 #include "vmware_pack_end.h"
 818 SVGA3dCmdDXSurfaceCopyAndReadback;
 819 
 820 
 821 
 822 
 823 
 824 
 825 
 826 
 827 
 828 
 829 
 830 
 831 
 832 
 833 
 834 
 835 
 836 
 837 
 838 
 839 typedef uint32 SVGADXHintId;
 840 #define SVGA_DX_HINT_NONE              0
 841 #define SVGA_DX_HINT_PREFETCH_OBJECT   1
 842 #define SVGA_DX_HINT_PREEVICT_OBJECT   2
 843 #define SVGA_DX_HINT_PREFETCH_COBJECT  3
 844 #define SVGA_DX_HINT_PREEVICT_COBJECT  4
 845 #define SVGA_DX_HINT_MAX               5
 846 
 847 typedef
 848 #include "vmware_pack_begin.h"
 849 struct SVGAObjectRef {
 850    SVGAOTableType type;
 851    uint32 id;
 852 }
 853 #include "vmware_pack_end.h"
 854 SVGAObjectRef;
 855 
 856 typedef
 857 #include "vmware_pack_begin.h"
 858 struct SVGACObjectRef {
 859    SVGACOTableType type;
 860    uint32 cid;
 861    uint32 id;
 862 }
 863 #include "vmware_pack_end.h"
 864 SVGACObjectRef;
 865 
 866 typedef
 867 #include "vmware_pack_begin.h"
 868 struct SVGA3dCmdDXHint {
 869    SVGADXHintId hintId;
 870 
 871    
 872 
 873 
 874 }
 875 #include "vmware_pack_end.h"
 876 SVGA3dCmdDXHint;
 877 
 878 
 879 typedef
 880 #include "vmware_pack_begin.h"
 881 struct SVGA3dCmdDXBufferUpdate {
 882    SVGA3dSurfaceId sid;
 883    uint32 x;
 884    uint32 width;
 885 }
 886 #include "vmware_pack_end.h"
 887 SVGA3dCmdDXBufferUpdate;
 888 
 889 
 890 typedef
 891 #include "vmware_pack_begin.h"
 892 struct SVGA3dCmdDXSetConstantBufferOffset {
 893    uint32 slot;
 894    uint32 offsetInBytes;
 895 }
 896 #include "vmware_pack_end.h"
 897 SVGA3dCmdDXSetConstantBufferOffset;
 898 
 899 typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetVSConstantBufferOffset;
 900 
 901 
 902 typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetPSConstantBufferOffset;
 903 
 904 
 905 typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetGSConstantBufferOffset;
 906 
 907 
 908 
 909 typedef
 910 #include "vmware_pack_begin.h"
 911 struct {
 912    union {
 913       struct {
 914          uint32 firstElement;
 915          uint32 numElements;
 916          uint32 pad0;
 917          uint32 pad1;
 918       } buffer;
 919       struct {
 920          uint32 mostDetailedMip;
 921          uint32 firstArraySlice;
 922          uint32 mipLevels;
 923          uint32 arraySize;
 924       } tex; 
 925       struct {
 926          uint32 firstElement;
 927          uint32 numElements;
 928          uint32 flags;
 929          uint32 pad0;
 930       } bufferex;
 931    };
 932 }
 933 #include "vmware_pack_end.h"
 934 SVGA3dShaderResourceViewDesc;
 935 
 936 typedef
 937 #include "vmware_pack_begin.h"
 938 struct {
 939    SVGA3dSurfaceId sid;
 940    SVGA3dSurfaceFormat format;
 941    SVGA3dResourceType resourceDimension;
 942    SVGA3dShaderResourceViewDesc desc;
 943    uint32 pad;
 944 }
 945 #include "vmware_pack_end.h"
 946 SVGACOTableDXSRViewEntry;
 947 
 948 typedef
 949 #include "vmware_pack_begin.h"
 950 struct SVGA3dCmdDXDefineShaderResourceView {
 951    SVGA3dShaderResourceViewId shaderResourceViewId;
 952 
 953    SVGA3dSurfaceId sid;
 954    SVGA3dSurfaceFormat format;
 955    SVGA3dResourceType resourceDimension;
 956 
 957    SVGA3dShaderResourceViewDesc desc;
 958 }
 959 #include "vmware_pack_end.h"
 960 SVGA3dCmdDXDefineShaderResourceView;
 961 
 962 
 963 typedef
 964 #include "vmware_pack_begin.h"
 965 struct SVGA3dCmdDXDestroyShaderResourceView {
 966    SVGA3dShaderResourceViewId shaderResourceViewId;
 967 }
 968 #include "vmware_pack_end.h"
 969 SVGA3dCmdDXDestroyShaderResourceView;
 970 
 971 
 972 typedef
 973 #include "vmware_pack_begin.h"
 974 struct SVGA3dRenderTargetViewDesc {
 975    union {
 976       struct {
 977          uint32 firstElement;
 978          uint32 numElements;
 979          uint32 padding0;
 980       } buffer;
 981       struct {
 982          uint32 mipSlice;
 983          uint32 firstArraySlice;
 984          uint32 arraySize;
 985       } tex;                    
 986       struct {
 987          uint32 mipSlice;
 988          uint32 firstW;
 989          uint32 wSize;
 990       } tex3D;
 991    };
 992 }
 993 #include "vmware_pack_end.h"
 994 SVGA3dRenderTargetViewDesc;
 995 
 996 typedef
 997 #include "vmware_pack_begin.h"
 998 struct {
 999    SVGA3dSurfaceId sid;
1000    SVGA3dSurfaceFormat format;
1001    SVGA3dResourceType resourceDimension;
1002    SVGA3dRenderTargetViewDesc desc;
1003    uint32 pad[2];
1004 }
1005 #include "vmware_pack_end.h"
1006 SVGACOTableDXRTViewEntry;
1007 
1008 typedef
1009 #include "vmware_pack_begin.h"
1010 struct SVGA3dCmdDXDefineRenderTargetView {
1011    SVGA3dRenderTargetViewId renderTargetViewId;
1012 
1013    SVGA3dSurfaceId sid;
1014    SVGA3dSurfaceFormat format;
1015    SVGA3dResourceType resourceDimension;
1016 
1017    SVGA3dRenderTargetViewDesc desc;
1018 }
1019 #include "vmware_pack_end.h"
1020 SVGA3dCmdDXDefineRenderTargetView;
1021 
1022 
1023 typedef
1024 #include "vmware_pack_begin.h"
1025 struct SVGA3dCmdDXDestroyRenderTargetView {
1026    SVGA3dRenderTargetViewId renderTargetViewId;
1027 }
1028 #include "vmware_pack_end.h"
1029 SVGA3dCmdDXDestroyRenderTargetView;
1030 
1031 
1032 
1033 
1034 #define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_DEPTH   0x01
1035 #define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_STENCIL 0x02
1036 #define SVGA3D_DXDSVIEW_CREATE_FLAG_MASK         0x03
1037 typedef uint8 SVGA3DCreateDSViewFlags;
1038 
1039 typedef
1040 #include "vmware_pack_begin.h"
1041 struct {
1042    SVGA3dSurfaceId sid;
1043    SVGA3dSurfaceFormat format;
1044    SVGA3dResourceType resourceDimension;
1045    uint32 mipSlice;
1046    uint32 firstArraySlice;
1047    uint32 arraySize;
1048    SVGA3DCreateDSViewFlags flags;
1049    uint8 pad0;
1050    uint16 pad1;
1051    uint32 pad2;
1052 }
1053 #include "vmware_pack_end.h"
1054 SVGACOTableDXDSViewEntry;
1055 
1056 typedef
1057 #include "vmware_pack_begin.h"
1058 struct SVGA3dCmdDXDefineDepthStencilView {
1059    SVGA3dDepthStencilViewId depthStencilViewId;
1060 
1061    SVGA3dSurfaceId sid;
1062    SVGA3dSurfaceFormat format;
1063    SVGA3dResourceType resourceDimension;
1064    uint32 mipSlice;
1065    uint32 firstArraySlice;
1066    uint32 arraySize;
1067    SVGA3DCreateDSViewFlags flags;
1068    uint8 pad0;
1069    uint16 pad1;
1070 }
1071 #include "vmware_pack_end.h"
1072 SVGA3dCmdDXDefineDepthStencilView;
1073 
1074 
1075 typedef
1076 #include "vmware_pack_begin.h"
1077 struct SVGA3dCmdDXDestroyDepthStencilView {
1078    SVGA3dDepthStencilViewId depthStencilViewId;
1079 }
1080 #include "vmware_pack_end.h"
1081 SVGA3dCmdDXDestroyDepthStencilView;
1082 
1083 
1084 typedef
1085 #include "vmware_pack_begin.h"
1086 struct SVGA3dInputElementDesc {
1087    uint32 inputSlot;
1088    uint32 alignedByteOffset;
1089    SVGA3dSurfaceFormat format;
1090    SVGA3dInputClassification inputSlotClass;
1091    uint32 instanceDataStepRate;
1092    uint32 inputRegister;
1093 }
1094 #include "vmware_pack_end.h"
1095 SVGA3dInputElementDesc;
1096 
1097 typedef
1098 #include "vmware_pack_begin.h"
1099 struct {
1100    uint32 elid;
1101    uint32 numDescs;
1102    SVGA3dInputElementDesc desc[32];
1103    uint32 pad[62];
1104 }
1105 #include "vmware_pack_end.h"
1106 SVGACOTableDXElementLayoutEntry;
1107 
1108 typedef
1109 #include "vmware_pack_begin.h"
1110 struct SVGA3dCmdDXDefineElementLayout {
1111    SVGA3dElementLayoutId elementLayoutId;
1112    
1113 }
1114 #include "vmware_pack_end.h"
1115 SVGA3dCmdDXDefineElementLayout;
1116 
1117 
1118 typedef
1119 #include "vmware_pack_begin.h"
1120 struct SVGA3dCmdDXDestroyElementLayout {
1121    SVGA3dElementLayoutId elementLayoutId;
1122 }
1123 #include "vmware_pack_end.h"
1124 SVGA3dCmdDXDestroyElementLayout;
1125 
1126 
1127 
1128 #define SVGA3D_DX_MAX_RENDER_TARGETS 8
1129 
1130 typedef
1131 #include "vmware_pack_begin.h"
1132 struct SVGA3dDXBlendStatePerRT {
1133       uint8 blendEnable;
1134       uint8 srcBlend;
1135       uint8 destBlend;
1136       uint8 blendOp;
1137       uint8 srcBlendAlpha;
1138       uint8 destBlendAlpha;
1139       uint8 blendOpAlpha;
1140       SVGA3dColorWriteEnable renderTargetWriteMask;
1141       uint8 logicOpEnable;
1142       uint8 logicOp;
1143       uint16 pad0;
1144 }
1145 #include "vmware_pack_end.h"
1146 SVGA3dDXBlendStatePerRT;
1147 
1148 typedef
1149 #include "vmware_pack_begin.h"
1150 struct {
1151    uint8 alphaToCoverageEnable;
1152    uint8 independentBlendEnable;
1153    uint16 pad0;
1154    SVGA3dDXBlendStatePerRT perRT[SVGA3D_MAX_RENDER_TARGETS];
1155    uint32 pad1[7];
1156 }
1157 #include "vmware_pack_end.h"
1158 SVGACOTableDXBlendStateEntry;
1159 
1160 
1161 
1162 typedef
1163 #include "vmware_pack_begin.h"
1164 struct SVGA3dCmdDXDefineBlendState {
1165    SVGA3dBlendStateId blendId;
1166    uint8 alphaToCoverageEnable;
1167    uint8 independentBlendEnable;
1168    uint16 pad0;
1169    SVGA3dDXBlendStatePerRT perRT[SVGA3D_MAX_RENDER_TARGETS];
1170 }
1171 #include "vmware_pack_end.h"
1172 SVGA3dCmdDXDefineBlendState; 
1173 
1174 typedef
1175 #include "vmware_pack_begin.h"
1176 struct SVGA3dCmdDXDestroyBlendState {
1177    SVGA3dBlendStateId blendId;
1178 }
1179 #include "vmware_pack_end.h"
1180 SVGA3dCmdDXDestroyBlendState; 
1181 
1182 typedef
1183 #include "vmware_pack_begin.h"
1184 struct {
1185    uint8 depthEnable;
1186    SVGA3dDepthWriteMask depthWriteMask;
1187    SVGA3dComparisonFunc depthFunc;
1188    uint8 stencilEnable;
1189    uint8 frontEnable;
1190    uint8 backEnable;
1191    uint8 stencilReadMask;
1192    uint8 stencilWriteMask;
1193 
1194    uint8 frontStencilFailOp;
1195    uint8 frontStencilDepthFailOp;
1196    uint8 frontStencilPassOp;
1197    SVGA3dComparisonFunc frontStencilFunc;
1198 
1199    uint8 backStencilFailOp;
1200    uint8 backStencilDepthFailOp;
1201    uint8 backStencilPassOp;
1202    SVGA3dComparisonFunc backStencilFunc;
1203 }
1204 #include "vmware_pack_end.h"
1205 SVGACOTableDXDepthStencilEntry;
1206 
1207 
1208 
1209 typedef
1210 #include "vmware_pack_begin.h"
1211 struct SVGA3dCmdDXDefineDepthStencilState {
1212    SVGA3dDepthStencilStateId depthStencilId;
1213 
1214    uint8 depthEnable;
1215    SVGA3dDepthWriteMask depthWriteMask;
1216    SVGA3dComparisonFunc depthFunc;
1217    uint8 stencilEnable;
1218    uint8 frontEnable;
1219    uint8 backEnable;
1220    uint8 stencilReadMask;
1221    uint8 stencilWriteMask;
1222 
1223    uint8 frontStencilFailOp;
1224    uint8 frontStencilDepthFailOp;
1225    uint8 frontStencilPassOp;
1226    SVGA3dComparisonFunc frontStencilFunc;
1227 
1228    uint8 backStencilFailOp;
1229    uint8 backStencilDepthFailOp;
1230    uint8 backStencilPassOp;
1231    SVGA3dComparisonFunc backStencilFunc;
1232 }
1233 #include "vmware_pack_end.h"
1234 SVGA3dCmdDXDefineDepthStencilState;
1235 
1236 
1237 typedef
1238 #include "vmware_pack_begin.h"
1239 struct SVGA3dCmdDXDestroyDepthStencilState {
1240    SVGA3dDepthStencilStateId depthStencilId;
1241 }
1242 #include "vmware_pack_end.h"
1243 SVGA3dCmdDXDestroyDepthStencilState;
1244 
1245 
1246 typedef
1247 #include "vmware_pack_begin.h"
1248 struct {
1249    uint8 fillMode;
1250    SVGA3dCullMode cullMode;
1251    uint8 frontCounterClockwise;
1252    uint8 provokingVertexLast;
1253    int32 depthBias;
1254    float depthBiasClamp;
1255    float slopeScaledDepthBias;
1256    uint8 depthClipEnable;
1257    uint8 scissorEnable;
1258    SVGA3dMultisampleRastEnable multisampleEnable;
1259    uint8 antialiasedLineEnable;
1260    float lineWidth;
1261    uint8 lineStippleEnable;
1262    uint8 lineStippleFactor;
1263    uint16 lineStipplePattern;
1264    uint32 forcedSampleCount;
1265 }
1266 #include "vmware_pack_end.h"
1267 SVGACOTableDXRasterizerStateEntry;
1268 
1269 
1270 
1271 typedef
1272 #include "vmware_pack_begin.h"
1273 struct SVGA3dCmdDXDefineRasterizerState {
1274    SVGA3dRasterizerStateId rasterizerId;
1275 
1276    uint8 fillMode;
1277    SVGA3dCullMode cullMode;
1278    uint8 frontCounterClockwise;
1279    uint8 provokingVertexLast;
1280    int32 depthBias;
1281    float depthBiasClamp;
1282    float slopeScaledDepthBias;
1283    uint8 depthClipEnable;
1284    uint8 scissorEnable;
1285    SVGA3dMultisampleRastEnable multisampleEnable;
1286    uint8 antialiasedLineEnable;
1287    float lineWidth;
1288    uint8 lineStippleEnable;
1289    uint8 lineStippleFactor;
1290    uint16 lineStipplePattern;
1291 }
1292 #include "vmware_pack_end.h"
1293 SVGA3dCmdDXDefineRasterizerState;
1294 
1295 
1296 typedef
1297 #include "vmware_pack_begin.h"
1298 struct SVGA3dCmdDXDestroyRasterizerState {
1299    SVGA3dRasterizerStateId rasterizerId;
1300 }
1301 #include "vmware_pack_end.h"
1302 SVGA3dCmdDXDestroyRasterizerState;
1303 
1304 
1305 typedef
1306 #include "vmware_pack_begin.h"
1307 struct {
1308    SVGA3dFilter filter;
1309    uint8 addressU;
1310    uint8 addressV;
1311    uint8 addressW;
1312    uint8 pad0;
1313    float mipLODBias;
1314    uint8 maxAnisotropy;
1315    SVGA3dComparisonFunc comparisonFunc;
1316    uint16 pad1;
1317    SVGA3dRGBAFloat borderColor;
1318    float minLOD;
1319    float maxLOD;
1320    uint32 pad2[6];
1321 }
1322 #include "vmware_pack_end.h"
1323 SVGACOTableDXSamplerEntry;
1324 
1325 
1326 
1327 typedef
1328 #include "vmware_pack_begin.h"
1329 struct SVGA3dCmdDXDefineSamplerState {
1330    SVGA3dSamplerId samplerId;
1331    SVGA3dFilter filter;
1332    uint8 addressU;
1333    uint8 addressV;
1334    uint8 addressW;
1335    uint8 pad0;
1336    float mipLODBias;
1337    uint8 maxAnisotropy;
1338    SVGA3dComparisonFunc comparisonFunc;
1339    uint16 pad1;
1340    SVGA3dRGBAFloat borderColor;
1341    float minLOD;
1342    float maxLOD;
1343 }
1344 #include "vmware_pack_end.h"
1345 SVGA3dCmdDXDefineSamplerState; 
1346 
1347 typedef
1348 #include "vmware_pack_begin.h"
1349 struct SVGA3dCmdDXDestroySamplerState {
1350    SVGA3dSamplerId samplerId;
1351 }
1352 #include "vmware_pack_end.h"
1353 SVGA3dCmdDXDestroySamplerState; 
1354 
1355 typedef
1356 #include "vmware_pack_begin.h"
1357 struct SVGA3dCmdDXDefineShader {
1358    SVGA3dShaderId shaderId;
1359    SVGA3dShaderType type;
1360    uint32 sizeInBytes; 
1361 }
1362 #include "vmware_pack_end.h"
1363 SVGA3dCmdDXDefineShader; 
1364 
1365 typedef
1366 #include "vmware_pack_begin.h"
1367 struct SVGACOTableDXShaderEntry {
1368    SVGA3dShaderType type;
1369    uint32 sizeInBytes;
1370    uint32 offsetInBytes;
1371    SVGAMobId mobid;
1372    uint32 pad[4];
1373 }
1374 #include "vmware_pack_end.h"
1375 SVGACOTableDXShaderEntry;
1376 
1377 typedef
1378 #include "vmware_pack_begin.h"
1379 struct SVGA3dCmdDXDestroyShader {
1380    SVGA3dShaderId shaderId;
1381 }
1382 #include "vmware_pack_end.h"
1383 SVGA3dCmdDXDestroyShader; 
1384 
1385 typedef
1386 #include "vmware_pack_begin.h"
1387 struct SVGA3dCmdDXBindShader {
1388    uint32 cid;
1389    uint32 shid;
1390    SVGAMobId mobid;
1391    uint32 offsetInBytes;
1392 }
1393 #include "vmware_pack_end.h"
1394 SVGA3dCmdDXBindShader;   
1395 
1396 typedef
1397 #include "vmware_pack_begin.h"
1398 struct SVGA3dCmdDXBindAllShader {
1399    uint32 cid;
1400    SVGAMobId mobid;
1401 }
1402 #include "vmware_pack_end.h"
1403 SVGA3dCmdDXBindAllShader;   
1404 
1405 typedef
1406 #include "vmware_pack_begin.h"
1407 struct SVGA3dCmdDXCondBindAllShader {
1408    uint32 cid;
1409    SVGAMobId testMobid;
1410    SVGAMobId mobid;
1411 }
1412 #include "vmware_pack_end.h"
1413 SVGA3dCmdDXCondBindAllShader;   
1414 
1415 
1416 
1417 
1418 #define SVGA3D_MAX_STREAMOUT_DECLS 64
1419 
1420 typedef
1421 #include "vmware_pack_begin.h"
1422 struct SVGA3dStreamOutputDeclarationEntry {
1423    uint32 outputSlot;
1424    uint32 registerIndex;
1425    uint8  registerMask;
1426    uint8  pad0;
1427    uint16 pad1;
1428    uint32 stream;
1429 }
1430 #include "vmware_pack_end.h"
1431 SVGA3dStreamOutputDeclarationEntry;
1432 
1433 typedef
1434 #include "vmware_pack_begin.h"
1435 struct SVGAOTableStreamOutputEntry {
1436    uint32 numOutputStreamEntries;
1437    SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_STREAMOUT_DECLS];
1438    uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
1439    uint32 rasterizedStream;
1440    uint32 pad[250];
1441 }
1442 #include "vmware_pack_end.h"
1443 SVGACOTableDXStreamOutputEntry;
1444 
1445 typedef
1446 #include "vmware_pack_begin.h"
1447 struct SVGA3dCmdDXDefineStreamOutput {
1448    SVGA3dStreamOutputId soid;
1449    uint32 numOutputStreamEntries;
1450    SVGA3dStreamOutputDeclarationEntry decl[SVGA3D_MAX_STREAMOUT_DECLS];
1451    uint32 streamOutputStrideInBytes[SVGA3D_DX_MAX_SOTARGETS];
1452    uint32 rasterizedStream;
1453 }
1454 #include "vmware_pack_end.h"
1455 SVGA3dCmdDXDefineStreamOutput; 
1456 
1457 typedef
1458 #include "vmware_pack_begin.h"
1459 struct SVGA3dCmdDXDestroyStreamOutput {
1460    SVGA3dStreamOutputId soid;
1461 }
1462 #include "vmware_pack_end.h"
1463 SVGA3dCmdDXDestroyStreamOutput; 
1464 
1465 typedef
1466 #include "vmware_pack_begin.h"
1467 struct SVGA3dCmdDXSetStreamOutput {
1468    SVGA3dStreamOutputId soid;
1469 }
1470 #include "vmware_pack_end.h"
1471 SVGA3dCmdDXSetStreamOutput; 
1472 
1473 typedef
1474 #include "vmware_pack_begin.h"
1475 struct {
1476    uint64 value;
1477    uint32 mobId;
1478    uint32 mobOffset;
1479 }
1480 #include "vmware_pack_end.h"
1481 SVGA3dCmdDXMobFence64;  
1482 
1483 
1484 
1485 
1486 
1487 
1488 typedef
1489 #include "vmware_pack_begin.h"
1490 struct SVGA3dCmdDXSetCOTable {
1491    uint32 cid;
1492    uint32 mobid;
1493    SVGACOTableType type;
1494    uint32 validSizeInBytes;
1495 }
1496 #include "vmware_pack_end.h"
1497 SVGA3dCmdDXSetCOTable; 
1498 
1499 
1500 
1501 
1502 
1503 
1504 
1505 
1506 
1507 
1508 typedef
1509 #include "vmware_pack_begin.h"
1510 struct SVGA3dCmdDXGrowCOTable {
1511    uint32 cid;
1512    uint32 mobid;
1513    SVGACOTableType type;
1514    uint32 validSizeInBytes;
1515 }
1516 #include "vmware_pack_end.h"
1517 SVGA3dCmdDXGrowCOTable; 
1518 
1519 typedef
1520 #include "vmware_pack_begin.h"
1521 struct SVGA3dCmdDXReadbackCOTable {
1522    uint32 cid;
1523    SVGACOTableType type;
1524 }
1525 #include "vmware_pack_end.h"
1526 SVGA3dCmdDXReadbackCOTable; 
1527 
1528 typedef
1529 #include "vmware_pack_begin.h"
1530 struct SVGA3dCOTableData {
1531    uint32 mobid;
1532 }
1533 #include "vmware_pack_end.h"
1534 SVGA3dCOTableData;
1535 
1536 typedef
1537 #include "vmware_pack_begin.h"
1538 struct SVGA3dBufferBinding {
1539    uint32 bufferId;
1540    uint32 stride;
1541    uint32 offset;
1542 }
1543 #include "vmware_pack_end.h"
1544 SVGA3dBufferBinding;
1545 
1546 typedef
1547 #include "vmware_pack_begin.h"
1548 struct SVGA3dConstantBufferBinding {
1549    uint32 sid;
1550    uint32 offsetInBytes;
1551    uint32 sizeInBytes;
1552 }
1553 #include "vmware_pack_end.h"
1554 SVGA3dConstantBufferBinding;
1555 
1556 typedef
1557 #include "vmware_pack_begin.h"
1558 struct SVGADXInputAssemblyMobFormat {
1559    uint32 layoutId;
1560    SVGA3dBufferBinding vertexBuffers[SVGA3D_DX_MAX_VERTEXBUFFERS];
1561    uint32 indexBufferSid;
1562    uint32 pad;
1563    uint32 indexBufferOffset;
1564    uint32 indexBufferFormat;
1565    uint32 topology;
1566 }
1567 #include "vmware_pack_end.h"
1568 SVGADXInputAssemblyMobFormat;
1569 
1570 typedef
1571 #include "vmware_pack_begin.h"
1572 struct SVGADXContextMobFormat {
1573    SVGADXInputAssemblyMobFormat inputAssembly;
1574 
1575    struct {
1576       uint32 blendStateId;
1577       uint32 blendFactor[4];
1578       uint32 sampleMask;
1579       uint32 depthStencilStateId;
1580       uint32 stencilRef;
1581       uint32 rasterizerStateId;
1582       uint32 depthStencilViewId;
1583       uint32 renderTargetViewIds[SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS];
1584       uint32 unorderedAccessViewIds[SVGA3D_MAX_UAVIEWS];
1585    } renderState;
1586 
1587    struct {
1588       uint32 targets[SVGA3D_DX_MAX_SOTARGETS];
1589       uint32 soid;
1590    } streamOut;
1591    uint32 pad0[11];
1592 
1593    uint8 numViewports;
1594    uint8 numScissorRects;
1595    uint16 pad1[1];
1596 
1597    uint32 pad2[3];
1598 
1599    SVGA3dViewport viewports[SVGA3D_DX_MAX_VIEWPORTS];
1600    uint32 pad3[32];
1601 
1602    SVGASignedRect scissorRects[SVGA3D_DX_MAX_SCISSORRECTS];
1603    uint32 pad4[64];
1604 
1605    struct {
1606       uint32 queryID;
1607       uint32 value;
1608    } predication;
1609    uint32 pad5[2];
1610 
1611    struct {
1612       uint32 shaderId;
1613       SVGA3dConstantBufferBinding constantBuffers[SVGA3D_DX_MAX_CONSTBUFFERS];
1614       uint32 shaderResources[SVGA3D_DX_MAX_SRVIEWS];
1615       uint32 samplers[SVGA3D_DX_MAX_SAMPLERS];
1616    } shaderState[SVGA3D_NUM_SHADERTYPE];
1617    uint32 pad6[26];
1618 
1619    SVGA3dQueryId queryID[SVGA3D_MAX_QUERY];
1620 
1621    SVGA3dCOTableData cotables[SVGA_COTABLE_MAX];
1622    uint32 pad7[380];
1623 }
1624 #include "vmware_pack_end.h"
1625 SVGADXContextMobFormat;
1626 
1627 typedef
1628 #include "vmware_pack_begin.h"
1629 struct SVGA3dCmdDXTempSetContext {
1630    uint32 dxcid;
1631 }
1632 #include "vmware_pack_end.h"
1633 SVGA3dCmdDXTempSetContext; 
1634 
1635 #endif