0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 #ifndef _SVGA3D_CMD_H_
0036 #define _SVGA3D_CMD_H_
0037
0038 #include "svga3d_types.h"
0039 #include "svga3d_limits.h"
0040 #include "svga_reg.h"
0041
0042 typedef enum SVGAFifo3dCmdId {
0043 SVGA_3D_CMD_LEGACY_BASE = 1000,
0044 SVGA_3D_CMD_BASE = 1040,
0045
0046 SVGA_3D_CMD_SURFACE_DEFINE = 1040,
0047 SVGA_3D_CMD_SURFACE_DESTROY = 1041,
0048 SVGA_3D_CMD_SURFACE_COPY = 1042,
0049 SVGA_3D_CMD_SURFACE_STRETCHBLT = 1043,
0050 SVGA_3D_CMD_SURFACE_DMA = 1044,
0051 SVGA_3D_CMD_CONTEXT_DEFINE = 1045,
0052 SVGA_3D_CMD_CONTEXT_DESTROY = 1046,
0053 SVGA_3D_CMD_SETTRANSFORM = 1047,
0054 SVGA_3D_CMD_SETZRANGE = 1048,
0055 SVGA_3D_CMD_SETRENDERSTATE = 1049,
0056 SVGA_3D_CMD_SETRENDERTARGET = 1050,
0057 SVGA_3D_CMD_SETTEXTURESTATE = 1051,
0058 SVGA_3D_CMD_SETMATERIAL = 1052,
0059 SVGA_3D_CMD_SETLIGHTDATA = 1053,
0060 SVGA_3D_CMD_SETLIGHTENABLED = 1054,
0061 SVGA_3D_CMD_SETVIEWPORT = 1055,
0062 SVGA_3D_CMD_SETCLIPPLANE = 1056,
0063 SVGA_3D_CMD_CLEAR = 1057,
0064 SVGA_3D_CMD_PRESENT = 1058,
0065 SVGA_3D_CMD_SHADER_DEFINE = 1059,
0066 SVGA_3D_CMD_SHADER_DESTROY = 1060,
0067 SVGA_3D_CMD_SET_SHADER = 1061,
0068 SVGA_3D_CMD_SET_SHADER_CONST = 1062,
0069 SVGA_3D_CMD_DRAW_PRIMITIVES = 1063,
0070 SVGA_3D_CMD_SETSCISSORRECT = 1064,
0071 SVGA_3D_CMD_BEGIN_QUERY = 1065,
0072 SVGA_3D_CMD_END_QUERY = 1066,
0073 SVGA_3D_CMD_WAIT_FOR_QUERY = 1067,
0074 SVGA_3D_CMD_PRESENT_READBACK = 1068,
0075 SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN = 1069,
0076 SVGA_3D_CMD_SURFACE_DEFINE_V2 = 1070,
0077 SVGA_3D_CMD_GENERATE_MIPMAPS = 1071,
0078 SVGA_3D_CMD_DEAD4 = 1072,
0079 SVGA_3D_CMD_DEAD5 = 1073,
0080 SVGA_3D_CMD_DEAD6 = 1074,
0081 SVGA_3D_CMD_DEAD7 = 1075,
0082 SVGA_3D_CMD_DEAD8 = 1076,
0083 SVGA_3D_CMD_DEAD9 = 1077,
0084 SVGA_3D_CMD_DEAD10 = 1078,
0085 SVGA_3D_CMD_DEAD11 = 1079,
0086 SVGA_3D_CMD_ACTIVATE_SURFACE = 1080,
0087 SVGA_3D_CMD_DEACTIVATE_SURFACE = 1081,
0088 SVGA_3D_CMD_SCREEN_DMA = 1082,
0089 SVGA_3D_CMD_DEAD1 = 1083,
0090 SVGA_3D_CMD_DEAD2 = 1084,
0091
0092 SVGA_3D_CMD_DEAD12 = 1085,
0093 SVGA_3D_CMD_DEAD13 = 1086,
0094 SVGA_3D_CMD_DEAD14 = 1087,
0095 SVGA_3D_CMD_DEAD15 = 1088,
0096 SVGA_3D_CMD_DEAD16 = 1089,
0097 SVGA_3D_CMD_DEAD17 = 1090,
0098
0099 SVGA_3D_CMD_SET_OTABLE_BASE = 1091,
0100 SVGA_3D_CMD_READBACK_OTABLE = 1092,
0101
0102 SVGA_3D_CMD_DEFINE_GB_MOB = 1093,
0103 SVGA_3D_CMD_DESTROY_GB_MOB = 1094,
0104 SVGA_3D_CMD_DEAD3 = 1095,
0105 SVGA_3D_CMD_UPDATE_GB_MOB_MAPPING = 1096,
0106
0107 SVGA_3D_CMD_DEFINE_GB_SURFACE = 1097,
0108 SVGA_3D_CMD_DESTROY_GB_SURFACE = 1098,
0109 SVGA_3D_CMD_BIND_GB_SURFACE = 1099,
0110 SVGA_3D_CMD_COND_BIND_GB_SURFACE = 1100,
0111 SVGA_3D_CMD_UPDATE_GB_IMAGE = 1101,
0112 SVGA_3D_CMD_UPDATE_GB_SURFACE = 1102,
0113 SVGA_3D_CMD_READBACK_GB_IMAGE = 1103,
0114 SVGA_3D_CMD_READBACK_GB_SURFACE = 1104,
0115 SVGA_3D_CMD_INVALIDATE_GB_IMAGE = 1105,
0116 SVGA_3D_CMD_INVALIDATE_GB_SURFACE = 1106,
0117
0118 SVGA_3D_CMD_DEFINE_GB_CONTEXT = 1107,
0119 SVGA_3D_CMD_DESTROY_GB_CONTEXT = 1108,
0120 SVGA_3D_CMD_BIND_GB_CONTEXT = 1109,
0121 SVGA_3D_CMD_READBACK_GB_CONTEXT = 1110,
0122 SVGA_3D_CMD_INVALIDATE_GB_CONTEXT = 1111,
0123
0124 SVGA_3D_CMD_DEFINE_GB_SHADER = 1112,
0125 SVGA_3D_CMD_DESTROY_GB_SHADER = 1113,
0126 SVGA_3D_CMD_BIND_GB_SHADER = 1114,
0127
0128 SVGA_3D_CMD_SET_OTABLE_BASE64 = 1115,
0129
0130 SVGA_3D_CMD_BEGIN_GB_QUERY = 1116,
0131 SVGA_3D_CMD_END_GB_QUERY = 1117,
0132 SVGA_3D_CMD_WAIT_FOR_GB_QUERY = 1118,
0133
0134 SVGA_3D_CMD_NOP = 1119,
0135
0136 SVGA_3D_CMD_ENABLE_GART = 1120,
0137 SVGA_3D_CMD_DISABLE_GART = 1121,
0138 SVGA_3D_CMD_MAP_MOB_INTO_GART = 1122,
0139 SVGA_3D_CMD_UNMAP_GART_RANGE = 1123,
0140
0141 SVGA_3D_CMD_DEFINE_GB_SCREENTARGET = 1124,
0142 SVGA_3D_CMD_DESTROY_GB_SCREENTARGET = 1125,
0143 SVGA_3D_CMD_BIND_GB_SCREENTARGET = 1126,
0144 SVGA_3D_CMD_UPDATE_GB_SCREENTARGET = 1127,
0145
0146 SVGA_3D_CMD_READBACK_GB_IMAGE_PARTIAL = 1128,
0147 SVGA_3D_CMD_INVALIDATE_GB_IMAGE_PARTIAL = 1129,
0148
0149 SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE = 1130,
0150
0151 SVGA_3D_CMD_GB_SCREEN_DMA = 1131,
0152 SVGA_3D_CMD_BIND_GB_SURFACE_WITH_PITCH = 1132,
0153 SVGA_3D_CMD_GB_MOB_FENCE = 1133,
0154 SVGA_3D_CMD_DEFINE_GB_SURFACE_V2 = 1134,
0155 SVGA_3D_CMD_DEFINE_GB_MOB64 = 1135,
0156 SVGA_3D_CMD_REDEFINE_GB_MOB64 = 1136,
0157 SVGA_3D_CMD_NOP_ERROR = 1137,
0158
0159 SVGA_3D_CMD_SET_VERTEX_STREAMS = 1138,
0160 SVGA_3D_CMD_SET_VERTEX_DECLS = 1139,
0161 SVGA_3D_CMD_SET_VERTEX_DIVISORS = 1140,
0162 SVGA_3D_CMD_DRAW = 1141,
0163 SVGA_3D_CMD_DRAW_INDEXED = 1142,
0164
0165 SVGA_3D_CMD_DX_MIN = 1143,
0166 SVGA_3D_CMD_DX_DEFINE_CONTEXT = 1143,
0167 SVGA_3D_CMD_DX_DESTROY_CONTEXT = 1144,
0168 SVGA_3D_CMD_DX_BIND_CONTEXT = 1145,
0169 SVGA_3D_CMD_DX_READBACK_CONTEXT = 1146,
0170 SVGA_3D_CMD_DX_INVALIDATE_CONTEXT = 1147,
0171 SVGA_3D_CMD_DX_SET_SINGLE_CONSTANT_BUFFER = 1148,
0172 SVGA_3D_CMD_DX_SET_SHADER_RESOURCES = 1149,
0173 SVGA_3D_CMD_DX_SET_SHADER = 1150,
0174 SVGA_3D_CMD_DX_SET_SAMPLERS = 1151,
0175 SVGA_3D_CMD_DX_DRAW = 1152,
0176 SVGA_3D_CMD_DX_DRAW_INDEXED = 1153,
0177 SVGA_3D_CMD_DX_DRAW_INSTANCED = 1154,
0178 SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED = 1155,
0179 SVGA_3D_CMD_DX_DRAW_AUTO = 1156,
0180 SVGA_3D_CMD_DX_SET_INPUT_LAYOUT = 1157,
0181 SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS = 1158,
0182 SVGA_3D_CMD_DX_SET_INDEX_BUFFER = 1159,
0183 SVGA_3D_CMD_DX_SET_TOPOLOGY = 1160,
0184 SVGA_3D_CMD_DX_SET_RENDERTARGETS = 1161,
0185 SVGA_3D_CMD_DX_SET_BLEND_STATE = 1162,
0186 SVGA_3D_CMD_DX_SET_DEPTHSTENCIL_STATE = 1163,
0187 SVGA_3D_CMD_DX_SET_RASTERIZER_STATE = 1164,
0188 SVGA_3D_CMD_DX_DEFINE_QUERY = 1165,
0189 SVGA_3D_CMD_DX_DESTROY_QUERY = 1166,
0190 SVGA_3D_CMD_DX_BIND_QUERY = 1167,
0191 SVGA_3D_CMD_DX_SET_QUERY_OFFSET = 1168,
0192 SVGA_3D_CMD_DX_BEGIN_QUERY = 1169,
0193 SVGA_3D_CMD_DX_END_QUERY = 1170,
0194 SVGA_3D_CMD_DX_READBACK_QUERY = 1171,
0195 SVGA_3D_CMD_DX_SET_PREDICATION = 1172,
0196 SVGA_3D_CMD_DX_SET_SOTARGETS = 1173,
0197 SVGA_3D_CMD_DX_SET_VIEWPORTS = 1174,
0198 SVGA_3D_CMD_DX_SET_SCISSORRECTS = 1175,
0199 SVGA_3D_CMD_DX_CLEAR_RENDERTARGET_VIEW = 1176,
0200 SVGA_3D_CMD_DX_CLEAR_DEPTHSTENCIL_VIEW = 1177,
0201 SVGA_3D_CMD_DX_PRED_COPY_REGION = 1178,
0202 SVGA_3D_CMD_DX_PRED_COPY = 1179,
0203 SVGA_3D_CMD_DX_PRESENTBLT = 1180,
0204 SVGA_3D_CMD_DX_GENMIPS = 1181,
0205 SVGA_3D_CMD_DX_UPDATE_SUBRESOURCE = 1182,
0206 SVGA_3D_CMD_DX_READBACK_SUBRESOURCE = 1183,
0207 SVGA_3D_CMD_DX_INVALIDATE_SUBRESOURCE = 1184,
0208 SVGA_3D_CMD_DX_DEFINE_SHADERRESOURCE_VIEW = 1185,
0209 SVGA_3D_CMD_DX_DESTROY_SHADERRESOURCE_VIEW = 1186,
0210 SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW = 1187,
0211 SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW = 1188,
0212 SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW = 1189,
0213 SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_VIEW = 1190,
0214 SVGA_3D_CMD_DX_DEFINE_ELEMENTLAYOUT = 1191,
0215 SVGA_3D_CMD_DX_DESTROY_ELEMENTLAYOUT = 1192,
0216 SVGA_3D_CMD_DX_DEFINE_BLEND_STATE = 1193,
0217 SVGA_3D_CMD_DX_DESTROY_BLEND_STATE = 1194,
0218 SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_STATE = 1195,
0219 SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_STATE = 1196,
0220 SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE = 1197,
0221 SVGA_3D_CMD_DX_DESTROY_RASTERIZER_STATE = 1198,
0222 SVGA_3D_CMD_DX_DEFINE_SAMPLER_STATE = 1199,
0223 SVGA_3D_CMD_DX_DESTROY_SAMPLER_STATE = 1200,
0224 SVGA_3D_CMD_DX_DEFINE_SHADER = 1201,
0225 SVGA_3D_CMD_DX_DESTROY_SHADER = 1202,
0226 SVGA_3D_CMD_DX_BIND_SHADER = 1203,
0227 SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT = 1204,
0228 SVGA_3D_CMD_DX_DESTROY_STREAMOUTPUT = 1205,
0229 SVGA_3D_CMD_DX_SET_STREAMOUTPUT = 1206,
0230 SVGA_3D_CMD_DX_SET_COTABLE = 1207,
0231 SVGA_3D_CMD_DX_READBACK_COTABLE = 1208,
0232 SVGA_3D_CMD_DX_BUFFER_COPY = 1209,
0233 SVGA_3D_CMD_DX_TRANSFER_FROM_BUFFER = 1210,
0234 SVGA_3D_CMD_DX_SURFACE_COPY_AND_READBACK = 1211,
0235 SVGA_3D_CMD_DX_MOVE_QUERY = 1212,
0236 SVGA_3D_CMD_DX_BIND_ALL_QUERY = 1213,
0237 SVGA_3D_CMD_DX_READBACK_ALL_QUERY = 1214,
0238 SVGA_3D_CMD_DX_PRED_TRANSFER_FROM_BUFFER = 1215,
0239 SVGA_3D_CMD_DX_MOB_FENCE_64 = 1216,
0240 SVGA_3D_CMD_DX_BIND_ALL_SHADER = 1217,
0241 SVGA_3D_CMD_DX_HINT = 1218,
0242 SVGA_3D_CMD_DX_BUFFER_UPDATE = 1219,
0243 SVGA_3D_CMD_DX_SET_VS_CONSTANT_BUFFER_OFFSET = 1220,
0244 SVGA_3D_CMD_DX_SET_PS_CONSTANT_BUFFER_OFFSET = 1221,
0245 SVGA_3D_CMD_DX_SET_GS_CONSTANT_BUFFER_OFFSET = 1222,
0246 SVGA_3D_CMD_DX_SET_HS_CONSTANT_BUFFER_OFFSET = 1223,
0247 SVGA_3D_CMD_DX_SET_DS_CONSTANT_BUFFER_OFFSET = 1224,
0248 SVGA_3D_CMD_DX_SET_CS_CONSTANT_BUFFER_OFFSET = 1225,
0249
0250 SVGA_3D_CMD_DX_COND_BIND_ALL_SHADER = 1226,
0251 SVGA_3D_CMD_DX_MAX = 1227,
0252
0253 SVGA_3D_CMD_SCREEN_COPY = 1227,
0254
0255 SVGA_3D_CMD_RESERVED1 = 1228,
0256 SVGA_3D_CMD_RESERVED2 = 1229,
0257 SVGA_3D_CMD_RESERVED3 = 1230,
0258 SVGA_3D_CMD_RESERVED4 = 1231,
0259 SVGA_3D_CMD_RESERVED5 = 1232,
0260 SVGA_3D_CMD_RESERVED6 = 1233,
0261 SVGA_3D_CMD_RESERVED7 = 1234,
0262 SVGA_3D_CMD_RESERVED8 = 1235,
0263
0264 SVGA_3D_CMD_GROW_OTABLE = 1236,
0265 SVGA_3D_CMD_DX_GROW_COTABLE = 1237,
0266 SVGA_3D_CMD_INTRA_SURFACE_COPY = 1238,
0267
0268 SVGA_3D_CMD_DEFINE_GB_SURFACE_V3 = 1239,
0269
0270 SVGA_3D_CMD_DX_RESOLVE_COPY = 1240,
0271 SVGA_3D_CMD_DX_PRED_RESOLVE_COPY = 1241,
0272 SVGA_3D_CMD_DX_PRED_CONVERT_REGION = 1242,
0273 SVGA_3D_CMD_DX_PRED_CONVERT = 1243,
0274 SVGA_3D_CMD_WHOLE_SURFACE_COPY = 1244,
0275
0276 SVGA_3D_CMD_DX_DEFINE_UA_VIEW = 1245,
0277 SVGA_3D_CMD_DX_DESTROY_UA_VIEW = 1246,
0278 SVGA_3D_CMD_DX_CLEAR_UA_VIEW_UINT = 1247,
0279 SVGA_3D_CMD_DX_CLEAR_UA_VIEW_FLOAT = 1248,
0280 SVGA_3D_CMD_DX_COPY_STRUCTURE_COUNT = 1249,
0281 SVGA_3D_CMD_DX_SET_UA_VIEWS = 1250,
0282
0283 SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED_INDIRECT = 1251,
0284 SVGA_3D_CMD_DX_DRAW_INSTANCED_INDIRECT = 1252,
0285 SVGA_3D_CMD_DX_DISPATCH = 1253,
0286 SVGA_3D_CMD_DX_DISPATCH_INDIRECT = 1254,
0287
0288 SVGA_3D_CMD_WRITE_ZERO_SURFACE = 1255,
0289 SVGA_3D_CMD_UPDATE_ZERO_SURFACE = 1256,
0290 SVGA_3D_CMD_DX_TRANSFER_TO_BUFFER = 1257,
0291 SVGA_3D_CMD_DX_SET_STRUCTURE_COUNT = 1258,
0292
0293 SVGA_3D_CMD_LOGICOPS_BITBLT = 1259,
0294 SVGA_3D_CMD_LOGICOPS_TRANSBLT = 1260,
0295 SVGA_3D_CMD_LOGICOPS_STRETCHBLT = 1261,
0296 SVGA_3D_CMD_LOGICOPS_COLORFILL = 1262,
0297 SVGA_3D_CMD_LOGICOPS_ALPHABLEND = 1263,
0298 SVGA_3D_CMD_LOGICOPS_CLEARTYPEBLEND = 1264,
0299
0300 SVGA_3D_CMD_DX_COPY_COTABLE_INTO_MOB = 1265,
0301
0302 SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_V2 = 1266,
0303
0304 SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 = 1267,
0305 SVGA_3D_CMD_DX_SET_CS_UA_VIEWS = 1268,
0306 SVGA_3D_CMD_DX_SET_MIN_LOD = 1269,
0307
0308 SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW_V2 = 1272,
0309 SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT_WITH_MOB = 1273,
0310 SVGA_3D_CMD_DX_SET_SHADER_IFACE = 1274,
0311 SVGA_3D_CMD_DX_BIND_STREAMOUTPUT = 1275,
0312 SVGA_3D_CMD_SURFACE_STRETCHBLT_NON_MS_TO_MS = 1276,
0313 SVGA_3D_CMD_DX_BIND_SHADER_IFACE = 1277,
0314
0315 SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_MOVE = 1278,
0316
0317 SVGA_3D_CMD_DX_PRED_STAGING_COPY = 1281,
0318 SVGA_3D_CMD_DX_STAGING_COPY = 1282,
0319 SVGA_3D_CMD_DX_PRED_STAGING_COPY_REGION = 1283,
0320 SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_V2 = 1284,
0321 SVGA_3D_CMD_DX_SET_INDEX_BUFFER_V2 = 1285,
0322 SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_OFFSET_AND_SIZE = 1286,
0323 SVGA_3D_CMD_DX_SET_INDEX_BUFFER_OFFSET_AND_SIZE = 1287,
0324 SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 = 1288,
0325 SVGA_3D_CMD_DX_PRED_STAGING_CONVERT_REGION = 1289,
0326 SVGA_3D_CMD_DX_PRED_STAGING_CONVERT = 1290,
0327 SVGA_3D_CMD_DX_STAGING_BUFFER_COPY = 1291,
0328
0329 SVGA_3D_CMD_MAX = 1303,
0330 SVGA_3D_CMD_FUTURE_MAX = 3000
0331 } SVGAFifo3dCmdId;
0332
0333 #define SVGA_NUM_3D_CMD (SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE)
0334
0335 #pragma pack(push, 1)
0336 typedef struct {
0337 uint32 id;
0338 uint32 size;
0339 } SVGA3dCmdHeader;
0340 #pragma pack(pop)
0341
0342 #pragma pack(push, 1)
0343 typedef struct {
0344 uint32 numMipLevels;
0345 } SVGA3dSurfaceFace;
0346 #pragma pack(pop)
0347
0348 #pragma pack(push, 1)
0349 typedef struct {
0350 uint32 sid;
0351 SVGA3dSurface1Flags surfaceFlags;
0352 SVGA3dSurfaceFormat format;
0353
0354 SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];
0355
0356 } SVGA3dCmdDefineSurface;
0357 #pragma pack(pop)
0358
0359 #pragma pack(push, 1)
0360 typedef struct {
0361 uint32 sid;
0362 SVGA3dSurface1Flags surfaceFlags;
0363 SVGA3dSurfaceFormat format;
0364
0365 SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];
0366 uint32 multisampleCount;
0367 SVGA3dTextureFilter autogenFilter;
0368
0369 } SVGA3dCmdDefineSurface_v2;
0370 #pragma pack(pop)
0371
0372 #pragma pack(push, 1)
0373 typedef struct {
0374 uint32 sid;
0375 } SVGA3dCmdDestroySurface;
0376 #pragma pack(pop)
0377
0378 #pragma pack(push, 1)
0379 typedef struct {
0380 uint32 cid;
0381 } SVGA3dCmdDefineContext;
0382 #pragma pack(pop)
0383
0384 #pragma pack(push, 1)
0385 typedef struct {
0386 uint32 cid;
0387 } SVGA3dCmdDestroyContext;
0388 #pragma pack(pop)
0389
0390 #pragma pack(push, 1)
0391 typedef struct {
0392 uint32 cid;
0393 SVGA3dClearFlag clearFlag;
0394 uint32 color;
0395 float depth;
0396 uint32 stencil;
0397
0398 } SVGA3dCmdClear;
0399 #pragma pack(pop)
0400
0401 #pragma pack(push, 1)
0402 typedef struct {
0403 SVGA3dLightType type;
0404 SVGA3dBool inWorldSpace;
0405 float diffuse[4];
0406 float specular[4];
0407 float ambient[4];
0408 float position[4];
0409 float direction[4];
0410 float range;
0411 float falloff;
0412 float attenuation0;
0413 float attenuation1;
0414 float attenuation2;
0415 float theta;
0416 float phi;
0417 } SVGA3dLightData;
0418 #pragma pack(pop)
0419
0420 #pragma pack(push, 1)
0421 typedef struct {
0422 uint32 sid;
0423
0424 } SVGA3dCmdPresent;
0425 #pragma pack(pop)
0426
0427 #pragma pack(push, 1)
0428 typedef struct {
0429 SVGA3dRenderStateName state;
0430 union {
0431 uint32 uintValue;
0432 float floatValue;
0433 };
0434 } SVGA3dRenderState;
0435 #pragma pack(pop)
0436
0437 #pragma pack(push, 1)
0438 typedef struct {
0439 uint32 cid;
0440
0441 } SVGA3dCmdSetRenderState;
0442 #pragma pack(pop)
0443
0444 #pragma pack(push, 1)
0445 typedef struct {
0446 uint32 cid;
0447 SVGA3dRenderTargetType type;
0448 SVGA3dSurfaceImageId target;
0449 } SVGA3dCmdSetRenderTarget;
0450 #pragma pack(pop)
0451
0452 #pragma pack(push, 1)
0453 typedef struct {
0454 SVGA3dSurfaceImageId src;
0455 SVGA3dSurfaceImageId dest;
0456
0457 } SVGA3dCmdSurfaceCopy;
0458 #pragma pack(pop)
0459
0460 #pragma pack(push, 1)
0461 typedef struct {
0462 SVGA3dSurfaceImageId surface;
0463 SVGA3dCopyBox box;
0464 } SVGA3dCmdIntraSurfaceCopy;
0465 #pragma pack(pop)
0466
0467 #pragma pack(push, 1)
0468 typedef struct {
0469 uint32 srcSid;
0470 uint32 destSid;
0471 } SVGA3dCmdWholeSurfaceCopy;
0472 #pragma pack(pop)
0473
0474 #pragma pack(push, 1)
0475 typedef struct {
0476 SVGA3dSurfaceImageId src;
0477 SVGA3dSurfaceImageId dest;
0478 SVGA3dBox boxSrc;
0479 SVGA3dBox boxDest;
0480 } SVGA3dCmdSurfaceStretchBltNonMSToMS;
0481 #pragma pack(pop)
0482
0483 #pragma pack(push, 1)
0484 typedef struct {
0485 SVGA3dSurfaceImageId src;
0486 SVGA3dSurfaceImageId dest;
0487 SVGA3dBox boxSrc;
0488 SVGA3dBox boxDest;
0489 SVGA3dStretchBltMode mode;
0490 } SVGA3dCmdSurfaceStretchBlt;
0491 #pragma pack(pop)
0492
0493 #pragma pack(push, 1)
0494 typedef struct {
0495 uint32 discard : 1;
0496
0497 uint32 unsynchronized : 1;
0498
0499 uint32 reserved : 30;
0500 } SVGA3dSurfaceDMAFlags;
0501 #pragma pack(pop)
0502
0503 #pragma pack(push, 1)
0504 typedef struct {
0505 SVGAGuestImage guest;
0506 SVGA3dSurfaceImageId host;
0507 SVGA3dTransferType transfer;
0508
0509 } SVGA3dCmdSurfaceDMA;
0510 #pragma pack(pop)
0511
0512 #pragma pack(push, 1)
0513 typedef struct {
0514 uint32 suffixSize;
0515
0516 uint32 maximumOffset;
0517
0518 SVGA3dSurfaceDMAFlags flags;
0519 } SVGA3dCmdSurfaceDMASuffix;
0520 #pragma pack(pop)
0521
0522 #pragma pack(push, 1)
0523 typedef struct {
0524 uint32 first;
0525 uint32 last;
0526 } SVGA3dArrayRangeHint;
0527 #pragma pack(pop)
0528
0529 #pragma pack(push, 1)
0530 typedef struct {
0531 uint32 surfaceId;
0532 uint32 offset;
0533 uint32 stride;
0534 } SVGA3dArray;
0535 #pragma pack(pop)
0536
0537 #pragma pack(push, 1)
0538 typedef struct {
0539 SVGA3dDeclType type;
0540 SVGA3dDeclMethod method;
0541 SVGA3dDeclUsage usage;
0542 uint32 usageIndex;
0543 } SVGA3dVertexArrayIdentity;
0544 #pragma pack(pop)
0545
0546 #pragma pack(push, 1)
0547 typedef struct SVGA3dVertexDecl {
0548 SVGA3dVertexArrayIdentity identity;
0549 SVGA3dArray array;
0550 SVGA3dArrayRangeHint rangeHint;
0551 } SVGA3dVertexDecl;
0552 #pragma pack(pop)
0553
0554 #pragma pack(push, 1)
0555 typedef struct SVGA3dPrimitiveRange {
0556 SVGA3dPrimitiveType primType;
0557 uint32 primitiveCount;
0558
0559 SVGA3dArray indexArray;
0560 uint32 indexWidth;
0561
0562 int32 indexBias;
0563 } SVGA3dPrimitiveRange;
0564 #pragma pack(pop)
0565
0566 #pragma pack(push, 1)
0567 typedef struct {
0568 uint32 cid;
0569 uint32 numVertexDecls;
0570 uint32 numRanges;
0571
0572 } SVGA3dCmdDrawPrimitives;
0573 #pragma pack(pop)
0574
0575 #pragma pack(push, 1)
0576 typedef struct {
0577 uint32 cid;
0578
0579 uint32 primitiveCount;
0580 uint32 startVertexLocation;
0581
0582 uint8 primitiveType;
0583 uint8 padding[3];
0584 } SVGA3dCmdDraw;
0585 #pragma pack(pop)
0586
0587 #pragma pack(push, 1)
0588 typedef struct {
0589 uint32 cid;
0590
0591 uint8 primitiveType;
0592
0593 uint32 indexBufferSid;
0594 uint32 indexBufferOffset;
0595
0596 uint8 indexBufferStride;
0597
0598 int32 baseVertexLocation;
0599
0600 uint32 primitiveCount;
0601 uint32 pad0;
0602 uint16 pad1;
0603 } SVGA3dCmdDrawIndexed;
0604 #pragma pack(pop)
0605
0606 #pragma pack(push, 1)
0607 typedef struct {
0608 uint16 streamOffset;
0609 uint8 stream;
0610 uint8 type;
0611 uint8 method;
0612 uint8 usage;
0613 uint8 usageIndex;
0614 uint8 padding;
0615
0616 } SVGA3dVertexElement;
0617 #pragma pack(pop)
0618
0619 #define SVGA3D_VERTEX_ELEMENT_RESPECT_STREAM (1 << 7)
0620
0621 #pragma pack(push, 1)
0622 typedef struct {
0623 uint32 cid;
0624
0625 uint32 numElements;
0626
0627 } SVGA3dCmdSetVertexDecls;
0628 #pragma pack(pop)
0629
0630 #pragma pack(push, 1)
0631 typedef struct {
0632 uint32 sid;
0633 uint32 stride;
0634 uint32 offset;
0635 } SVGA3dVertexStream;
0636 #pragma pack(pop)
0637
0638 #pragma pack(push, 1)
0639 typedef struct {
0640 uint32 cid;
0641
0642 uint32 numStreams;
0643
0644 } SVGA3dCmdSetVertexStreams;
0645 #pragma pack(pop)
0646
0647 #pragma pack(push, 1)
0648 typedef struct {
0649 uint32 cid;
0650 uint32 numDivisors;
0651 } SVGA3dCmdSetVertexDivisors;
0652 #pragma pack(pop)
0653
0654 #pragma pack(push, 1)
0655 typedef struct {
0656 uint32 stage;
0657 SVGA3dTextureStateName name;
0658 union {
0659 uint32 value;
0660 float floatValue;
0661 };
0662 } SVGA3dTextureState;
0663 #pragma pack(pop)
0664
0665 #pragma pack(push, 1)
0666 typedef struct {
0667 uint32 cid;
0668
0669 } SVGA3dCmdSetTextureState;
0670 #pragma pack(pop)
0671
0672 #pragma pack(push, 1)
0673 typedef struct {
0674 uint32 cid;
0675 SVGA3dTransformType type;
0676 float matrix[16];
0677 } SVGA3dCmdSetTransform;
0678 #pragma pack(pop)
0679
0680 #pragma pack(push, 1)
0681 typedef struct {
0682 float min;
0683 float max;
0684 } SVGA3dZRange;
0685 #pragma pack(pop)
0686
0687 #pragma pack(push, 1)
0688 typedef struct {
0689 uint32 cid;
0690 SVGA3dZRange zRange;
0691 } SVGA3dCmdSetZRange;
0692 #pragma pack(pop)
0693
0694 #pragma pack(push, 1)
0695 typedef struct {
0696 float diffuse[4];
0697 float ambient[4];
0698 float specular[4];
0699 float emissive[4];
0700 float shininess;
0701 } SVGA3dMaterial;
0702 #pragma pack(pop)
0703
0704 #pragma pack(push, 1)
0705 typedef struct {
0706 uint32 cid;
0707 SVGA3dFace face;
0708 SVGA3dMaterial material;
0709 } SVGA3dCmdSetMaterial;
0710 #pragma pack(pop)
0711
0712 #pragma pack(push, 1)
0713 typedef struct {
0714 uint32 cid;
0715 uint32 index;
0716 SVGA3dLightData data;
0717 } SVGA3dCmdSetLightData;
0718 #pragma pack(pop)
0719
0720 #pragma pack(push, 1)
0721 typedef struct {
0722 uint32 cid;
0723 uint32 index;
0724 uint32 enabled;
0725 } SVGA3dCmdSetLightEnabled;
0726 #pragma pack(pop)
0727
0728 #pragma pack(push, 1)
0729 typedef struct {
0730 uint32 cid;
0731 SVGA3dRect rect;
0732 } SVGA3dCmdSetViewport;
0733 #pragma pack(pop)
0734
0735 #pragma pack(push, 1)
0736 typedef struct {
0737 uint32 cid;
0738 SVGA3dRect rect;
0739 } SVGA3dCmdSetScissorRect;
0740 #pragma pack(pop)
0741
0742 #pragma pack(push, 1)
0743 typedef struct {
0744 uint32 cid;
0745 uint32 index;
0746 float plane[4];
0747 } SVGA3dCmdSetClipPlane;
0748 #pragma pack(pop)
0749
0750 #pragma pack(push, 1)
0751 typedef struct {
0752 uint32 cid;
0753 uint32 shid;
0754 SVGA3dShaderType type;
0755
0756 } SVGA3dCmdDefineShader;
0757 #pragma pack(pop)
0758
0759 #pragma pack(push, 1)
0760 typedef struct {
0761 uint32 cid;
0762 uint32 shid;
0763 SVGA3dShaderType type;
0764 } SVGA3dCmdDestroyShader;
0765 #pragma pack(pop)
0766
0767 #pragma pack(push, 1)
0768 typedef struct {
0769 uint32 cid;
0770 uint32 reg;
0771 SVGA3dShaderType type;
0772 SVGA3dShaderConstType ctype;
0773 uint32 values[4];
0774
0775 } SVGA3dCmdSetShaderConst;
0776 #pragma pack(pop)
0777
0778 #pragma pack(push, 1)
0779 typedef struct {
0780 uint32 cid;
0781 SVGA3dShaderType type;
0782 uint32 shid;
0783 } SVGA3dCmdSetShader;
0784 #pragma pack(pop)
0785
0786 #pragma pack(push, 1)
0787 typedef struct {
0788 uint32 cid;
0789 SVGA3dQueryType type;
0790 } SVGA3dCmdBeginQuery;
0791 #pragma pack(pop)
0792
0793 #pragma pack(push, 1)
0794 typedef struct {
0795 uint32 cid;
0796 SVGA3dQueryType type;
0797 SVGAGuestPtr guestResult;
0798 } SVGA3dCmdEndQuery;
0799 #pragma pack(pop)
0800
0801 #pragma pack(push, 1)
0802 typedef struct {
0803 uint32 cid;
0804 SVGA3dQueryType type;
0805 SVGAGuestPtr guestResult;
0806 } SVGA3dCmdWaitForQuery;
0807 #pragma pack(pop)
0808
0809 #pragma pack(push, 1)
0810 typedef struct {
0811 uint32 totalSize;
0812 SVGA3dQueryState state;
0813 union {
0814 uint32 result32;
0815 uint32 queryCookie;
0816 };
0817 } SVGA3dQueryResult;
0818 #pragma pack(pop)
0819
0820 #pragma pack(push, 1)
0821 typedef struct {
0822 SVGA3dSurfaceImageId srcImage;
0823 SVGASignedRect srcRect;
0824 uint32 destScreenId;
0825 SVGASignedRect destRect;
0826
0827 } SVGA3dCmdBlitSurfaceToScreen;
0828 #pragma pack(pop)
0829
0830 #pragma pack(push, 1)
0831 typedef struct {
0832 uint32 sid;
0833 SVGA3dTextureFilter filter;
0834 } SVGA3dCmdGenerateMipmaps;
0835 #pragma pack(pop)
0836
0837 #pragma pack(push, 1)
0838 typedef struct {
0839 uint32 sid;
0840 } SVGA3dCmdActivateSurface;
0841 #pragma pack(pop)
0842
0843 #pragma pack(push, 1)
0844 typedef struct {
0845 uint32 sid;
0846 } SVGA3dCmdDeactivateSurface;
0847 #pragma pack(pop)
0848
0849 #pragma pack(push, 1)
0850 typedef struct SVGA3dCmdScreenDMA {
0851 uint32 screenId;
0852 SVGAGuestImage refBuffer;
0853 SVGAGuestImage destBuffer;
0854 SVGAGuestImage changeMap;
0855 } SVGA3dCmdScreenDMA;
0856 #pragma pack(pop)
0857
0858 #define SVGA3D_LOTRANSBLT_HONORALPHA (0x01)
0859 #define SVGA3D_LOSTRETCHBLT_MIRRORX (0x01)
0860 #define SVGA3D_LOSTRETCHBLT_MIRRORY (0x02)
0861 #define SVGA3D_LOALPHABLEND_SRCHASALPHA (0x01)
0862
0863 #pragma pack(push, 1)
0864 typedef struct SVGA3dCmdLogicOpsBitBlt {
0865 SVGA3dSurfaceImageId src;
0866 SVGA3dSurfaceImageId dst;
0867 SVGA3dLogicOp logicOp;
0868 SVGA3dLogicOpRop3 logicOpRop3;
0869
0870 } SVGA3dCmdLogicOpsBitBlt;
0871 #pragma pack(pop)
0872
0873 #pragma pack(push, 1)
0874 typedef struct SVGA3dCmdLogicOpsTransBlt {
0875 SVGA3dSurfaceImageId src;
0876 SVGA3dSurfaceImageId dst;
0877 uint32 color;
0878 uint32 flags;
0879 SVGA3dBox srcBox;
0880 SVGA3dSignedBox dstBox;
0881 SVGA3dBox clipBox;
0882 } SVGA3dCmdLogicOpsTransBlt;
0883 #pragma pack(pop)
0884
0885 #pragma pack(push, 1)
0886 typedef struct SVGA3dCmdLogicOpsStretchBlt {
0887 SVGA3dSurfaceImageId src;
0888 SVGA3dSurfaceImageId dst;
0889 uint16 mode;
0890 uint16 flags;
0891 SVGA3dBox srcBox;
0892 SVGA3dSignedBox dstBox;
0893 SVGA3dBox clipBox;
0894 } SVGA3dCmdLogicOpsStretchBlt;
0895 #pragma pack(pop)
0896
0897 #pragma pack(push, 1)
0898 typedef struct SVGA3dCmdLogicOpsColorFill {
0899 SVGA3dSurfaceImageId dst;
0900 uint32 color;
0901 SVGA3dLogicOp logicOp;
0902 SVGA3dLogicOpRop3 logicOpRop3;
0903
0904 } SVGA3dCmdLogicOpsColorFill;
0905 #pragma pack(pop)
0906
0907 #pragma pack(push, 1)
0908 typedef struct SVGA3dCmdLogicOpsAlphaBlend {
0909 SVGA3dSurfaceImageId src;
0910 SVGA3dSurfaceImageId dst;
0911 uint32 alphaVal;
0912 uint32 flags;
0913 SVGA3dBox srcBox;
0914 SVGA3dSignedBox dstBox;
0915 SVGA3dBox clipBox;
0916 } SVGA3dCmdLogicOpsAlphaBlend;
0917 #pragma pack(pop)
0918
0919 #define SVGA3D_CLEARTYPE_INVALID_GAMMA_INDEX 0xFFFFFFFF
0920
0921 #define SVGA3D_CLEARTYPE_GAMMA_WIDTH 512
0922 #define SVGA3D_CLEARTYPE_GAMMA_HEIGHT 16
0923
0924 #pragma pack(push, 1)
0925 typedef struct SVGA3dCmdLogicOpsClearTypeBlend {
0926 SVGA3dSurfaceImageId tmp;
0927 SVGA3dSurfaceImageId dst;
0928 SVGA3dSurfaceImageId gammaSurf;
0929 SVGA3dSurfaceImageId alphaSurf;
0930 uint32 gamma;
0931 uint32 color;
0932 uint32 color2;
0933 int32 alphaOffsetX;
0934 int32 alphaOffsetY;
0935
0936 } SVGA3dCmdLogicOpsClearTypeBlend;
0937 #pragma pack(pop)
0938
0939 #pragma pack(push, 1)
0940 typedef struct {
0941 SVGAMobFormat ptDepth;
0942 uint32 sizeInBytes;
0943 PPN64 base;
0944 } SVGAOTableMobEntry;
0945 #pragma pack(pop)
0946
0947 #pragma pack(push, 1)
0948 typedef struct {
0949 SVGA3dSurfaceFormat format;
0950 SVGA3dSurface1Flags surface1Flags;
0951 uint32 numMipLevels;
0952 uint32 multisampleCount;
0953 SVGA3dTextureFilter autogenFilter;
0954 SVGA3dSize size;
0955 SVGAMobId mobid;
0956 uint32 arraySize;
0957 uint32 mobPitch;
0958 SVGA3dSurface2Flags surface2Flags;
0959 uint8 multisamplePattern;
0960 uint8 qualityLevel;
0961 uint16 bufferByteStride;
0962 float minLOD;
0963 uint32 pad0[2];
0964 } SVGAOTableSurfaceEntry;
0965 #pragma pack(pop)
0966
0967 #pragma pack(push, 1)
0968 typedef struct {
0969 uint32 cid;
0970 SVGAMobId mobid;
0971 } SVGAOTableContextEntry;
0972 #pragma pack(pop)
0973
0974 #pragma pack(push, 1)
0975 typedef struct {
0976 SVGA3dShaderType type;
0977 uint32 sizeInBytes;
0978 uint32 offsetInBytes;
0979 SVGAMobId mobid;
0980 } SVGAOTableShaderEntry;
0981 #pragma pack(pop)
0982
0983 #define SVGA_STFLAG_PRIMARY (1 << 0)
0984 #define SVGA_STFLAG_RESERVED (1 << 1)
0985 typedef uint32 SVGAScreenTargetFlags;
0986
0987 #pragma pack(push, 1)
0988 typedef struct {
0989 SVGA3dSurfaceImageId image;
0990 uint32 width;
0991 uint32 height;
0992 int32 xRoot;
0993 int32 yRoot;
0994 SVGAScreenTargetFlags flags;
0995 uint32 dpi;
0996 uint32 pad[7];
0997 } SVGAOTableScreenTargetEntry;
0998 #pragma pack(pop)
0999
1000 #pragma pack(push, 1)
1001 typedef struct {
1002 float value[4];
1003 } SVGA3dShaderConstFloat;
1004 #pragma pack(pop)
1005
1006 #pragma pack(push, 1)
1007 typedef struct {
1008 int32 value[4];
1009 } SVGA3dShaderConstInt;
1010 #pragma pack(pop)
1011
1012 #pragma pack(push, 1)
1013 typedef struct {
1014 uint32 value;
1015 } SVGA3dShaderConstBool;
1016 #pragma pack(pop)
1017
1018 #pragma pack(push, 1)
1019 typedef 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)
1029 typedef struct {
1030 uint32 sid;
1031 uint16 stride;
1032 uint32 offset;
1033 } SVGAGBVertexStream;
1034 #pragma pack(pop)
1035 #pragma pack(push, 1)
1036 typedef 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)
1088 typedef 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)
1098 typedef 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)
1108 typedef 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)
1118 typedef struct {
1119 SVGAOTableType type;
1120 } SVGA3dCmdReadbackOTable;
1121 #pragma pack(pop)
1122
1123 #pragma pack(push, 1)
1124 typedef 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)
1133 typedef struct SVGA3dCmdDestroyGBMob {
1134 SVGAMobId mobid;
1135 } SVGA3dCmdDestroyGBMob;
1136 #pragma pack(pop)
1137
1138 #pragma pack(push, 1)
1139 typedef 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)
1148 typedef 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)
1157 typedef struct SVGA3dCmdUpdateGBMobMapping {
1158 SVGAMobId mobid;
1159 } SVGA3dCmdUpdateGBMobMapping;
1160 #pragma pack(pop)
1161
1162 #pragma pack(push, 1)
1163 typedef 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)
1175 typedef 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)
1189 typedef 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)
1204 typedef 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)
1220 typedef struct SVGA3dCmdDestroyGBSurface {
1221 uint32 sid;
1222 } SVGA3dCmdDestroyGBSurface;
1223 #pragma pack(pop)
1224
1225 #pragma pack(push, 1)
1226 typedef struct SVGA3dCmdBindGBSurface {
1227 uint32 sid;
1228 SVGAMobId mobid;
1229 } SVGA3dCmdBindGBSurface;
1230 #pragma pack(pop)
1231
1232 #pragma pack(push, 1)
1233 typedef 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)
1244 typedef 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)
1253 typedef struct SVGA3dCmdUpdateGBImage {
1254 SVGA3dSurfaceImageId image;
1255 SVGA3dBox box;
1256 } SVGA3dCmdUpdateGBImage;
1257 #pragma pack(pop)
1258
1259 #pragma pack(push, 1)
1260 typedef struct SVGA3dCmdUpdateGBSurface {
1261 uint32 sid;
1262 } SVGA3dCmdUpdateGBSurface;
1263 #pragma pack(pop)
1264
1265 #pragma pack(push, 1)
1266 typedef struct SVGA3dCmdReadbackGBImage {
1267 SVGA3dSurfaceImageId image;
1268 } SVGA3dCmdReadbackGBImage;
1269 #pragma pack(pop)
1270
1271 #pragma pack(push, 1)
1272 typedef struct SVGA3dCmdReadbackGBSurface {
1273 uint32 sid;
1274 } SVGA3dCmdReadbackGBSurface;
1275 #pragma pack(pop)
1276
1277 #pragma pack(push, 1)
1278 typedef struct SVGA3dCmdReadbackGBImagePartial {
1279 SVGA3dSurfaceImageId image;
1280 SVGA3dBox box;
1281 uint32 invertBox;
1282 } SVGA3dCmdReadbackGBImagePartial;
1283 #pragma pack(pop)
1284
1285 #pragma pack(push, 1)
1286 typedef struct SVGA3dCmdInvalidateGBImage {
1287 SVGA3dSurfaceImageId image;
1288 } SVGA3dCmdInvalidateGBImage;
1289 #pragma pack(pop)
1290
1291 #pragma pack(push, 1)
1292 typedef struct SVGA3dCmdInvalidateGBSurface {
1293 uint32 sid;
1294 } SVGA3dCmdInvalidateGBSurface;
1295 #pragma pack(pop)
1296
1297 #pragma pack(push, 1)
1298 typedef struct SVGA3dCmdInvalidateGBImagePartial {
1299 SVGA3dSurfaceImageId image;
1300 SVGA3dBox box;
1301 uint32 invertBox;
1302 } SVGA3dCmdInvalidateGBImagePartial;
1303 #pragma pack(pop)
1304
1305 #pragma pack(push, 1)
1306 typedef struct SVGA3dCmdDefineGBContext {
1307 uint32 cid;
1308 } SVGA3dCmdDefineGBContext;
1309 #pragma pack(pop)
1310
1311 #pragma pack(push, 1)
1312 typedef struct SVGA3dCmdDestroyGBContext {
1313 uint32 cid;
1314 } SVGA3dCmdDestroyGBContext;
1315 #pragma pack(pop)
1316
1317 #pragma pack(push, 1)
1318 typedef struct SVGA3dCmdBindGBContext {
1319 uint32 cid;
1320 SVGAMobId mobid;
1321 uint32 validContents;
1322 } SVGA3dCmdBindGBContext;
1323 #pragma pack(pop)
1324
1325 #pragma pack(push, 1)
1326 typedef struct SVGA3dCmdReadbackGBContext {
1327 uint32 cid;
1328 } SVGA3dCmdReadbackGBContext;
1329 #pragma pack(pop)
1330
1331 #pragma pack(push, 1)
1332 typedef struct SVGA3dCmdInvalidateGBContext {
1333 uint32 cid;
1334 } SVGA3dCmdInvalidateGBContext;
1335 #pragma pack(pop)
1336
1337 #pragma pack(push, 1)
1338 typedef struct SVGA3dCmdDefineGBShader {
1339 uint32 shid;
1340 SVGA3dShaderType type;
1341 uint32 sizeInBytes;
1342 } SVGA3dCmdDefineGBShader;
1343 #pragma pack(pop)
1344
1345 #pragma pack(push, 1)
1346 typedef struct SVGA3dCmdBindGBShader {
1347 uint32 shid;
1348 SVGAMobId mobid;
1349 uint32 offsetInBytes;
1350 } SVGA3dCmdBindGBShader;
1351 #pragma pack(pop)
1352
1353 #pragma pack(push, 1)
1354 typedef struct SVGA3dCmdDestroyGBShader {
1355 uint32 shid;
1356 } SVGA3dCmdDestroyGBShader;
1357 #pragma pack(pop)
1358
1359 #pragma pack(push, 1)
1360 typedef 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)
1370 typedef struct {
1371 uint32 cid;
1372 SVGA3dQueryType type;
1373 } SVGA3dCmdBeginGBQuery;
1374 #pragma pack(pop)
1375
1376 #pragma pack(push, 1)
1377 typedef 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)
1386 typedef 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)
1395 typedef struct {
1396 SVGAMobId mobid;
1397 uint32 mustBeZero;
1398 uint32 initialized;
1399 } SVGA3dCmdEnableGart;
1400 #pragma pack(pop)
1401
1402 #pragma pack(push, 1)
1403 typedef struct {
1404 SVGAMobId mobid;
1405 uint32 gartOffset;
1406 } SVGA3dCmdMapMobIntoGart;
1407 #pragma pack(pop)
1408
1409 #pragma pack(push, 1)
1410 typedef struct {
1411 uint32 gartOffset;
1412 uint32 numPages;
1413 } SVGA3dCmdUnmapGartRange;
1414 #pragma pack(pop)
1415
1416 #pragma pack(push, 1)
1417 typedef 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)
1430 typedef struct {
1431 uint32 stid;
1432 } SVGA3dCmdDestroyGBScreenTarget;
1433 #pragma pack(pop)
1434
1435 #pragma pack(push, 1)
1436 typedef struct {
1437 uint32 stid;
1438 SVGA3dSurfaceImageId image;
1439 } SVGA3dCmdBindGBScreenTarget;
1440 #pragma pack(pop)
1441
1442 #pragma pack(push, 1)
1443 typedef struct {
1444 uint32 stid;
1445 SVGA3dRect rect;
1446 } SVGA3dCmdUpdateGBScreenTarget;
1447 #pragma pack(pop)
1448
1449 #pragma pack(push, 1)
1450 typedef struct {
1451 uint32 stid;
1452 SVGA3dRect rect;
1453 SVGA3dFrameUpdateType type;
1454 } SVGA3dCmdUpdateGBScreenTarget_v2;
1455 #pragma pack(pop)
1456
1457 #pragma pack(push, 1)
1458 typedef 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)
1467 typedef 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)
1477 typedef struct {
1478 uint32 value;
1479 uint32 mobId;
1480 uint32 mobOffset;
1481 } SVGA3dCmdGBMobFence;
1482 #pragma pack(pop)
1483
1484 #pragma pack(push, 1)
1485 typedef 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 0x00
1498 #define SVGA_SCREEN_COPY_STATUS_SUCCESS 0x01
1499 #define SVGA_SCREEN_COPY_STATUS_INVALID 0xFFFFFFFF
1500
1501 #pragma pack(push, 1)
1502 typedef struct {
1503 uint32 sid;
1504 } SVGA3dCmdWriteZeroSurface;
1505 #pragma pack(pop)
1506
1507 #pragma pack(push, 1)
1508 typedef struct {
1509 uint32 sid;
1510 } SVGA3dCmdUpdateZeroSurface;
1511 #pragma pack(pop)
1512
1513 #endif