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