1 /**********************************************************
2 * Copyright 2007-2015 VMware, Inc. All rights reserved.
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without
7 * restriction, including without limitation the rights to use, copy,
8 * modify, merge, publish, distribute, sublicense, and/or sell copies
9 * of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 **********************************************************/
29 * SVGA 3d hardware definitions for DX10 support.
35 #define INCLUDE_ALLOW_MODULE
36 #define INCLUDE_ALLOW_USERLEVEL
37 #define INCLUDE_ALLOW_VMCORE
38 #include "includeCheck.h"
40 #include "svga3d_limits.h"
42 #define SVGA3D_INPUT_MIN 0
43 #define SVGA3D_INPUT_PER_VERTEX_DATA 0
44 #define SVGA3D_INPUT_PER_INSTANCE_DATA 1
45 #define SVGA3D_INPUT_MAX 2
46 typedef uint32 SVGA3dInputClassification
;
48 #define SVGA3D_RESOURCE_TYPE_MIN 1
49 #define SVGA3D_RESOURCE_BUFFER 1
50 #define SVGA3D_RESOURCE_TEXTURE1D 2
51 #define SVGA3D_RESOURCE_TEXTURE2D 3
52 #define SVGA3D_RESOURCE_TEXTURE3D 4
53 #define SVGA3D_RESOURCE_TEXTURECUBE 5
54 #define SVGA3D_RESOURCE_TYPE_DX10_MAX 6
55 #define SVGA3D_RESOURCE_BUFFEREX 6
56 #define SVGA3D_RESOURCE_TYPE_MAX 7
57 typedef uint32 SVGA3dResourceType
;
59 #define SVGA3D_DEPTH_WRITE_MASK_ZERO 0
60 #define SVGA3D_DEPTH_WRITE_MASK_ALL 1
61 typedef uint8 SVGA3dDepthWriteMask
;
63 #define SVGA3D_FILTER_MIP_LINEAR (1 << 0)
64 #define SVGA3D_FILTER_MAG_LINEAR (1 << 2)
65 #define SVGA3D_FILTER_MIN_LINEAR (1 << 4)
66 #define SVGA3D_FILTER_ANISOTROPIC (1 << 6)
67 #define SVGA3D_FILTER_COMPARE (1 << 7)
68 typedef uint32 SVGA3dFilter
;
70 #define SVGA3D_CULL_INVALID 0
71 #define SVGA3D_CULL_MIN 1
72 #define SVGA3D_CULL_NONE 1
73 #define SVGA3D_CULL_FRONT 2
74 #define SVGA3D_CULL_BACK 3
75 #define SVGA3D_CULL_MAX 4
76 typedef uint8 SVGA3dCullMode
;
78 #define SVGA3D_COMPARISON_INVALID 0
79 #define SVGA3D_COMPARISON_MIN 1
80 #define SVGA3D_COMPARISON_NEVER 1
81 #define SVGA3D_COMPARISON_LESS 2
82 #define SVGA3D_COMPARISON_EQUAL 3
83 #define SVGA3D_COMPARISON_LESS_EQUAL 4
84 #define SVGA3D_COMPARISON_GREATER 5
85 #define SVGA3D_COMPARISON_NOT_EQUAL 6
86 #define SVGA3D_COMPARISON_GREATER_EQUAL 7
87 #define SVGA3D_COMPARISON_ALWAYS 8
88 #define SVGA3D_COMPARISON_MAX 9
89 typedef uint8 SVGA3dComparisonFunc
;
91 #define SVGA3D_DX_MAX_VERTEXBUFFERS 32
92 #define SVGA3D_DX_MAX_VERTEXINPUTREGISTERS 16
93 #define SVGA3D_DX_MAX_SOTARGETS 4
94 #define SVGA3D_DX_MAX_SRVIEWS 128
95 #define SVGA3D_DX_MAX_CONSTBUFFERS 16
96 #define SVGA3D_DX_MAX_SAMPLERS 16
99 static const uint32 SVGA3dBlendObjectCountPerContext
= 4096;
100 static const uint32 SVGA3dDepthStencilObjectCountPerContext
= 4096;
102 typedef uint32 SVGA3dSurfaceId
;
103 typedef uint32 SVGA3dShaderResourceViewId
;
104 typedef uint32 SVGA3dRenderTargetViewId
;
105 typedef uint32 SVGA3dDepthStencilViewId
;
107 typedef uint32 SVGA3dShaderId
;
108 typedef uint32 SVGA3dElementLayoutId
;
109 typedef uint32 SVGA3dSamplerId
;
110 typedef uint32 SVGA3dBlendStateId
;
111 typedef uint32 SVGA3dDepthStencilStateId
;
112 typedef uint32 SVGA3dRasterizerStateId
;
113 typedef uint32 SVGA3dQueryId
;
114 typedef uint32 SVGA3dStreamOutputId
;
128 #include "vmware_pack_begin.h"
133 #include "vmware_pack_end.h"
134 SVGAOTableDXContextEntry
;
137 #include "vmware_pack_begin.h"
138 struct SVGA3dCmdDXDefineContext
{
141 #include "vmware_pack_end.h"
142 SVGA3dCmdDXDefineContext
; /* SVGA_3D_CMD_DX_DEFINE_CONTEXT */
145 #include "vmware_pack_begin.h"
146 struct SVGA3dCmdDXDestroyContext
{
149 #include "vmware_pack_end.h"
150 SVGA3dCmdDXDestroyContext
; /* SVGA_3D_CMD_DX_DESTROY_CONTEXT */
155 * validContents should be set to 0 for new contexts,
156 * and 1 if this is an old context which is getting paged
157 * back on to the device.
159 * For new contexts, it is recommended that the driver
160 * issue commands to initialize all interesting state
161 * prior to rendering.
164 #include "vmware_pack_begin.h"
165 struct SVGA3dCmdDXBindContext
{
168 uint32 validContents
;
170 #include "vmware_pack_end.h"
171 SVGA3dCmdDXBindContext
; /* SVGA_3D_CMD_DX_BIND_CONTEXT */
174 * Readback a DX context.
175 * (Request that the device flush the contents back into guest memory.)
178 #include "vmware_pack_begin.h"
179 struct SVGA3dCmdDXReadbackContext
{
182 #include "vmware_pack_end.h"
183 SVGA3dCmdDXReadbackContext
; /* SVGA_3D_CMD_DX_READBACK_CONTEXT */
186 * Invalidate a guest-backed context.
189 #include "vmware_pack_begin.h"
190 struct SVGA3dCmdDXInvalidateContext
{
193 #include "vmware_pack_end.h"
194 SVGA3dCmdDXInvalidateContext
; /* SVGA_3D_CMD_DX_INVALIDATE_CONTEXT */
197 #include "vmware_pack_begin.h"
198 struct SVGA3dReplyFormatData
{
199 uint32 formatSupport
;
200 uint32 msaa2xQualityLevels
:5;
201 uint32 msaa4xQualityLevels
:5;
202 uint32 msaa8xQualityLevels
:5;
203 uint32 msaa16xQualityLevels
:5;
204 uint32 msaa32xQualityLevels
:5;
207 #include "vmware_pack_end.h"
208 SVGA3dReplyFormatData
;
211 #include "vmware_pack_begin.h"
212 struct SVGA3dCmdDXSetSingleConstantBuffer
{
214 SVGA3dShaderType type
;
216 uint32 offsetInBytes
;
219 #include "vmware_pack_end.h"
220 SVGA3dCmdDXSetSingleConstantBuffer
;
221 /* SVGA_3D_CMD_DX_SET_SINGLE_CONSTANT_BUFFER */
224 #include "vmware_pack_begin.h"
225 struct SVGA3dCmdDXSetShaderResources
{
227 SVGA3dShaderType type
;
230 * Followed by a variable number of SVGA3dShaderResourceViewId's.
233 #include "vmware_pack_end.h"
234 SVGA3dCmdDXSetShaderResources
; /* SVGA_3D_CMD_DX_SET_SHADER_RESOURCES */
237 #include "vmware_pack_begin.h"
238 struct SVGA3dCmdDXSetShader
{
239 SVGA3dShaderId shaderId
;
240 SVGA3dShaderType type
;
242 #include "vmware_pack_end.h"
243 SVGA3dCmdDXSetShader
; /* SVGA_3D_CMD_DX_SET_SHADER */
246 #include "vmware_pack_begin.h"
247 struct SVGA3dCmdDXSetSamplers
{
249 SVGA3dShaderType type
;
252 * Followed by a variable number of SVGA3dSamplerId's.
255 #include "vmware_pack_end.h"
256 SVGA3dCmdDXSetSamplers
; /* SVGA_3D_CMD_DX_SET_SAMPLERS */
259 #include "vmware_pack_begin.h"
260 struct SVGA3dCmdDXDraw
{
262 uint32 startVertexLocation
;
264 #include "vmware_pack_end.h"
265 SVGA3dCmdDXDraw
; /* SVGA_3D_CMD_DX_DRAW */
268 #include "vmware_pack_begin.h"
269 struct SVGA3dCmdDXDrawIndexed
{
271 uint32 startIndexLocation
;
272 int32 baseVertexLocation
;
274 #include "vmware_pack_end.h"
275 SVGA3dCmdDXDrawIndexed
; /* SVGA_3D_CMD_DX_DRAW_INDEXED */
278 #include "vmware_pack_begin.h"
279 struct SVGA3dCmdDXDrawInstanced
{
280 uint32 vertexCountPerInstance
;
281 uint32 instanceCount
;
282 uint32 startVertexLocation
;
283 uint32 startInstanceLocation
;
285 #include "vmware_pack_end.h"
286 SVGA3dCmdDXDrawInstanced
; /* SVGA_3D_CMD_DX_DRAW_INSTANCED */
289 #include "vmware_pack_begin.h"
290 struct SVGA3dCmdDXDrawIndexedInstanced
{
291 uint32 indexCountPerInstance
;
292 uint32 instanceCount
;
293 uint32 startIndexLocation
;
294 int32 baseVertexLocation
;
295 uint32 startInstanceLocation
;
297 #include "vmware_pack_end.h"
298 SVGA3dCmdDXDrawIndexedInstanced
; /* SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED */
301 #include "vmware_pack_begin.h"
302 struct SVGA3dCmdDXDrawAuto
{
305 #include "vmware_pack_end.h"
306 SVGA3dCmdDXDrawAuto
; /* SVGA_3D_CMD_DX_DRAW_AUTO */
309 #include "vmware_pack_begin.h"
310 struct SVGA3dCmdDXSetInputLayout
{
311 SVGA3dElementLayoutId elementLayoutId
;
313 #include "vmware_pack_end.h"
314 SVGA3dCmdDXSetInputLayout
; /* SVGA_3D_CMD_DX_SET_INPUT_LAYOUT */
317 #include "vmware_pack_begin.h"
318 struct SVGA3dVertexBuffer
{
323 #include "vmware_pack_end.h"
327 #include "vmware_pack_begin.h"
328 struct SVGA3dCmdDXSetVertexBuffers
{
330 /* Followed by a variable number of SVGA3dVertexBuffer's. */
332 #include "vmware_pack_end.h"
333 SVGA3dCmdDXSetVertexBuffers
; /* SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS */
336 #include "vmware_pack_begin.h"
337 struct SVGA3dCmdDXSetIndexBuffer
{
339 SVGA3dSurfaceFormat format
;
342 #include "vmware_pack_end.h"
343 SVGA3dCmdDXSetIndexBuffer
; /* SVGA_3D_CMD_DX_SET_INDEX_BUFFER */
346 #include "vmware_pack_begin.h"
347 struct SVGA3dCmdDXSetTopology
{
348 SVGA3dPrimitiveType topology
;
350 #include "vmware_pack_end.h"
351 SVGA3dCmdDXSetTopology
; /* SVGA_3D_CMD_DX_SET_TOPOLOGY */
354 #include "vmware_pack_begin.h"
355 struct SVGA3dCmdDXSetRenderTargets
{
356 SVGA3dDepthStencilViewId depthStencilViewId
;
357 /* Followed by a variable number of SVGA3dRenderTargetViewId's. */
359 #include "vmware_pack_end.h"
360 SVGA3dCmdDXSetRenderTargets
; /* SVGA_3D_CMD_DX_SET_RENDERTARGETS */
363 #include "vmware_pack_begin.h"
364 struct SVGA3dCmdDXSetBlendState
{
365 SVGA3dBlendStateId blendId
;
366 float blendFactor
[4];
369 #include "vmware_pack_end.h"
370 SVGA3dCmdDXSetBlendState
; /* SVGA_3D_CMD_DX_SET_BLEND_STATE */
373 #include "vmware_pack_begin.h"
374 struct SVGA3dCmdDXSetDepthStencilState
{
375 SVGA3dDepthStencilStateId depthStencilId
;
378 #include "vmware_pack_end.h"
379 SVGA3dCmdDXSetDepthStencilState
; /* SVGA_3D_CMD_DX_SET_DEPTHSTENCIL_STATE */
382 #include "vmware_pack_begin.h"
383 struct SVGA3dCmdDXSetRasterizerState
{
384 SVGA3dRasterizerStateId rasterizerId
;
386 #include "vmware_pack_end.h"
387 SVGA3dCmdDXSetRasterizerState
; /* SVGA_3D_CMD_DX_SET_RASTERIZER_STATE */
389 #define SVGA3D_DXQUERY_FLAG_PREDICATEHINT (1 << 0)
390 typedef uint32 SVGA3dDXQueryFlags
;
393 * The SVGADXQueryDeviceState and SVGADXQueryDeviceBits are used by the device
394 * to track query state transitions, but are not intended to be used by the
397 #define SVGADX_QDSTATE_INVALID ((uint8)-1) /* Query has no state */
398 #define SVGADX_QDSTATE_MIN 0
399 #define SVGADX_QDSTATE_IDLE 0 /* Query hasn't started yet */
400 #define SVGADX_QDSTATE_ACTIVE 1 /* Query is actively gathering data */
401 #define SVGADX_QDSTATE_PENDING 2 /* Query is waiting for results */
402 #define SVGADX_QDSTATE_FINISHED 3 /* Query has completed */
403 #define SVGADX_QDSTATE_MAX 4
404 typedef uint8 SVGADXQueryDeviceState
;
407 #include "vmware_pack_begin.h"
409 SVGA3dQueryTypeUint8 type
;
411 SVGADXQueryDeviceState state
;
412 SVGA3dDXQueryFlags flags
;
416 #include "vmware_pack_end.h"
417 SVGACOTableDXQueryEntry
;
420 #include "vmware_pack_begin.h"
421 struct SVGA3dCmdDXDefineQuery
{
422 SVGA3dQueryId queryId
;
423 SVGA3dQueryType type
;
424 SVGA3dDXQueryFlags flags
;
426 #include "vmware_pack_end.h"
427 SVGA3dCmdDXDefineQuery
; /* SVGA_3D_CMD_DX_DEFINE_QUERY */
430 #include "vmware_pack_begin.h"
431 struct SVGA3dCmdDXDestroyQuery
{
432 SVGA3dQueryId queryId
;
434 #include "vmware_pack_end.h"
435 SVGA3dCmdDXDestroyQuery
; /* SVGA_3D_CMD_DX_DESTROY_QUERY */
438 #include "vmware_pack_begin.h"
439 struct SVGA3dCmdDXBindQuery
{
440 SVGA3dQueryId queryId
;
443 #include "vmware_pack_end.h"
444 SVGA3dCmdDXBindQuery
; /* SVGA_3D_CMD_DX_BIND_QUERY */
447 #include "vmware_pack_begin.h"
448 struct SVGA3dCmdDXSetQueryOffset
{
449 SVGA3dQueryId queryId
;
452 #include "vmware_pack_end.h"
453 SVGA3dCmdDXSetQueryOffset
; /* SVGA_3D_CMD_DX_SET_QUERY_OFFSET */
456 #include "vmware_pack_begin.h"
457 struct SVGA3dCmdDXBeginQuery
{
458 SVGA3dQueryId queryId
;
460 #include "vmware_pack_end.h"
461 SVGA3dCmdDXBeginQuery
; /* SVGA_3D_CMD_DX_QUERY_BEGIN */
464 #include "vmware_pack_begin.h"
465 struct SVGA3dCmdDXEndQuery
{
466 SVGA3dQueryId queryId
;
468 #include "vmware_pack_end.h"
469 SVGA3dCmdDXEndQuery
; /* SVGA_3D_CMD_DX_QUERY_END */
472 #include "vmware_pack_begin.h"
473 struct SVGA3dCmdDXReadbackQuery
{
474 SVGA3dQueryId queryId
;
476 #include "vmware_pack_end.h"
477 SVGA3dCmdDXReadbackQuery
; /* SVGA_3D_CMD_DX_READBACK_QUERY */
480 #include "vmware_pack_begin.h"
481 struct SVGA3dCmdDXMoveQuery
{
482 SVGA3dQueryId queryId
;
486 #include "vmware_pack_end.h"
487 SVGA3dCmdDXMoveQuery
; /* SVGA_3D_CMD_DX_MOVE_QUERY */
490 #include "vmware_pack_begin.h"
491 struct SVGA3dCmdDXBindAllQuery
{
495 #include "vmware_pack_end.h"
496 SVGA3dCmdDXBindAllQuery
; /* SVGA_3D_CMD_DX_BIND_ALL_QUERY */
499 #include "vmware_pack_begin.h"
500 struct SVGA3dCmdDXReadbackAllQuery
{
503 #include "vmware_pack_end.h"
504 SVGA3dCmdDXReadbackAllQuery
; /* SVGA_3D_CMD_DX_READBACK_ALL_QUERY */
507 #include "vmware_pack_begin.h"
508 struct SVGA3dCmdDXSetPredication
{
509 SVGA3dQueryId queryId
;
510 uint32 predicateValue
;
512 #include "vmware_pack_end.h"
513 SVGA3dCmdDXSetPredication
; /* SVGA_3D_CMD_DX_SET_PREDICATION */
516 #include "vmware_pack_begin.h"
517 struct MKS3dDXSOState
{
518 uint32 offset
; /* Starting offset */
519 uint32 intOffset
; /* Internal offset */
520 uint32 vertexCount
; /* vertices written */
521 uint32 sizeInBytes
; /* max bytes to write */
523 #include "vmware_pack_end.h"
526 /* Set the offset field to this value to append SO values to the buffer */
527 #define SVGA3D_DX_SO_OFFSET_APPEND ((uint32) ~0u)
530 #include "vmware_pack_begin.h"
531 struct SVGA3dSoTarget
{
536 #include "vmware_pack_end.h"
540 #include "vmware_pack_begin.h"
541 struct SVGA3dCmdDXSetSOTargets
{
543 /* Followed by a variable number of SVGA3dSOTarget's. */
545 #include "vmware_pack_end.h"
546 SVGA3dCmdDXSetSOTargets
; /* SVGA_3D_CMD_DX_SET_SOTARGETS */
549 #include "vmware_pack_begin.h"
550 struct SVGA3dViewport
559 #include "vmware_pack_end.h"
563 #include "vmware_pack_begin.h"
564 struct SVGA3dCmdDXSetViewports
{
566 /* Followed by a variable number of SVGA3dViewport's. */
568 #include "vmware_pack_end.h"
569 SVGA3dCmdDXSetViewports
; /* SVGA_3D_CMD_DX_SET_VIEWPORTS */
571 #define SVGA3D_DX_MAX_VIEWPORTS 16
574 #include "vmware_pack_begin.h"
575 struct SVGA3dCmdDXSetScissorRects
{
577 /* Followed by a variable number of SVGASignedRect's. */
579 #include "vmware_pack_end.h"
580 SVGA3dCmdDXSetScissorRects
; /* SVGA_3D_CMD_DX_SET_SCISSORRECTS */
582 #define SVGA3D_DX_MAX_SCISSORRECTS 16
585 #include "vmware_pack_begin.h"
586 struct SVGA3dCmdDXClearRenderTargetView
{
587 SVGA3dRenderTargetViewId renderTargetViewId
;
588 SVGA3dRGBAFloat rgba
;
590 #include "vmware_pack_end.h"
591 SVGA3dCmdDXClearRenderTargetView
; /* SVGA_3D_CMD_DX_CLEAR_RENDERTARGET_VIEW */
594 #include "vmware_pack_begin.h"
595 struct SVGA3dCmdDXClearDepthStencilView
{
598 SVGA3dDepthStencilViewId depthStencilViewId
;
601 #include "vmware_pack_end.h"
602 SVGA3dCmdDXClearDepthStencilView
; /* SVGA_3D_CMD_DX_CLEAR_DEPTHSTENCIL_VIEW */
605 #include "vmware_pack_begin.h"
606 struct SVGA3dCmdDXPredCopyRegion
{
607 SVGA3dSurfaceId dstSid
;
608 uint32 dstSubResource
;
609 SVGA3dSurfaceId srcSid
;
610 uint32 srcSubResource
;
613 #include "vmware_pack_end.h"
614 SVGA3dCmdDXPredCopyRegion
;
615 /* SVGA_3D_CMD_DX_PRED_COPY_REGION */
618 #include "vmware_pack_begin.h"
619 struct SVGA3dCmdDXPredCopy
{
620 SVGA3dSurfaceId dstSid
;
621 SVGA3dSurfaceId srcSid
;
623 #include "vmware_pack_end.h"
624 SVGA3dCmdDXPredCopy
; /* SVGA_3D_CMD_DX_PRED_COPY */
627 #include "vmware_pack_begin.h"
628 struct SVGA3dCmdDXBufferCopy
{
629 SVGA3dSurfaceId dest
;
635 #include "vmware_pack_end.h"
636 SVGA3dCmdDXBufferCopy
;
637 /* SVGA_3D_CMD_DX_BUFFER_COPY */
639 typedef uint32 SVGA3dDXStretchBltMode
;
640 #define SVGADX_STRETCHBLT_LINEAR (1 << 0)
641 #define SVGADX_STRETCHBLT_FORCE_SRC_SRGB (1 << 1)
644 #include "vmware_pack_begin.h"
645 struct SVGA3dCmdDXStretchBlt
{
646 SVGA3dSurfaceId srcSid
;
647 uint32 srcSubResource
;
648 SVGA3dSurfaceId dstSid
;
649 uint32 destSubResource
;
652 SVGA3dDXStretchBltMode mode
;
654 #include "vmware_pack_end.h"
655 SVGA3dCmdDXStretchBlt
; /* SVGA_3D_CMD_DX_STRETCHBLT */
658 #include "vmware_pack_begin.h"
659 struct SVGA3dCmdDXGenMips
{
660 SVGA3dShaderResourceViewId shaderResourceViewId
;
662 #include "vmware_pack_end.h"
663 SVGA3dCmdDXGenMips
; /* SVGA_3D_CMD_DX_GENMIPS */
666 * Defines a resource/DX surface. Resources share the surfaceId namespace.
670 #include "vmware_pack_begin.h"
671 struct SVGA3dCmdDefineGBSurface_v2
{
673 SVGA3dSurfaceFlags surfaceFlags
;
674 SVGA3dSurfaceFormat format
;
676 uint32 multisampleCount
;
677 SVGA3dTextureFilter autogenFilter
;
682 #include "vmware_pack_end.h"
683 SVGA3dCmdDefineGBSurface_v2
; /* SVGA_3D_CMD_DEFINE_GB_SURFACE_V2 */
686 * Update a sub-resource in a guest-backed resource.
687 * (Inform the device that the guest-contents have been updated.)
690 #include "vmware_pack_begin.h"
691 struct SVGA3dCmdDXUpdateSubResource
{
696 #include "vmware_pack_end.h"
697 SVGA3dCmdDXUpdateSubResource
; /* SVGA_3D_CMD_DX_UPDATE_SUBRESOURCE */
700 * Readback a subresource in a guest-backed resource.
701 * (Request the device to flush the dirty contents into the guest.)
704 #include "vmware_pack_begin.h"
705 struct SVGA3dCmdDXReadbackSubResource
{
709 #include "vmware_pack_end.h"
710 SVGA3dCmdDXReadbackSubResource
; /* SVGA_3D_CMD_DX_READBACK_SUBRESOURCE */
713 * Invalidate an image in a guest-backed surface.
714 * (Notify the device that the contents can be lost.)
717 #include "vmware_pack_begin.h"
718 struct SVGA3dCmdDXInvalidateSubResource
{
722 #include "vmware_pack_end.h"
723 SVGA3dCmdDXInvalidateSubResource
; /* SVGA_3D_CMD_DX_INVALIDATE_SUBRESOURCE */
727 * Raw byte wise transfer from a buffer surface into another surface
728 * of the requested box.
731 #include "vmware_pack_begin.h"
732 struct SVGA3dCmdDXTransferFromBuffer
{
733 SVGA3dSurfaceId srcSid
;
736 uint32 srcSlicePitch
;
737 SVGA3dSurfaceId destSid
;
738 uint32 destSubResource
;
741 #include "vmware_pack_end.h"
742 SVGA3dCmdDXTransferFromBuffer
; /* SVGA_3D_CMD_DX_TRANSFER_FROM_BUFFER */
746 * Raw byte wise transfer from a buffer surface into another surface
747 * of the requested box. Supported if SVGA3D_DEVCAP_DXCONTEXT is set.
748 * The context is implied from the command buffer header.
751 #include "vmware_pack_begin.h"
752 struct SVGA3dCmdDXPredTransferFromBuffer
{
753 SVGA3dSurfaceId srcSid
;
756 uint32 srcSlicePitch
;
757 SVGA3dSurfaceId destSid
;
758 uint32 destSubResource
;
761 #include "vmware_pack_end.h"
762 SVGA3dCmdDXPredTransferFromBuffer
;
763 /* SVGA_3D_CMD_DX_PRED_TRANSFER_FROM_BUFFER */
767 #include "vmware_pack_begin.h"
768 struct SVGA3dCmdDXSurfaceCopyAndReadback
{
769 SVGA3dSurfaceId srcSid
;
770 SVGA3dSurfaceId destSid
;
773 #include "vmware_pack_end.h"
774 SVGA3dCmdDXSurfaceCopyAndReadback
;
775 /* SVGA_3D_CMD_DX_SURFACE_COPY_AND_READBACK */
778 #include "vmware_pack_begin.h"
779 struct SVGA3dCmdDXHint
{
783 * Followed by variable sized data depending on the hintId.
786 #include "vmware_pack_end.h"
788 /* SVGA_3D_CMD_DX_HINT */
791 #include "vmware_pack_begin.h"
792 struct SVGA3dCmdDXBufferUpdate
{
797 #include "vmware_pack_end.h"
798 SVGA3dCmdDXBufferUpdate
;
799 /* SVGA_3D_CMD_DX_BUFFER_UPDATE */
802 #include "vmware_pack_begin.h"
803 struct SVGA3dCmdDXSetConstantBufferOffset
{
805 uint32 offsetInBytes
;
807 #include "vmware_pack_end.h"
808 SVGA3dCmdDXSetConstantBufferOffset
;
810 typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetVSConstantBufferOffset
;
811 /* SVGA_3D_CMD_DX_SET_VS_CONSTANT_BUFFER_OFFSET */
813 typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetPSConstantBufferOffset
;
814 /* SVGA_3D_CMD_DX_SET_PS_CONSTANT_BUFFER_OFFSET */
816 typedef SVGA3dCmdDXSetConstantBufferOffset SVGA3dCmdDXSetGSConstantBufferOffset
;
817 /* SVGA_3D_CMD_DX_SET_GS_CONSTANT_BUFFER_OFFSET */
821 #include "vmware_pack_begin.h"
831 uint32 mostDetailedMip
;
832 uint32 firstArraySlice
;
844 #include "vmware_pack_end.h"
845 SVGA3dShaderResourceViewDesc
;
848 #include "vmware_pack_begin.h"
851 SVGA3dSurfaceFormat format
;
852 SVGA3dResourceType resourceDimension
;
853 SVGA3dShaderResourceViewDesc desc
;
856 #include "vmware_pack_end.h"
857 SVGACOTableDXSRViewEntry
;
860 #include "vmware_pack_begin.h"
861 struct SVGA3dCmdDXDefineShaderResourceView
{
862 SVGA3dShaderResourceViewId shaderResourceViewId
;
865 SVGA3dSurfaceFormat format
;
866 SVGA3dResourceType resourceDimension
;
868 SVGA3dShaderResourceViewDesc desc
;
870 #include "vmware_pack_end.h"
871 SVGA3dCmdDXDefineShaderResourceView
;
872 /* SVGA_3D_CMD_DX_DEFINE_SHADERRESOURCE_VIEW */
875 #include "vmware_pack_begin.h"
876 struct SVGA3dCmdDXDestroyShaderResourceView
{
877 SVGA3dShaderResourceViewId shaderResourceViewId
;
879 #include "vmware_pack_end.h"
880 SVGA3dCmdDXDestroyShaderResourceView
;
881 /* SVGA_3D_CMD_DX_DESTROY_SHADERRESOURCE_VIEW */
884 #include "vmware_pack_begin.h"
885 struct SVGA3dRenderTargetViewDesc
{
893 uint32 firstArraySlice
;
895 } tex
; /* 1d, 2d, cube */
903 #include "vmware_pack_end.h"
904 SVGA3dRenderTargetViewDesc
;
907 #include "vmware_pack_begin.h"
910 SVGA3dSurfaceFormat format
;
911 SVGA3dResourceType resourceDimension
;
912 SVGA3dRenderTargetViewDesc desc
;
915 #include "vmware_pack_end.h"
916 SVGACOTableDXRTViewEntry
;
919 #include "vmware_pack_begin.h"
920 struct SVGA3dCmdDXDefineRenderTargetView
{
921 SVGA3dRenderTargetViewId renderTargetViewId
;
924 SVGA3dSurfaceFormat format
;
925 SVGA3dResourceType resourceDimension
;
927 SVGA3dRenderTargetViewDesc desc
;
929 #include "vmware_pack_end.h"
930 SVGA3dCmdDXDefineRenderTargetView
;
931 /* SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW */
934 #include "vmware_pack_begin.h"
935 struct SVGA3dCmdDXDestroyRenderTargetView
{
936 SVGA3dRenderTargetViewId renderTargetViewId
;
938 #include "vmware_pack_end.h"
939 SVGA3dCmdDXDestroyRenderTargetView
;
940 /* SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW */
944 #define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_DEPTH 0x01
945 #define SVGA3D_DXDSVIEW_CREATE_READ_ONLY_STENCIL 0x02
946 #define SVGA3D_DXDSVIEW_CREATE_FLAG_MASK 0x03
947 typedef uint8 SVGA3DCreateDSViewFlags
;
950 #include "vmware_pack_begin.h"
953 SVGA3dSurfaceFormat format
;
954 SVGA3dResourceType resourceDimension
;
956 uint32 firstArraySlice
;
958 SVGA3DCreateDSViewFlags flags
;
963 #include "vmware_pack_end.h"
964 SVGACOTableDXDSViewEntry
;
967 #include "vmware_pack_begin.h"
968 struct SVGA3dCmdDXDefineDepthStencilView
{
969 SVGA3dDepthStencilViewId depthStencilViewId
;
972 SVGA3dSurfaceFormat format
;
973 SVGA3dResourceType resourceDimension
;
975 uint32 firstArraySlice
;
977 SVGA3DCreateDSViewFlags flags
;
981 #include "vmware_pack_end.h"
982 SVGA3dCmdDXDefineDepthStencilView
;
983 /* SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW */
986 #include "vmware_pack_begin.h"
987 struct SVGA3dCmdDXDestroyDepthStencilView
{
988 SVGA3dDepthStencilViewId depthStencilViewId
;
990 #include "vmware_pack_end.h"
991 SVGA3dCmdDXDestroyDepthStencilView
;
992 /* SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_VIEW */
995 #include "vmware_pack_begin.h"
996 struct SVGA3dInputElementDesc
{
998 uint32 alignedByteOffset
;
999 SVGA3dSurfaceFormat format
;
1000 SVGA3dInputClassification inputSlotClass
;
1001 uint32 instanceDataStepRate
;
1002 uint32 inputRegister
;
1004 #include "vmware_pack_end.h"
1005 SVGA3dInputElementDesc
;
1008 #include "vmware_pack_begin.h"
1011 * XXX: How many of these can there be?
1015 SVGA3dInputElementDesc desc
[32];
1018 #include "vmware_pack_end.h"
1019 SVGACOTableDXElementLayoutEntry
;
1022 #include "vmware_pack_begin.h"
1023 struct SVGA3dCmdDXDefineElementLayout
{
1024 SVGA3dElementLayoutId elementLayoutId
;
1025 /* Followed by a variable number of SVGA3dInputElementDesc's. */
1027 #include "vmware_pack_end.h"
1028 SVGA3dCmdDXDefineElementLayout
;
1029 /* SVGA_3D_CMD_DX_DEFINE_ELEMENTLAYOUT */
1032 #include "vmware_pack_begin.h"
1033 struct SVGA3dCmdDXDestroyElementLayout
{
1034 SVGA3dElementLayoutId elementLayoutId
;
1036 #include "vmware_pack_end.h"
1037 SVGA3dCmdDXDestroyElementLayout
;
1038 /* SVGA_3D_CMD_DX_DESTROY_ELEMENTLAYOUT */
1041 #define SVGA3D_DX_MAX_RENDER_TARGETS 8
1044 #include "vmware_pack_begin.h"
1045 struct SVGA3dDXBlendStatePerRT
{
1050 uint8 srcBlendAlpha
;
1051 uint8 destBlendAlpha
;
1053 uint8 renderTargetWriteMask
;
1054 uint8 logicOpEnable
;
1058 #include "vmware_pack_end.h"
1059 SVGA3dDXBlendStatePerRT
;
1062 #include "vmware_pack_begin.h"
1064 uint8 alphaToCoverageEnable
;
1065 uint8 independentBlendEnable
;
1067 SVGA3dDXBlendStatePerRT perRT
[SVGA3D_MAX_RENDER_TARGETS
];
1070 #include "vmware_pack_end.h"
1071 SVGACOTableDXBlendStateEntry
;
1076 #include "vmware_pack_begin.h"
1077 struct SVGA3dCmdDXDefineBlendState
{
1078 SVGA3dBlendStateId blendId
;
1079 uint8 alphaToCoverageEnable
;
1080 uint8 independentBlendEnable
;
1082 SVGA3dDXBlendStatePerRT perRT
[SVGA3D_MAX_RENDER_TARGETS
];
1084 #include "vmware_pack_end.h"
1085 SVGA3dCmdDXDefineBlendState
; /* SVGA_3D_CMD_DX_DEFINE_BLEND_STATE */
1088 #include "vmware_pack_begin.h"
1089 struct SVGA3dCmdDXDestroyBlendState
{
1090 SVGA3dBlendStateId blendId
;
1092 #include "vmware_pack_end.h"
1093 SVGA3dCmdDXDestroyBlendState
; /* SVGA_3D_CMD_DX_DESTROY_BLEND_STATE */
1096 #include "vmware_pack_begin.h"
1099 SVGA3dDepthWriteMask depthWriteMask
;
1100 SVGA3dComparisonFunc depthFunc
;
1101 uint8 stencilEnable
;
1104 uint8 stencilReadMask
;
1105 uint8 stencilWriteMask
;
1107 uint8 frontStencilFailOp
;
1108 uint8 frontStencilDepthFailOp
;
1109 uint8 frontStencilPassOp
;
1110 SVGA3dComparisonFunc frontStencilFunc
;
1112 uint8 backStencilFailOp
;
1113 uint8 backStencilDepthFailOp
;
1114 uint8 backStencilPassOp
;
1115 SVGA3dComparisonFunc backStencilFunc
;
1117 #include "vmware_pack_end.h"
1118 SVGACOTableDXDepthStencilEntry
;
1123 #include "vmware_pack_begin.h"
1124 struct SVGA3dCmdDXDefineDepthStencilState
{
1125 SVGA3dDepthStencilStateId depthStencilId
;
1128 SVGA3dDepthWriteMask depthWriteMask
;
1129 SVGA3dComparisonFunc depthFunc
;
1130 uint8 stencilEnable
;
1133 uint8 stencilReadMask
;
1134 uint8 stencilWriteMask
;
1136 uint8 frontStencilFailOp
;
1137 uint8 frontStencilDepthFailOp
;
1138 uint8 frontStencilPassOp
;
1139 SVGA3dComparisonFunc frontStencilFunc
;
1141 uint8 backStencilFailOp
;
1142 uint8 backStencilDepthFailOp
;
1143 uint8 backStencilPassOp
;
1144 SVGA3dComparisonFunc backStencilFunc
;
1146 #include "vmware_pack_end.h"
1147 SVGA3dCmdDXDefineDepthStencilState
;
1148 /* SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_STATE */
1151 #include "vmware_pack_begin.h"
1152 struct SVGA3dCmdDXDestroyDepthStencilState
{
1153 SVGA3dDepthStencilStateId depthStencilId
;
1155 #include "vmware_pack_end.h"
1156 SVGA3dCmdDXDestroyDepthStencilState
;
1157 /* SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_STATE */
1160 #include "vmware_pack_begin.h"
1163 SVGA3dCullMode cullMode
;
1164 uint8 frontCounterClockwise
;
1165 uint8 provokingVertexLast
;
1167 float depthBiasClamp
;
1168 float slopeScaledDepthBias
;
1169 uint8 depthClipEnable
;
1170 uint8 scissorEnable
;
1171 uint8 multisampleEnable
;
1172 uint8 antialiasedLineEnable
;
1174 uint8 lineStippleEnable
;
1175 uint8 lineStippleFactor
;
1176 uint16 lineStipplePattern
;
1177 uint32 forcedSampleCount
;
1179 #include "vmware_pack_end.h"
1180 SVGACOTableDXRasterizerStateEntry
;
1185 #include "vmware_pack_begin.h"
1186 struct SVGA3dCmdDXDefineRasterizerState
{
1187 SVGA3dRasterizerStateId rasterizerId
;
1190 SVGA3dCullMode cullMode
;
1191 uint8 frontCounterClockwise
;
1192 uint8 provokingVertexLast
;
1194 float depthBiasClamp
;
1195 float slopeScaledDepthBias
;
1196 uint8 depthClipEnable
;
1197 uint8 scissorEnable
;
1198 uint8 multisampleEnable
;
1199 uint8 antialiasedLineEnable
;
1201 uint8 lineStippleEnable
;
1202 uint8 lineStippleFactor
;
1203 uint16 lineStipplePattern
;
1205 #include "vmware_pack_end.h"
1206 SVGA3dCmdDXDefineRasterizerState
;
1207 /* SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE */
1210 #include "vmware_pack_begin.h"
1211 struct SVGA3dCmdDXDestroyRasterizerState
{
1212 SVGA3dRasterizerStateId rasterizerId
;
1214 #include "vmware_pack_end.h"
1215 SVGA3dCmdDXDestroyRasterizerState
;
1216 /* SVGA_3D_CMD_DX_DESTROY_RASTERIZER_STATE */
1219 #include "vmware_pack_begin.h"
1221 SVGA3dFilter filter
;
1227 uint8 maxAnisotropy
;
1228 SVGA3dComparisonFunc comparisonFunc
;
1230 SVGA3dRGBAFloat borderColor
;
1235 #include "vmware_pack_end.h"
1236 SVGACOTableDXSamplerEntry
;
1241 #include "vmware_pack_begin.h"
1242 struct SVGA3dCmdDXDefineSamplerState
{
1243 SVGA3dSamplerId samplerId
;
1244 SVGA3dFilter filter
;
1250 uint8 maxAnisotropy
;
1251 SVGA3dComparisonFunc comparisonFunc
;
1253 SVGA3dRGBAFloat borderColor
;
1257 #include "vmware_pack_end.h"
1258 SVGA3dCmdDXDefineSamplerState
; /* SVGA_3D_CMD_DX_DEFINE_SAMPLER_STATE */
1261 #include "vmware_pack_begin.h"
1262 struct SVGA3dCmdDXDestroySamplerState
{
1263 SVGA3dSamplerId samplerId
;
1265 #include "vmware_pack_end.h"
1266 SVGA3dCmdDXDestroySamplerState
; /* SVGA_3D_CMD_DX_DESTROY_SAMPLER_STATE */
1269 #include "vmware_pack_begin.h"
1270 struct SVGA3dCmdDXDefineShader
{
1271 SVGA3dShaderId shaderId
;
1272 SVGA3dShaderType type
;
1273 uint32 sizeInBytes
; /* Number of bytes of shader text. */
1275 #include "vmware_pack_end.h"
1276 SVGA3dCmdDXDefineShader
; /* SVGA_3D_CMD_DX_DEFINE_SHADER */
1279 #include "vmware_pack_begin.h"
1280 struct SVGACOTableDXShaderEntry
{
1281 SVGA3dShaderType type
;
1283 uint32 offsetInBytes
;
1287 #include "vmware_pack_end.h"
1288 SVGACOTableDXShaderEntry
;
1291 #include "vmware_pack_begin.h"
1292 struct SVGA3dCmdDXDestroyShader
{
1293 SVGA3dShaderId shaderId
;
1295 #include "vmware_pack_end.h"
1296 SVGA3dCmdDXDestroyShader
; /* SVGA_3D_CMD_DX_DESTROY_SHADER */
1299 #include "vmware_pack_begin.h"
1300 struct SVGA3dCmdDXBindShader
{
1304 uint32 offsetInBytes
;
1306 #include "vmware_pack_end.h"
1307 SVGA3dCmdDXBindShader
; /* SVGA_3D_CMD_DX_BIND_SHADER */
1310 #include "vmware_pack_begin.h"
1311 struct SVGA3dCmdDXBindAllShader
{
1315 #include "vmware_pack_end.h"
1316 SVGA3dCmdDXBindAllShader
; /* SVGA_3D_CMD_DX_BIND_ALL_SHADER */
1319 #include "vmware_pack_begin.h"
1320 struct SVGA3dCmdDXCondBindAllShader
{
1322 SVGAMobId testMobid
;
1325 #include "vmware_pack_end.h"
1326 SVGA3dCmdDXCondBindAllShader
; /* SVGA_3D_CMD_DX_COND_BIND_ALL_SHADER */
1329 * The maximum number of streamout decl's in each streamout entry.
1331 #define SVGA3D_MAX_STREAMOUT_DECLS 64
1334 #include "vmware_pack_begin.h"
1335 struct SVGA3dStreamOutputDeclarationEntry
{
1337 uint32 registerIndex
;
1343 #include "vmware_pack_end.h"
1344 SVGA3dStreamOutputDeclarationEntry
;
1347 #include "vmware_pack_begin.h"
1348 struct SVGAOTableStreamOutputEntry
{
1349 uint32 numOutputStreamEntries
;
1350 SVGA3dStreamOutputDeclarationEntry decl
[SVGA3D_MAX_STREAMOUT_DECLS
];
1351 uint32 streamOutputStrideInBytes
[SVGA3D_DX_MAX_SOTARGETS
];
1352 uint32 rasterizedStream
;
1355 #include "vmware_pack_end.h"
1356 SVGACOTableDXStreamOutputEntry
;
1359 #include "vmware_pack_begin.h"
1360 struct SVGA3dCmdDXDefineStreamOutput
{
1361 SVGA3dStreamOutputId soid
;
1362 uint32 numOutputStreamEntries
;
1363 SVGA3dStreamOutputDeclarationEntry decl
[SVGA3D_MAX_STREAMOUT_DECLS
];
1364 uint32 streamOutputStrideInBytes
[SVGA3D_DX_MAX_SOTARGETS
];
1365 uint32 rasterizedStream
;
1367 #include "vmware_pack_end.h"
1368 SVGA3dCmdDXDefineStreamOutput
; /* SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT */
1371 #include "vmware_pack_begin.h"
1372 struct SVGA3dCmdDXDestroyStreamOutput
{
1373 SVGA3dStreamOutputId soid
;
1375 #include "vmware_pack_end.h"
1376 SVGA3dCmdDXDestroyStreamOutput
; /* SVGA_3D_CMD_DX_DESTROY_STREAMOUTPUT */
1379 #include "vmware_pack_begin.h"
1380 struct SVGA3dCmdDXSetStreamOutput
{
1381 SVGA3dStreamOutputId soid
;
1383 #include "vmware_pack_end.h"
1384 SVGA3dCmdDXSetStreamOutput
; /* SVGA_3D_CMD_DX_SET_STREAMOUTPUT */
1387 #include "vmware_pack_begin.h"
1393 #include "vmware_pack_end.h"
1394 SVGA3dCmdDXMobFence64
; /* SVGA_3D_CMD_DX_MOB_FENCE_64 */
1397 * SVGA3dCmdSetCOTable --
1399 * This command allows the guest to bind a mob to a context-object table.
1403 #include "vmware_pack_begin.h"
1404 struct SVGA3dCmdDXSetCOTable
{
1407 SVGACOTableType type
;
1408 uint32 validSizeInBytes
;
1410 #include "vmware_pack_end.h"
1411 SVGA3dCmdDXSetCOTable
; /* SVGA_3D_CMD_DX_SET_COTABLE */
1414 #include "vmware_pack_begin.h"
1415 struct SVGA3dCmdDXReadbackCOTable
{
1417 SVGACOTableType type
;
1419 #include "vmware_pack_end.h"
1420 SVGA3dCmdDXReadbackCOTable
; /* SVGA_3D_CMD_DX_READBACK_COTABLE */
1423 #include "vmware_pack_begin.h"
1424 struct SVGA3dCOTableData
{
1427 #include "vmware_pack_end.h"
1431 #include "vmware_pack_begin.h"
1432 struct SVGA3dBufferBinding
{
1437 #include "vmware_pack_end.h"
1438 SVGA3dBufferBinding
;
1441 #include "vmware_pack_begin.h"
1442 struct SVGA3dConstantBufferBinding
{
1444 uint32 offsetInBytes
;
1447 #include "vmware_pack_end.h"
1448 SVGA3dConstantBufferBinding
;
1451 #include "vmware_pack_begin.h"
1452 struct SVGADXInputAssemblyMobFormat
{
1454 SVGA3dBufferBinding vertexBuffers
[SVGA3D_DX_MAX_VERTEXBUFFERS
];
1455 uint32 indexBufferSid
;
1457 uint32 indexBufferOffset
;
1458 uint32 indexBufferFormat
;
1461 #include "vmware_pack_end.h"
1462 SVGADXInputAssemblyMobFormat
;
1465 #include "vmware_pack_begin.h"
1466 struct SVGADXContextMobFormat
{
1467 SVGADXInputAssemblyMobFormat inputAssembly
;
1470 uint32 blendStateId
;
1471 uint32 blendFactor
[4];
1473 uint32 depthStencilStateId
;
1475 uint32 rasterizerStateId
;
1476 uint32 depthStencilViewId
;
1477 uint32 renderTargetViewIds
[SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS
];
1478 uint32 unorderedAccessViewIds
[SVGA3D_MAX_UAVIEWS
];
1482 uint32 targets
[SVGA3D_DX_MAX_SOTARGETS
];
1488 uint8 numScissorRects
;
1493 SVGA3dViewport viewports
[SVGA3D_DX_MAX_VIEWPORTS
];
1496 SVGASignedRect scissorRects
[SVGA3D_DX_MAX_SCISSORRECTS
];
1507 SVGA3dConstantBufferBinding constantBuffers
[SVGA3D_DX_MAX_CONSTBUFFERS
];
1508 uint32 shaderResources
[SVGA3D_DX_MAX_SRVIEWS
];
1509 uint32 samplers
[SVGA3D_DX_MAX_SAMPLERS
];
1510 } shaderState
[SVGA3D_NUM_SHADERTYPE
];
1513 SVGA3dQueryId queryID
[SVGA3D_MAX_QUERY
];
1515 SVGA3dCOTableData cotables
[SVGA_COTABLE_MAX
];
1518 #include "vmware_pack_end.h"
1519 SVGADXContextMobFormat
;
1521 #endif /* _SVGA3D_DX_H_ */