brintos

brintos / linux-shallow public Read only

0
0
Text · 33.5 KiB · d90d940 Raw
1514 lines · c
1/* SPDX-License-Identifier: GPL-2.0 OR MIT */2/*3 * Copyright 2012-2021 VMware, Inc.4 *5 * Permission is hereby granted, free of charge, to any person6 * obtaining a copy of this software and associated documentation7 * files (the "Software"), to deal in the Software without8 * restriction, including without limitation the rights to use, copy,9 * modify, merge, publish, distribute, sublicense, and/or sell copies10 * of the Software, and to permit persons to whom the Software is11 * furnished to do so, subject to the following conditions:12 *13 * The above copyright notice and this permission notice shall be14 * 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 OF18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS20 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN21 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE23 * SOFTWARE.24 *25 */26 27/*28 * svga3d_cmd.h --29 *30 *    SVGA 3d hardware cmd definitions31 */32 33 34 35#ifndef _SVGA3D_CMD_H_36#define _SVGA3D_CMD_H_37 38#include "svga3d_types.h"39#include "svga3d_limits.h"40#include "svga_reg.h"41 42typedef enum SVGAFifo3dCmdId {43	SVGA_3D_CMD_LEGACY_BASE = 1000,44	SVGA_3D_CMD_BASE = 1040,45 46	SVGA_3D_CMD_SURFACE_DEFINE = 1040,47	SVGA_3D_CMD_SURFACE_DESTROY = 1041,48	SVGA_3D_CMD_SURFACE_COPY = 1042,49	SVGA_3D_CMD_SURFACE_STRETCHBLT = 1043,50	SVGA_3D_CMD_SURFACE_DMA = 1044,51	SVGA_3D_CMD_CONTEXT_DEFINE = 1045,52	SVGA_3D_CMD_CONTEXT_DESTROY = 1046,53	SVGA_3D_CMD_SETTRANSFORM = 1047,54	SVGA_3D_CMD_SETZRANGE = 1048,55	SVGA_3D_CMD_SETRENDERSTATE = 1049,56	SVGA_3D_CMD_SETRENDERTARGET = 1050,57	SVGA_3D_CMD_SETTEXTURESTATE = 1051,58	SVGA_3D_CMD_SETMATERIAL = 1052,59	SVGA_3D_CMD_SETLIGHTDATA = 1053,60	SVGA_3D_CMD_SETLIGHTENABLED = 1054,61	SVGA_3D_CMD_SETVIEWPORT = 1055,62	SVGA_3D_CMD_SETCLIPPLANE = 1056,63	SVGA_3D_CMD_CLEAR = 1057,64	SVGA_3D_CMD_PRESENT = 1058,65	SVGA_3D_CMD_SHADER_DEFINE = 1059,66	SVGA_3D_CMD_SHADER_DESTROY = 1060,67	SVGA_3D_CMD_SET_SHADER = 1061,68	SVGA_3D_CMD_SET_SHADER_CONST = 1062,69	SVGA_3D_CMD_DRAW_PRIMITIVES = 1063,70	SVGA_3D_CMD_SETSCISSORRECT = 1064,71	SVGA_3D_CMD_BEGIN_QUERY = 1065,72	SVGA_3D_CMD_END_QUERY = 1066,73	SVGA_3D_CMD_WAIT_FOR_QUERY = 1067,74	SVGA_3D_CMD_PRESENT_READBACK = 1068,75	SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN = 1069,76	SVGA_3D_CMD_SURFACE_DEFINE_V2 = 1070,77	SVGA_3D_CMD_GENERATE_MIPMAPS = 1071,78	SVGA_3D_CMD_DEAD4 = 1072,79	SVGA_3D_CMD_DEAD5 = 1073,80	SVGA_3D_CMD_DEAD6 = 1074,81	SVGA_3D_CMD_DEAD7 = 1075,82	SVGA_3D_CMD_DEAD8 = 1076,83	SVGA_3D_CMD_DEAD9 = 1077,84	SVGA_3D_CMD_DEAD10 = 1078,85	SVGA_3D_CMD_DEAD11 = 1079,86	SVGA_3D_CMD_ACTIVATE_SURFACE = 1080,87	SVGA_3D_CMD_DEACTIVATE_SURFACE = 1081,88	SVGA_3D_CMD_SCREEN_DMA = 1082,89	SVGA_3D_CMD_DEAD1 = 1083,90	SVGA_3D_CMD_DEAD2 = 1084,91 92	SVGA_3D_CMD_DEAD12 = 1085,93	SVGA_3D_CMD_DEAD13 = 1086,94	SVGA_3D_CMD_DEAD14 = 1087,95	SVGA_3D_CMD_DEAD15 = 1088,96	SVGA_3D_CMD_DEAD16 = 1089,97	SVGA_3D_CMD_DEAD17 = 1090,98 99	SVGA_3D_CMD_SET_OTABLE_BASE = 1091,100	SVGA_3D_CMD_READBACK_OTABLE = 1092,101 102	SVGA_3D_CMD_DEFINE_GB_MOB = 1093,103	SVGA_3D_CMD_DESTROY_GB_MOB = 1094,104	SVGA_3D_CMD_DEAD3 = 1095,105	SVGA_3D_CMD_UPDATE_GB_MOB_MAPPING = 1096,106 107	SVGA_3D_CMD_DEFINE_GB_SURFACE = 1097,108	SVGA_3D_CMD_DESTROY_GB_SURFACE = 1098,109	SVGA_3D_CMD_BIND_GB_SURFACE = 1099,110	SVGA_3D_CMD_COND_BIND_GB_SURFACE = 1100,111	SVGA_3D_CMD_UPDATE_GB_IMAGE = 1101,112	SVGA_3D_CMD_UPDATE_GB_SURFACE = 1102,113	SVGA_3D_CMD_READBACK_GB_IMAGE = 1103,114	SVGA_3D_CMD_READBACK_GB_SURFACE = 1104,115	SVGA_3D_CMD_INVALIDATE_GB_IMAGE = 1105,116	SVGA_3D_CMD_INVALIDATE_GB_SURFACE = 1106,117 118	SVGA_3D_CMD_DEFINE_GB_CONTEXT = 1107,119	SVGA_3D_CMD_DESTROY_GB_CONTEXT = 1108,120	SVGA_3D_CMD_BIND_GB_CONTEXT = 1109,121	SVGA_3D_CMD_READBACK_GB_CONTEXT = 1110,122	SVGA_3D_CMD_INVALIDATE_GB_CONTEXT = 1111,123 124	SVGA_3D_CMD_DEFINE_GB_SHADER = 1112,125	SVGA_3D_CMD_DESTROY_GB_SHADER = 1113,126	SVGA_3D_CMD_BIND_GB_SHADER = 1114,127 128	SVGA_3D_CMD_SET_OTABLE_BASE64 = 1115,129 130	SVGA_3D_CMD_BEGIN_GB_QUERY = 1116,131	SVGA_3D_CMD_END_GB_QUERY = 1117,132	SVGA_3D_CMD_WAIT_FOR_GB_QUERY = 1118,133 134	SVGA_3D_CMD_NOP = 1119,135 136	SVGA_3D_CMD_ENABLE_GART = 1120,137	SVGA_3D_CMD_DISABLE_GART = 1121,138	SVGA_3D_CMD_MAP_MOB_INTO_GART = 1122,139	SVGA_3D_CMD_UNMAP_GART_RANGE = 1123,140 141	SVGA_3D_CMD_DEFINE_GB_SCREENTARGET = 1124,142	SVGA_3D_CMD_DESTROY_GB_SCREENTARGET = 1125,143	SVGA_3D_CMD_BIND_GB_SCREENTARGET = 1126,144	SVGA_3D_CMD_UPDATE_GB_SCREENTARGET = 1127,145 146	SVGA_3D_CMD_READBACK_GB_IMAGE_PARTIAL = 1128,147	SVGA_3D_CMD_INVALIDATE_GB_IMAGE_PARTIAL = 1129,148 149	SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE = 1130,150 151	SVGA_3D_CMD_GB_SCREEN_DMA = 1131,152	SVGA_3D_CMD_BIND_GB_SURFACE_WITH_PITCH = 1132,153	SVGA_3D_CMD_GB_MOB_FENCE = 1133,154	SVGA_3D_CMD_DEFINE_GB_SURFACE_V2 = 1134,155	SVGA_3D_CMD_DEFINE_GB_MOB64 = 1135,156	SVGA_3D_CMD_REDEFINE_GB_MOB64 = 1136,157	SVGA_3D_CMD_NOP_ERROR = 1137,158 159	SVGA_3D_CMD_SET_VERTEX_STREAMS = 1138,160	SVGA_3D_CMD_SET_VERTEX_DECLS = 1139,161	SVGA_3D_CMD_SET_VERTEX_DIVISORS = 1140,162	SVGA_3D_CMD_DRAW = 1141,163	SVGA_3D_CMD_DRAW_INDEXED = 1142,164 165	SVGA_3D_CMD_DX_MIN = 1143,166	SVGA_3D_CMD_DX_DEFINE_CONTEXT = 1143,167	SVGA_3D_CMD_DX_DESTROY_CONTEXT = 1144,168	SVGA_3D_CMD_DX_BIND_CONTEXT = 1145,169	SVGA_3D_CMD_DX_READBACK_CONTEXT = 1146,170	SVGA_3D_CMD_DX_INVALIDATE_CONTEXT = 1147,171	SVGA_3D_CMD_DX_SET_SINGLE_CONSTANT_BUFFER = 1148,172	SVGA_3D_CMD_DX_SET_SHADER_RESOURCES = 1149,173	SVGA_3D_CMD_DX_SET_SHADER = 1150,174	SVGA_3D_CMD_DX_SET_SAMPLERS = 1151,175	SVGA_3D_CMD_DX_DRAW = 1152,176	SVGA_3D_CMD_DX_DRAW_INDEXED = 1153,177	SVGA_3D_CMD_DX_DRAW_INSTANCED = 1154,178	SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED = 1155,179	SVGA_3D_CMD_DX_DRAW_AUTO = 1156,180	SVGA_3D_CMD_DX_SET_INPUT_LAYOUT = 1157,181	SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS = 1158,182	SVGA_3D_CMD_DX_SET_INDEX_BUFFER = 1159,183	SVGA_3D_CMD_DX_SET_TOPOLOGY = 1160,184	SVGA_3D_CMD_DX_SET_RENDERTARGETS = 1161,185	SVGA_3D_CMD_DX_SET_BLEND_STATE = 1162,186	SVGA_3D_CMD_DX_SET_DEPTHSTENCIL_STATE = 1163,187	SVGA_3D_CMD_DX_SET_RASTERIZER_STATE = 1164,188	SVGA_3D_CMD_DX_DEFINE_QUERY = 1165,189	SVGA_3D_CMD_DX_DESTROY_QUERY = 1166,190	SVGA_3D_CMD_DX_BIND_QUERY = 1167,191	SVGA_3D_CMD_DX_SET_QUERY_OFFSET = 1168,192	SVGA_3D_CMD_DX_BEGIN_QUERY = 1169,193	SVGA_3D_CMD_DX_END_QUERY = 1170,194	SVGA_3D_CMD_DX_READBACK_QUERY = 1171,195	SVGA_3D_CMD_DX_SET_PREDICATION = 1172,196	SVGA_3D_CMD_DX_SET_SOTARGETS = 1173,197	SVGA_3D_CMD_DX_SET_VIEWPORTS = 1174,198	SVGA_3D_CMD_DX_SET_SCISSORRECTS = 1175,199	SVGA_3D_CMD_DX_CLEAR_RENDERTARGET_VIEW = 1176,200	SVGA_3D_CMD_DX_CLEAR_DEPTHSTENCIL_VIEW = 1177,201	SVGA_3D_CMD_DX_PRED_COPY_REGION = 1178,202	SVGA_3D_CMD_DX_PRED_COPY = 1179,203	SVGA_3D_CMD_DX_PRESENTBLT = 1180,204	SVGA_3D_CMD_DX_GENMIPS = 1181,205	SVGA_3D_CMD_DX_UPDATE_SUBRESOURCE = 1182,206	SVGA_3D_CMD_DX_READBACK_SUBRESOURCE = 1183,207	SVGA_3D_CMD_DX_INVALIDATE_SUBRESOURCE = 1184,208	SVGA_3D_CMD_DX_DEFINE_SHADERRESOURCE_VIEW = 1185,209	SVGA_3D_CMD_DX_DESTROY_SHADERRESOURCE_VIEW = 1186,210	SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW = 1187,211	SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW = 1188,212	SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW = 1189,213	SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_VIEW = 1190,214	SVGA_3D_CMD_DX_DEFINE_ELEMENTLAYOUT = 1191,215	SVGA_3D_CMD_DX_DESTROY_ELEMENTLAYOUT = 1192,216	SVGA_3D_CMD_DX_DEFINE_BLEND_STATE = 1193,217	SVGA_3D_CMD_DX_DESTROY_BLEND_STATE = 1194,218	SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_STATE = 1195,219	SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_STATE = 1196,220	SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE = 1197,221	SVGA_3D_CMD_DX_DESTROY_RASTERIZER_STATE = 1198,222	SVGA_3D_CMD_DX_DEFINE_SAMPLER_STATE = 1199,223	SVGA_3D_CMD_DX_DESTROY_SAMPLER_STATE = 1200,224	SVGA_3D_CMD_DX_DEFINE_SHADER = 1201,225	SVGA_3D_CMD_DX_DESTROY_SHADER = 1202,226	SVGA_3D_CMD_DX_BIND_SHADER = 1203,227	SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT = 1204,228	SVGA_3D_CMD_DX_DESTROY_STREAMOUTPUT = 1205,229	SVGA_3D_CMD_DX_SET_STREAMOUTPUT = 1206,230	SVGA_3D_CMD_DX_SET_COTABLE = 1207,231	SVGA_3D_CMD_DX_READBACK_COTABLE = 1208,232	SVGA_3D_CMD_DX_BUFFER_COPY = 1209,233	SVGA_3D_CMD_DX_TRANSFER_FROM_BUFFER = 1210,234	SVGA_3D_CMD_DX_SURFACE_COPY_AND_READBACK = 1211,235	SVGA_3D_CMD_DX_MOVE_QUERY = 1212,236	SVGA_3D_CMD_DX_BIND_ALL_QUERY = 1213,237	SVGA_3D_CMD_DX_READBACK_ALL_QUERY = 1214,238	SVGA_3D_CMD_DX_PRED_TRANSFER_FROM_BUFFER = 1215,239	SVGA_3D_CMD_DX_MOB_FENCE_64 = 1216,240	SVGA_3D_CMD_DX_BIND_ALL_SHADER = 1217,241	SVGA_3D_CMD_DX_HINT = 1218,242	SVGA_3D_CMD_DX_BUFFER_UPDATE = 1219,243	SVGA_3D_CMD_DX_SET_VS_CONSTANT_BUFFER_OFFSET = 1220,244	SVGA_3D_CMD_DX_SET_PS_CONSTANT_BUFFER_OFFSET = 1221,245	SVGA_3D_CMD_DX_SET_GS_CONSTANT_BUFFER_OFFSET = 1222,246	SVGA_3D_CMD_DX_SET_HS_CONSTANT_BUFFER_OFFSET = 1223,247	SVGA_3D_CMD_DX_SET_DS_CONSTANT_BUFFER_OFFSET = 1224,248	SVGA_3D_CMD_DX_SET_CS_CONSTANT_BUFFER_OFFSET = 1225,249 250	SVGA_3D_CMD_DX_COND_BIND_ALL_SHADER = 1226,251	SVGA_3D_CMD_DX_MAX = 1227,252 253	SVGA_3D_CMD_SCREEN_COPY = 1227,254 255	SVGA_3D_CMD_RESERVED1 = 1228,256	SVGA_3D_CMD_RESERVED2 = 1229,257	SVGA_3D_CMD_RESERVED3 = 1230,258	SVGA_3D_CMD_RESERVED4 = 1231,259	SVGA_3D_CMD_RESERVED5 = 1232,260	SVGA_3D_CMD_RESERVED6 = 1233,261	SVGA_3D_CMD_RESERVED7 = 1234,262	SVGA_3D_CMD_RESERVED8 = 1235,263 264	SVGA_3D_CMD_GROW_OTABLE = 1236,265	SVGA_3D_CMD_DX_GROW_COTABLE = 1237,266	SVGA_3D_CMD_INTRA_SURFACE_COPY = 1238,267 268	SVGA_3D_CMD_DEFINE_GB_SURFACE_V3 = 1239,269 270	SVGA_3D_CMD_DX_RESOLVE_COPY = 1240,271	SVGA_3D_CMD_DX_PRED_RESOLVE_COPY = 1241,272	SVGA_3D_CMD_DX_PRED_CONVERT_REGION = 1242,273	SVGA_3D_CMD_DX_PRED_CONVERT = 1243,274	SVGA_3D_CMD_WHOLE_SURFACE_COPY = 1244,275 276	SVGA_3D_CMD_DX_DEFINE_UA_VIEW = 1245,277	SVGA_3D_CMD_DX_DESTROY_UA_VIEW = 1246,278	SVGA_3D_CMD_DX_CLEAR_UA_VIEW_UINT = 1247,279	SVGA_3D_CMD_DX_CLEAR_UA_VIEW_FLOAT = 1248,280	SVGA_3D_CMD_DX_COPY_STRUCTURE_COUNT = 1249,281	SVGA_3D_CMD_DX_SET_UA_VIEWS = 1250,282 283	SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED_INDIRECT = 1251,284	SVGA_3D_CMD_DX_DRAW_INSTANCED_INDIRECT = 1252,285	SVGA_3D_CMD_DX_DISPATCH = 1253,286	SVGA_3D_CMD_DX_DISPATCH_INDIRECT = 1254,287 288	SVGA_3D_CMD_WRITE_ZERO_SURFACE = 1255,289	SVGA_3D_CMD_UPDATE_ZERO_SURFACE = 1256,290	SVGA_3D_CMD_DX_TRANSFER_TO_BUFFER = 1257,291	SVGA_3D_CMD_DX_SET_STRUCTURE_COUNT = 1258,292 293	SVGA_3D_CMD_LOGICOPS_BITBLT = 1259,294	SVGA_3D_CMD_LOGICOPS_TRANSBLT = 1260,295	SVGA_3D_CMD_LOGICOPS_STRETCHBLT = 1261,296	SVGA_3D_CMD_LOGICOPS_COLORFILL = 1262,297	SVGA_3D_CMD_LOGICOPS_ALPHABLEND = 1263,298	SVGA_3D_CMD_LOGICOPS_CLEARTYPEBLEND = 1264,299 300	SVGA_3D_CMD_DX_COPY_COTABLE_INTO_MOB = 1265,301 302	SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_V2 = 1266,303 304	SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 = 1267,305	SVGA_3D_CMD_DX_SET_CS_UA_VIEWS = 1268,306	SVGA_3D_CMD_DX_SET_MIN_LOD = 1269,307 308	SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW_V2 = 1272,309	SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT_WITH_MOB = 1273,310	SVGA_3D_CMD_DX_SET_SHADER_IFACE = 1274,311	SVGA_3D_CMD_DX_BIND_STREAMOUTPUT = 1275,312	SVGA_3D_CMD_SURFACE_STRETCHBLT_NON_MS_TO_MS = 1276,313	SVGA_3D_CMD_DX_BIND_SHADER_IFACE = 1277,314 315	SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_MOVE = 1278,316 317	SVGA_3D_CMD_DX_PRED_STAGING_COPY = 1281,318	SVGA_3D_CMD_DX_STAGING_COPY = 1282,319	SVGA_3D_CMD_DX_PRED_STAGING_COPY_REGION = 1283,320	SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_V2 = 1284,321	SVGA_3D_CMD_DX_SET_INDEX_BUFFER_V2 = 1285,322	SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_OFFSET_AND_SIZE = 1286,323	SVGA_3D_CMD_DX_SET_INDEX_BUFFER_OFFSET_AND_SIZE = 1287,324	SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 = 1288,325	SVGA_3D_CMD_DX_PRED_STAGING_CONVERT_REGION = 1289,326	SVGA_3D_CMD_DX_PRED_STAGING_CONVERT = 1290,327	SVGA_3D_CMD_DX_STAGING_BUFFER_COPY = 1291,328 329	SVGA_3D_CMD_MAX = 1303,330	SVGA_3D_CMD_FUTURE_MAX = 3000331} SVGAFifo3dCmdId;332 333#define SVGA_NUM_3D_CMD (SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE)334 335#pragma pack(push, 1)336typedef struct {337	uint32 id;338	uint32 size;339} SVGA3dCmdHeader;340#pragma pack(pop)341 342#pragma pack(push, 1)343typedef struct {344	uint32 numMipLevels;345} SVGA3dSurfaceFace;346#pragma pack(pop)347 348#pragma pack(push, 1)349typedef struct {350	uint32 sid;351	SVGA3dSurface1Flags surfaceFlags;352	SVGA3dSurfaceFormat format;353 354	SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];355 356} SVGA3dCmdDefineSurface;357#pragma pack(pop)358 359#pragma pack(push, 1)360typedef struct {361	uint32 sid;362	SVGA3dSurface1Flags surfaceFlags;363	SVGA3dSurfaceFormat format;364 365	SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];366	uint32 multisampleCount;367	SVGA3dTextureFilter autogenFilter;368 369} SVGA3dCmdDefineSurface_v2;370#pragma pack(pop)371 372#pragma pack(push, 1)373typedef struct {374	uint32 sid;375} SVGA3dCmdDestroySurface;376#pragma pack(pop)377 378#pragma pack(push, 1)379typedef struct {380	uint32 cid;381} SVGA3dCmdDefineContext;382#pragma pack(pop)383 384#pragma pack(push, 1)385typedef struct {386	uint32 cid;387} SVGA3dCmdDestroyContext;388#pragma pack(pop)389 390#pragma pack(push, 1)391typedef struct {392	uint32 cid;393	SVGA3dClearFlag clearFlag;394	uint32 color;395	float depth;396	uint32 stencil;397 398} SVGA3dCmdClear;399#pragma pack(pop)400 401#pragma pack(push, 1)402typedef struct {403	SVGA3dLightType type;404	SVGA3dBool inWorldSpace;405	float diffuse[4];406	float specular[4];407	float ambient[4];408	float position[4];409	float direction[4];410	float range;411	float falloff;412	float attenuation0;413	float attenuation1;414	float attenuation2;415	float theta;416	float phi;417} SVGA3dLightData;418#pragma pack(pop)419 420#pragma pack(push, 1)421typedef struct {422	uint32 sid;423 424} SVGA3dCmdPresent;425#pragma pack(pop)426 427#pragma pack(push, 1)428typedef struct {429	SVGA3dRenderStateName state;430	union {431		uint32 uintValue;432		float floatValue;433	};434} SVGA3dRenderState;435#pragma pack(pop)436 437#pragma pack(push, 1)438typedef struct {439	uint32 cid;440 441} SVGA3dCmdSetRenderState;442#pragma pack(pop)443 444#pragma pack(push, 1)445typedef struct {446	uint32 cid;447	SVGA3dRenderTargetType type;448	SVGA3dSurfaceImageId target;449} SVGA3dCmdSetRenderTarget;450#pragma pack(pop)451 452#pragma pack(push, 1)453typedef struct {454	SVGA3dSurfaceImageId src;455	SVGA3dSurfaceImageId dest;456 457} SVGA3dCmdSurfaceCopy;458#pragma pack(pop)459 460#pragma pack(push, 1)461typedef struct {462	SVGA3dSurfaceImageId surface;463	SVGA3dCopyBox box;464} SVGA3dCmdIntraSurfaceCopy;465#pragma pack(pop)466 467#pragma pack(push, 1)468typedef struct {469	uint32 srcSid;470	uint32 destSid;471} SVGA3dCmdWholeSurfaceCopy;472#pragma pack(pop)473 474#pragma pack(push, 1)475typedef struct {476	SVGA3dSurfaceImageId src;477	SVGA3dSurfaceImageId dest;478	SVGA3dBox boxSrc;479	SVGA3dBox boxDest;480} SVGA3dCmdSurfaceStretchBltNonMSToMS;481#pragma pack(pop)482 483#pragma pack(push, 1)484typedef struct {485	SVGA3dSurfaceImageId src;486	SVGA3dSurfaceImageId dest;487	SVGA3dBox boxSrc;488	SVGA3dBox boxDest;489	SVGA3dStretchBltMode mode;490} SVGA3dCmdSurfaceStretchBlt;491#pragma pack(pop)492 493#pragma pack(push, 1)494typedef struct {495	uint32 discard : 1;496 497	uint32 unsynchronized : 1;498 499	uint32 reserved : 30;500} SVGA3dSurfaceDMAFlags;501#pragma pack(pop)502 503#pragma pack(push, 1)504typedef struct {505	SVGAGuestImage guest;506	SVGA3dSurfaceImageId host;507	SVGA3dTransferType transfer;508 509} SVGA3dCmdSurfaceDMA;510#pragma pack(pop)511 512#pragma pack(push, 1)513typedef struct {514	uint32 suffixSize;515 516	uint32 maximumOffset;517 518	SVGA3dSurfaceDMAFlags flags;519} SVGA3dCmdSurfaceDMASuffix;520#pragma pack(pop)521 522#pragma pack(push, 1)523typedef struct {524	uint32 first;525	uint32 last;526} SVGA3dArrayRangeHint;527#pragma pack(pop)528 529#pragma pack(push, 1)530typedef struct {531	uint32 surfaceId;532	uint32 offset;533	uint32 stride;534} SVGA3dArray;535#pragma pack(pop)536 537#pragma pack(push, 1)538typedef struct {539	SVGA3dDeclType type;540	SVGA3dDeclMethod method;541	SVGA3dDeclUsage usage;542	uint32 usageIndex;543} SVGA3dVertexArrayIdentity;544#pragma pack(pop)545 546#pragma pack(push, 1)547typedef struct SVGA3dVertexDecl {548	SVGA3dVertexArrayIdentity identity;549	SVGA3dArray array;550	SVGA3dArrayRangeHint rangeHint;551} SVGA3dVertexDecl;552#pragma pack(pop)553 554#pragma pack(push, 1)555typedef struct SVGA3dPrimitiveRange {556	SVGA3dPrimitiveType primType;557	uint32 primitiveCount;558 559	SVGA3dArray indexArray;560	uint32 indexWidth;561 562	int32 indexBias;563} SVGA3dPrimitiveRange;564#pragma pack(pop)565 566#pragma pack(push, 1)567typedef struct {568	uint32 cid;569	uint32 numVertexDecls;570	uint32 numRanges;571 572} SVGA3dCmdDrawPrimitives;573#pragma pack(pop)574 575#pragma pack(push, 1)576typedef struct {577	uint32 cid;578 579	uint32 primitiveCount;580	uint32 startVertexLocation;581 582	uint8 primitiveType;583	uint8 padding[3];584} SVGA3dCmdDraw;585#pragma pack(pop)586 587#pragma pack(push, 1)588typedef struct {589	uint32 cid;590 591	uint8 primitiveType;592 593	uint32 indexBufferSid;594	uint32 indexBufferOffset;595 596	uint8 indexBufferStride;597 598	int32 baseVertexLocation;599 600	uint32 primitiveCount;601	uint32 pad0;602	uint16 pad1;603} SVGA3dCmdDrawIndexed;604#pragma pack(pop)605 606#pragma pack(push, 1)607typedef struct {608	uint16 streamOffset;609	uint8 stream;610	uint8 type;611	uint8 method;612	uint8 usage;613	uint8 usageIndex;614	uint8 padding;615 616} SVGA3dVertexElement;617#pragma pack(pop)618 619#define SVGA3D_VERTEX_ELEMENT_RESPECT_STREAM (1 << 7)620 621#pragma pack(push, 1)622typedef struct {623	uint32 cid;624 625	uint32 numElements;626 627} SVGA3dCmdSetVertexDecls;628#pragma pack(pop)629 630#pragma pack(push, 1)631typedef struct {632	uint32 sid;633	uint32 stride;634	uint32 offset;635} SVGA3dVertexStream;636#pragma pack(pop)637 638#pragma pack(push, 1)639typedef struct {640	uint32 cid;641 642	uint32 numStreams;643 644} SVGA3dCmdSetVertexStreams;645#pragma pack(pop)646 647#pragma pack(push, 1)648typedef struct {649	uint32 cid;650	uint32 numDivisors;651} SVGA3dCmdSetVertexDivisors;652#pragma pack(pop)653 654#pragma pack(push, 1)655typedef struct {656	uint32 stage;657	SVGA3dTextureStateName name;658	union {659		uint32 value;660		float floatValue;661	};662} SVGA3dTextureState;663#pragma pack(pop)664 665#pragma pack(push, 1)666typedef struct {667	uint32 cid;668 669} SVGA3dCmdSetTextureState;670#pragma pack(pop)671 672#pragma pack(push, 1)673typedef struct {674	uint32 cid;675	SVGA3dTransformType type;676	float matrix[16];677} SVGA3dCmdSetTransform;678#pragma pack(pop)679 680#pragma pack(push, 1)681typedef struct {682	float min;683	float max;684} SVGA3dZRange;685#pragma pack(pop)686 687#pragma pack(push, 1)688typedef struct {689	uint32 cid;690	SVGA3dZRange zRange;691} SVGA3dCmdSetZRange;692#pragma pack(pop)693 694#pragma pack(push, 1)695typedef struct {696	float diffuse[4];697	float ambient[4];698	float specular[4];699	float emissive[4];700	float shininess;701} SVGA3dMaterial;702#pragma pack(pop)703 704#pragma pack(push, 1)705typedef struct {706	uint32 cid;707	SVGA3dFace face;708	SVGA3dMaterial material;709} SVGA3dCmdSetMaterial;710#pragma pack(pop)711 712#pragma pack(push, 1)713typedef struct {714	uint32 cid;715	uint32 index;716	SVGA3dLightData data;717} SVGA3dCmdSetLightData;718#pragma pack(pop)719 720#pragma pack(push, 1)721typedef struct {722	uint32 cid;723	uint32 index;724	uint32 enabled;725} SVGA3dCmdSetLightEnabled;726#pragma pack(pop)727 728#pragma pack(push, 1)729typedef struct {730	uint32 cid;731	SVGA3dRect rect;732} SVGA3dCmdSetViewport;733#pragma pack(pop)734 735#pragma pack(push, 1)736typedef struct {737	uint32 cid;738	SVGA3dRect rect;739} SVGA3dCmdSetScissorRect;740#pragma pack(pop)741 742#pragma pack(push, 1)743typedef struct {744	uint32 cid;745	uint32 index;746	float plane[4];747} SVGA3dCmdSetClipPlane;748#pragma pack(pop)749 750#pragma pack(push, 1)751typedef struct {752	uint32 cid;753	uint32 shid;754	SVGA3dShaderType type;755 756} SVGA3dCmdDefineShader;757#pragma pack(pop)758 759#pragma pack(push, 1)760typedef struct {761	uint32 cid;762	uint32 shid;763	SVGA3dShaderType type;764} SVGA3dCmdDestroyShader;765#pragma pack(pop)766 767#pragma pack(push, 1)768typedef struct {769	uint32 cid;770	uint32 reg;771	SVGA3dShaderType type;772	SVGA3dShaderConstType ctype;773	uint32 values[4];774 775} SVGA3dCmdSetShaderConst;776#pragma pack(pop)777 778#pragma pack(push, 1)779typedef struct {780	uint32 cid;781	SVGA3dShaderType type;782	uint32 shid;783} SVGA3dCmdSetShader;784#pragma pack(pop)785 786#pragma pack(push, 1)787typedef struct {788	uint32 cid;789	SVGA3dQueryType type;790} SVGA3dCmdBeginQuery;791#pragma pack(pop)792 793#pragma pack(push, 1)794typedef struct {795	uint32 cid;796	SVGA3dQueryType type;797	SVGAGuestPtr guestResult;798} SVGA3dCmdEndQuery;799#pragma pack(pop)800 801#pragma pack(push, 1)802typedef struct {803	uint32 cid;804	SVGA3dQueryType type;805	SVGAGuestPtr guestResult;806} SVGA3dCmdWaitForQuery;807#pragma pack(pop)808 809#pragma pack(push, 1)810typedef struct {811	uint32 totalSize;812	SVGA3dQueryState state;813	union {814		uint32 result32;815		uint32 queryCookie;816	};817} SVGA3dQueryResult;818#pragma pack(pop)819 820#pragma pack(push, 1)821typedef struct {822	SVGA3dSurfaceImageId srcImage;823	SVGASignedRect srcRect;824	uint32 destScreenId;825	SVGASignedRect destRect;826 827} SVGA3dCmdBlitSurfaceToScreen;828#pragma pack(pop)829 830#pragma pack(push, 1)831typedef struct {832	uint32 sid;833	SVGA3dTextureFilter filter;834} SVGA3dCmdGenerateMipmaps;835#pragma pack(pop)836 837#pragma pack(push, 1)838typedef struct {839	uint32 sid;840} SVGA3dCmdActivateSurface;841#pragma pack(pop)842 843#pragma pack(push, 1)844typedef struct {845	uint32 sid;846} SVGA3dCmdDeactivateSurface;847#pragma pack(pop)848 849#pragma pack(push, 1)850typedef struct SVGA3dCmdScreenDMA {851	uint32 screenId;852	SVGAGuestImage refBuffer;853	SVGAGuestImage destBuffer;854	SVGAGuestImage changeMap;855} SVGA3dCmdScreenDMA;856#pragma pack(pop)857 858#define SVGA3D_LOTRANSBLT_HONORALPHA (0x01)859#define SVGA3D_LOSTRETCHBLT_MIRRORX (0x01)860#define SVGA3D_LOSTRETCHBLT_MIRRORY (0x02)861#define SVGA3D_LOALPHABLEND_SRCHASALPHA (0x01)862 863#pragma pack(push, 1)864typedef struct SVGA3dCmdLogicOpsBitBlt {865	SVGA3dSurfaceImageId src;866	SVGA3dSurfaceImageId dst;867	SVGA3dLogicOp logicOp;868	SVGA3dLogicOpRop3 logicOpRop3;869 870} SVGA3dCmdLogicOpsBitBlt;871#pragma pack(pop)872 873#pragma pack(push, 1)874typedef struct SVGA3dCmdLogicOpsTransBlt {875	SVGA3dSurfaceImageId src;876	SVGA3dSurfaceImageId dst;877	uint32 color;878	uint32 flags;879	SVGA3dBox srcBox;880	SVGA3dSignedBox dstBox;881	SVGA3dBox clipBox;882} SVGA3dCmdLogicOpsTransBlt;883#pragma pack(pop)884 885#pragma pack(push, 1)886typedef struct SVGA3dCmdLogicOpsStretchBlt {887	SVGA3dSurfaceImageId src;888	SVGA3dSurfaceImageId dst;889	uint16 mode;890	uint16 flags;891	SVGA3dBox srcBox;892	SVGA3dSignedBox dstBox;893	SVGA3dBox clipBox;894} SVGA3dCmdLogicOpsStretchBlt;895#pragma pack(pop)896 897#pragma pack(push, 1)898typedef struct SVGA3dCmdLogicOpsColorFill {899	SVGA3dSurfaceImageId dst;900	uint32 color;901	SVGA3dLogicOp logicOp;902	SVGA3dLogicOpRop3 logicOpRop3;903 904} SVGA3dCmdLogicOpsColorFill;905#pragma pack(pop)906 907#pragma pack(push, 1)908typedef struct SVGA3dCmdLogicOpsAlphaBlend {909	SVGA3dSurfaceImageId src;910	SVGA3dSurfaceImageId dst;911	uint32 alphaVal;912	uint32 flags;913	SVGA3dBox srcBox;914	SVGA3dSignedBox dstBox;915	SVGA3dBox clipBox;916} SVGA3dCmdLogicOpsAlphaBlend;917#pragma pack(pop)918 919#define SVGA3D_CLEARTYPE_INVALID_GAMMA_INDEX 0xFFFFFFFF920 921#define SVGA3D_CLEARTYPE_GAMMA_WIDTH 512922#define SVGA3D_CLEARTYPE_GAMMA_HEIGHT 16923 924#pragma pack(push, 1)925typedef struct SVGA3dCmdLogicOpsClearTypeBlend {926	SVGA3dSurfaceImageId tmp;927	SVGA3dSurfaceImageId dst;928	SVGA3dSurfaceImageId gammaSurf;929	SVGA3dSurfaceImageId alphaSurf;930	uint32 gamma;931	uint32 color;932	uint32 color2;933	int32 alphaOffsetX;934	int32 alphaOffsetY;935 936} SVGA3dCmdLogicOpsClearTypeBlend;937#pragma pack(pop)938 939#pragma pack(push, 1)940typedef struct {941	SVGAMobFormat ptDepth;942	uint32 sizeInBytes;943	PPN64 base;944} SVGAOTableMobEntry;945#pragma pack(pop)946 947#pragma pack(push, 1)948typedef struct {949	SVGA3dSurfaceFormat format;950	SVGA3dSurface1Flags surface1Flags;951	uint32 numMipLevels;952	uint32 multisampleCount;953	SVGA3dTextureFilter autogenFilter;954	SVGA3dSize size;955	SVGAMobId mobid;956	uint32 arraySize;957	uint32 mobPitch;958	SVGA3dSurface2Flags surface2Flags;959	uint8 multisamplePattern;960	uint8 qualityLevel;961	uint16 bufferByteStride;962	float minLOD;963	uint32 pad0[2];964} SVGAOTableSurfaceEntry;965#pragma pack(pop)966 967#pragma pack(push, 1)968typedef struct {969	uint32 cid;970	SVGAMobId mobid;971} SVGAOTableContextEntry;972#pragma pack(pop)973 974#pragma pack(push, 1)975typedef struct {976	SVGA3dShaderType type;977	uint32 sizeInBytes;978	uint32 offsetInBytes;979	SVGAMobId mobid;980} SVGAOTableShaderEntry;981#pragma pack(pop)982 983#define SVGA_STFLAG_PRIMARY (1 << 0)984#define SVGA_STFLAG_RESERVED (1 << 1)985typedef uint32 SVGAScreenTargetFlags;986 987#pragma pack(push, 1)988typedef struct {989	SVGA3dSurfaceImageId image;990	uint32 width;991	uint32 height;992	int32 xRoot;993	int32 yRoot;994	SVGAScreenTargetFlags flags;995	uint32 dpi;996	uint32 pad[7];997} SVGAOTableScreenTargetEntry;998#pragma pack(pop)999 1000#pragma pack(push, 1)1001typedef struct {1002	float value[4];1003} SVGA3dShaderConstFloat;1004#pragma pack(pop)1005 1006#pragma pack(push, 1)1007typedef struct {1008	int32 value[4];1009} SVGA3dShaderConstInt;1010#pragma pack(pop)1011 1012#pragma pack(push, 1)1013typedef struct {1014	uint32 value;1015} SVGA3dShaderConstBool;1016#pragma pack(pop)1017 1018#pragma pack(push, 1)1019typedef struct {1020	uint16 streamOffset;1021	uint8 stream;1022	uint8 type;1023	uint8 methodUsage;1024	uint8 usageIndex;1025} SVGAGBVertexElement;1026#pragma pack(pop)1027 1028#pragma pack(push, 1)1029typedef struct {1030	uint32 sid;1031	uint16 stride;1032	uint32 offset;1033} SVGAGBVertexStream;1034#pragma pack(pop)1035#pragma pack(push, 1)1036typedef struct {1037	SVGA3dRect viewport;1038	SVGA3dRect scissorRect;1039	SVGA3dZRange zRange;1040 1041	SVGA3dSurfaceImageId renderTargets[SVGA3D_RT_MAX];1042	SVGAGBVertexElement decl1[4];1043 1044	uint32 renderStates[SVGA3D_RS_MAX];1045	SVGAGBVertexElement decl2[18];1046	uint32 pad0[2];1047 1048	struct {1049		SVGA3dFace face;1050		SVGA3dMaterial material;1051	} material;1052 1053	float clipPlanes[SVGA3D_MAX_CLIP_PLANES][4];1054	float matrices[SVGA3D_TRANSFORM_MAX][16];1055 1056	SVGA3dBool lightEnabled[SVGA3D_NUM_LIGHTS];1057	SVGA3dLightData lightData[SVGA3D_NUM_LIGHTS];1058 1059	uint32 shaders[SVGA3D_NUM_SHADERTYPE_PREDX];1060	SVGAGBVertexElement decl3[10];1061	uint32 pad1[3];1062 1063	uint32 occQueryActive;1064	uint32 occQueryValue;1065 1066	SVGA3dShaderConstInt pShaderIValues[SVGA3D_CONSTINTREG_MAX];1067	SVGA3dShaderConstInt vShaderIValues[SVGA3D_CONSTINTREG_MAX];1068	uint16 pShaderBValues;1069	uint16 vShaderBValues;1070 1071	SVGAGBVertexStream streams[SVGA3D_MAX_VERTEX_ARRAYS];1072	SVGA3dVertexDivisor divisors[SVGA3D_MAX_VERTEX_ARRAYS];1073	uint32 numVertexDecls;1074	uint32 numVertexStreams;1075	uint32 numVertexDivisors;1076	uint32 pad2[30];1077 1078	uint32 tsColorKey[SVGA3D_NUM_TEXTURE_UNITS];1079	uint32 textureStages[SVGA3D_NUM_TEXTURE_UNITS][SVGA3D_TS_CONSTANT + 1];1080	uint32 tsColorKeyEnable[SVGA3D_NUM_TEXTURE_UNITS];1081 1082	SVGA3dShaderConstFloat pShaderFValues[SVGA3D_CONSTREG_MAX];1083	SVGA3dShaderConstFloat vShaderFValues[SVGA3D_CONSTREG_MAX];1084} SVGAGBContextData;1085#pragma pack(pop)1086 1087#pragma pack(push, 1)1088typedef struct {1089	SVGAOTableType type;1090	PPN32 baseAddress;1091	uint32 sizeInBytes;1092	uint32 validSizeInBytes;1093	SVGAMobFormat ptDepth;1094} SVGA3dCmdSetOTableBase;1095#pragma pack(pop)1096 1097#pragma pack(push, 1)1098typedef struct {1099	SVGAOTableType type;1100	PPN64 baseAddress;1101	uint32 sizeInBytes;1102	uint32 validSizeInBytes;1103	SVGAMobFormat ptDepth;1104} SVGA3dCmdSetOTableBase64;1105#pragma pack(pop)1106 1107#pragma pack(push, 1)1108typedef struct {1109	SVGAOTableType type;1110	PPN64 baseAddress;1111	uint32 sizeInBytes;1112	uint32 validSizeInBytes;1113	SVGAMobFormat ptDepth;1114} SVGA3dCmdGrowOTable;1115#pragma pack(pop)1116 1117#pragma pack(push, 1)1118typedef struct {1119	SVGAOTableType type;1120} SVGA3dCmdReadbackOTable;1121#pragma pack(pop)1122 1123#pragma pack(push, 1)1124typedef struct SVGA3dCmdDefineGBMob {1125	SVGAMobId mobid;1126	SVGAMobFormat ptDepth;1127	PPN32 base;1128	uint32 sizeInBytes;1129} SVGA3dCmdDefineGBMob;1130#pragma pack(pop)1131 1132#pragma pack(push, 1)1133typedef struct SVGA3dCmdDestroyGBMob {1134	SVGAMobId mobid;1135} SVGA3dCmdDestroyGBMob;1136#pragma pack(pop)1137 1138#pragma pack(push, 1)1139typedef struct SVGA3dCmdDefineGBMob64 {1140	SVGAMobId mobid;1141	SVGAMobFormat ptDepth;1142	PPN64 base;1143	uint32 sizeInBytes;1144} SVGA3dCmdDefineGBMob64;1145#pragma pack(pop)1146 1147#pragma pack(push, 1)1148typedef struct SVGA3dCmdRedefineGBMob64 {1149	SVGAMobId mobid;1150	SVGAMobFormat ptDepth;1151	PPN64 base;1152	uint32 sizeInBytes;1153} SVGA3dCmdRedefineGBMob64;1154#pragma pack(pop)1155 1156#pragma pack(push, 1)1157typedef struct SVGA3dCmdUpdateGBMobMapping {1158	SVGAMobId mobid;1159} SVGA3dCmdUpdateGBMobMapping;1160#pragma pack(pop)1161 1162#pragma pack(push, 1)1163typedef struct SVGA3dCmdDefineGBSurface {1164	uint32 sid;1165	SVGA3dSurface1Flags surfaceFlags;1166	SVGA3dSurfaceFormat format;1167	uint32 numMipLevels;1168	uint32 multisampleCount;1169	SVGA3dTextureFilter autogenFilter;1170	SVGA3dSize size;1171} SVGA3dCmdDefineGBSurface;1172#pragma pack(pop)1173 1174#pragma pack(push, 1)1175typedef struct SVGA3dCmdDefineGBSurface_v2 {1176	uint32 sid;1177	SVGA3dSurface1Flags surfaceFlags;1178	SVGA3dSurfaceFormat format;1179	uint32 numMipLevels;1180	uint32 multisampleCount;1181	SVGA3dTextureFilter autogenFilter;1182	SVGA3dSize size;1183	uint32 arraySize;1184	uint32 pad;1185} SVGA3dCmdDefineGBSurface_v2;1186#pragma pack(pop)1187 1188#pragma pack(push, 1)1189typedef struct SVGA3dCmdDefineGBSurface_v3 {1190	uint32 sid;1191	SVGA3dSurfaceAllFlags surfaceFlags;1192	SVGA3dSurfaceFormat format;1193	uint32 numMipLevels;1194	uint32 multisampleCount;1195	SVGA3dMSPattern multisamplePattern;1196	SVGA3dMSQualityLevel qualityLevel;1197	SVGA3dTextureFilter autogenFilter;1198	SVGA3dSize size;1199	uint32 arraySize;1200} SVGA3dCmdDefineGBSurface_v3;1201#pragma pack(pop)1202 1203#pragma pack(push, 1)1204typedef struct SVGA3dCmdDefineGBSurface_v4 {1205	uint32 sid;1206	SVGA3dSurfaceAllFlags surfaceFlags;1207	SVGA3dSurfaceFormat format;1208	uint32 numMipLevels;1209	uint32 multisampleCount;1210	SVGA3dMSPattern multisamplePattern;1211	SVGA3dMSQualityLevel qualityLevel;1212	SVGA3dTextureFilter autogenFilter;1213	SVGA3dSize size;1214	uint32 arraySize;1215	uint32 bufferByteStride;1216} SVGA3dCmdDefineGBSurface_v4;1217#pragma pack(pop)1218 1219#pragma pack(push, 1)1220typedef struct SVGA3dCmdDestroyGBSurface {1221	uint32 sid;1222} SVGA3dCmdDestroyGBSurface;1223#pragma pack(pop)1224 1225#pragma pack(push, 1)1226typedef struct SVGA3dCmdBindGBSurface {1227	uint32 sid;1228	SVGAMobId mobid;1229} SVGA3dCmdBindGBSurface;1230#pragma pack(pop)1231 1232#pragma pack(push, 1)1233typedef struct SVGA3dCmdBindGBSurfaceWithPitch {1234	uint32 sid;1235	SVGAMobId mobid;1236	uint32 baseLevelPitch;1237} SVGA3dCmdBindGBSurfaceWithPitch;1238#pragma pack(pop)1239 1240#define SVGA3D_COND_BIND_GB_SURFACE_FLAG_READBACK (1 << 0)1241#define SVGA3D_COND_BIND_GB_SURFACE_FLAG_UPDATE (1 << 1)1242 1243#pragma pack(push, 1)1244typedef struct SVGA3dCmdCondBindGBSurface {1245	uint32 sid;1246	SVGAMobId testMobid;1247	SVGAMobId mobid;1248	uint32 flags;1249} SVGA3dCmdCondBindGBSurface;1250#pragma pack(pop)1251 1252#pragma pack(push, 1)1253typedef struct SVGA3dCmdUpdateGBImage {1254	SVGA3dSurfaceImageId image;1255	SVGA3dBox box;1256} SVGA3dCmdUpdateGBImage;1257#pragma pack(pop)1258 1259#pragma pack(push, 1)1260typedef struct SVGA3dCmdUpdateGBSurface {1261	uint32 sid;1262} SVGA3dCmdUpdateGBSurface;1263#pragma pack(pop)1264 1265#pragma pack(push, 1)1266typedef struct SVGA3dCmdReadbackGBImage {1267	SVGA3dSurfaceImageId image;1268} SVGA3dCmdReadbackGBImage;1269#pragma pack(pop)1270 1271#pragma pack(push, 1)1272typedef struct SVGA3dCmdReadbackGBSurface {1273	uint32 sid;1274} SVGA3dCmdReadbackGBSurface;1275#pragma pack(pop)1276 1277#pragma pack(push, 1)1278typedef struct SVGA3dCmdReadbackGBImagePartial {1279	SVGA3dSurfaceImageId image;1280	SVGA3dBox box;1281	uint32 invertBox;1282} SVGA3dCmdReadbackGBImagePartial;1283#pragma pack(pop)1284 1285#pragma pack(push, 1)1286typedef struct SVGA3dCmdInvalidateGBImage {1287	SVGA3dSurfaceImageId image;1288} SVGA3dCmdInvalidateGBImage;1289#pragma pack(pop)1290 1291#pragma pack(push, 1)1292typedef struct SVGA3dCmdInvalidateGBSurface {1293	uint32 sid;1294} SVGA3dCmdInvalidateGBSurface;1295#pragma pack(pop)1296 1297#pragma pack(push, 1)1298typedef struct SVGA3dCmdInvalidateGBImagePartial {1299	SVGA3dSurfaceImageId image;1300	SVGA3dBox box;1301	uint32 invertBox;1302} SVGA3dCmdInvalidateGBImagePartial;1303#pragma pack(pop)1304 1305#pragma pack(push, 1)1306typedef struct SVGA3dCmdDefineGBContext {1307	uint32 cid;1308} SVGA3dCmdDefineGBContext;1309#pragma pack(pop)1310 1311#pragma pack(push, 1)1312typedef struct SVGA3dCmdDestroyGBContext {1313	uint32 cid;1314} SVGA3dCmdDestroyGBContext;1315#pragma pack(pop)1316 1317#pragma pack(push, 1)1318typedef struct SVGA3dCmdBindGBContext {1319	uint32 cid;1320	SVGAMobId mobid;1321	uint32 validContents;1322} SVGA3dCmdBindGBContext;1323#pragma pack(pop)1324 1325#pragma pack(push, 1)1326typedef struct SVGA3dCmdReadbackGBContext {1327	uint32 cid;1328} SVGA3dCmdReadbackGBContext;1329#pragma pack(pop)1330 1331#pragma pack(push, 1)1332typedef struct SVGA3dCmdInvalidateGBContext {1333	uint32 cid;1334} SVGA3dCmdInvalidateGBContext;1335#pragma pack(pop)1336 1337#pragma pack(push, 1)1338typedef struct SVGA3dCmdDefineGBShader {1339	uint32 shid;1340	SVGA3dShaderType type;1341	uint32 sizeInBytes;1342} SVGA3dCmdDefineGBShader;1343#pragma pack(pop)1344 1345#pragma pack(push, 1)1346typedef struct SVGA3dCmdBindGBShader {1347	uint32 shid;1348	SVGAMobId mobid;1349	uint32 offsetInBytes;1350} SVGA3dCmdBindGBShader;1351#pragma pack(pop)1352 1353#pragma pack(push, 1)1354typedef struct SVGA3dCmdDestroyGBShader {1355	uint32 shid;1356} SVGA3dCmdDestroyGBShader;1357#pragma pack(pop)1358 1359#pragma pack(push, 1)1360typedef struct {1361	uint32 cid;1362	uint32 regStart;1363	SVGA3dShaderType shaderType;1364	SVGA3dShaderConstType constType;1365 1366} SVGA3dCmdSetGBShaderConstInline;1367#pragma pack(pop)1368 1369#pragma pack(push, 1)1370typedef struct {1371	uint32 cid;1372	SVGA3dQueryType type;1373} SVGA3dCmdBeginGBQuery;1374#pragma pack(pop)1375 1376#pragma pack(push, 1)1377typedef struct {1378	uint32 cid;1379	SVGA3dQueryType type;1380	SVGAMobId mobid;1381	uint32 offset;1382} SVGA3dCmdEndGBQuery;1383#pragma pack(pop)1384 1385#pragma pack(push, 1)1386typedef struct {1387	uint32 cid;1388	SVGA3dQueryType type;1389	SVGAMobId mobid;1390	uint32 offset;1391} SVGA3dCmdWaitForGBQuery;1392#pragma pack(pop)1393 1394#pragma pack(push, 1)1395typedef struct {1396	SVGAMobId mobid;1397	uint32 mustBeZero;1398	uint32 initialized;1399} SVGA3dCmdEnableGart;1400#pragma pack(pop)1401 1402#pragma pack(push, 1)1403typedef struct {1404	SVGAMobId mobid;1405	uint32 gartOffset;1406} SVGA3dCmdMapMobIntoGart;1407#pragma pack(pop)1408 1409#pragma pack(push, 1)1410typedef struct {1411	uint32 gartOffset;1412	uint32 numPages;1413} SVGA3dCmdUnmapGartRange;1414#pragma pack(pop)1415 1416#pragma pack(push, 1)1417typedef struct {1418	uint32 stid;1419	uint32 width;1420	uint32 height;1421	int32 xRoot;1422	int32 yRoot;1423	SVGAScreenTargetFlags flags;1424 1425	uint32 dpi;1426} SVGA3dCmdDefineGBScreenTarget;1427#pragma pack(pop)1428 1429#pragma pack(push, 1)1430typedef struct {1431	uint32 stid;1432} SVGA3dCmdDestroyGBScreenTarget;1433#pragma pack(pop)1434 1435#pragma pack(push, 1)1436typedef struct {1437	uint32 stid;1438	SVGA3dSurfaceImageId image;1439} SVGA3dCmdBindGBScreenTarget;1440#pragma pack(pop)1441 1442#pragma pack(push, 1)1443typedef struct {1444	uint32 stid;1445	SVGA3dRect rect;1446} SVGA3dCmdUpdateGBScreenTarget;1447#pragma pack(pop)1448 1449#pragma pack(push, 1)1450typedef struct {1451	uint32 stid;1452	SVGA3dRect rect;1453	SVGA3dFrameUpdateType type;1454} SVGA3dCmdUpdateGBScreenTarget_v2;1455#pragma pack(pop)1456 1457#pragma pack(push, 1)1458typedef struct {1459	uint32 stid;1460	SVGA3dRect rect;1461	SVGA3dFrameUpdateType type;1462	SVGAUnsignedPoint srcPoint;1463} SVGA3dCmdUpdateGBScreenTargetMove;1464#pragma pack(pop)1465 1466#pragma pack(push, 1)1467typedef struct SVGA3dCmdGBScreenDMA {1468	uint32 screenId;1469	uint32 dead;1470	SVGAMobId destMobID;1471	uint32 destPitch;1472	SVGAMobId changeMapMobID;1473} SVGA3dCmdGBScreenDMA;1474#pragma pack(pop)1475 1476#pragma pack(push, 1)1477typedef struct {1478	uint32 value;1479	uint32 mobId;1480	uint32 mobOffset;1481} SVGA3dCmdGBMobFence;1482#pragma pack(pop)1483 1484#pragma pack(push, 1)1485typedef struct {1486	uint32 stid;1487	SVGA3dSurfaceImageId dest;1488 1489	uint32 statusMobId;1490	uint32 statusMobOffset;1491 1492	uint32 mustBeInvalidId;1493	uint32 mustBeZero;1494} SVGA3dCmdScreenCopy;1495#pragma pack(pop)1496 1497#define SVGA_SCREEN_COPY_STATUS_FAILURE 0x001498#define SVGA_SCREEN_COPY_STATUS_SUCCESS 0x011499#define SVGA_SCREEN_COPY_STATUS_INVALID 0xFFFFFFFF1500 1501#pragma pack(push, 1)1502typedef struct {1503	uint32 sid;1504} SVGA3dCmdWriteZeroSurface;1505#pragma pack(pop)1506 1507#pragma pack(push, 1)1508typedef struct {1509	uint32 sid;1510} SVGA3dCmdUpdateZeroSurface;1511#pragma pack(pop)1512 1513#endif1514