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