1*b05fa564SZack Rusin /* SPDX-License-Identifier: GPL-2.0 OR MIT */ 2*b05fa564SZack Rusin /* 3ebc9ac7cSZack Rusin * Copyright 2012-2021 VMware, Inc. 48ce75f8aSSinclair Yeh * 58ce75f8aSSinclair Yeh * Permission is hereby granted, free of charge, to any person 68ce75f8aSSinclair Yeh * obtaining a copy of this software and associated documentation 78ce75f8aSSinclair Yeh * files (the "Software"), to deal in the Software without 88ce75f8aSSinclair Yeh * restriction, including without limitation the rights to use, copy, 98ce75f8aSSinclair Yeh * modify, merge, publish, distribute, sublicense, and/or sell copies 108ce75f8aSSinclair Yeh * of the Software, and to permit persons to whom the Software is 118ce75f8aSSinclair Yeh * furnished to do so, subject to the following conditions: 128ce75f8aSSinclair Yeh * 138ce75f8aSSinclair Yeh * The above copyright notice and this permission notice shall be 148ce75f8aSSinclair Yeh * included in all copies or substantial portions of the Software. 158ce75f8aSSinclair Yeh * 168ce75f8aSSinclair Yeh * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 178ce75f8aSSinclair Yeh * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 188ce75f8aSSinclair Yeh * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 198ce75f8aSSinclair Yeh * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 208ce75f8aSSinclair Yeh * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 218ce75f8aSSinclair Yeh * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 228ce75f8aSSinclair Yeh * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 238ce75f8aSSinclair Yeh * SOFTWARE. 248ce75f8aSSinclair Yeh * 25*b05fa564SZack Rusin */ 268ce75f8aSSinclair Yeh 278ce75f8aSSinclair Yeh /* 288ce75f8aSSinclair Yeh * svga3d_cmd.h -- 298ce75f8aSSinclair Yeh * 308ce75f8aSSinclair Yeh * SVGA 3d hardware cmd definitions 318ce75f8aSSinclair Yeh */ 328ce75f8aSSinclair Yeh 33ebc9ac7cSZack Rusin 34ebc9ac7cSZack Rusin 358ce75f8aSSinclair Yeh #ifndef _SVGA3D_CMD_H_ 368ce75f8aSSinclair Yeh #define _SVGA3D_CMD_H_ 378ce75f8aSSinclair Yeh 388ce75f8aSSinclair Yeh #include "svga3d_types.h" 39ebc9ac7cSZack Rusin #include "svga3d_limits.h" 40ebc9ac7cSZack Rusin #include "svga_reg.h" 418ce75f8aSSinclair Yeh 42ebc9ac7cSZack Rusin typedef enum SVGAFifo3dCmdId { 438ce75f8aSSinclair Yeh SVGA_3D_CMD_LEGACY_BASE = 1000, 448ce75f8aSSinclair Yeh SVGA_3D_CMD_BASE = 1040, 458ce75f8aSSinclair Yeh 468ce75f8aSSinclair Yeh SVGA_3D_CMD_SURFACE_DEFINE = 1040, 478ce75f8aSSinclair Yeh SVGA_3D_CMD_SURFACE_DESTROY = 1041, 488ce75f8aSSinclair Yeh SVGA_3D_CMD_SURFACE_COPY = 1042, 498ce75f8aSSinclair Yeh SVGA_3D_CMD_SURFACE_STRETCHBLT = 1043, 508ce75f8aSSinclair Yeh SVGA_3D_CMD_SURFACE_DMA = 1044, 518ce75f8aSSinclair Yeh SVGA_3D_CMD_CONTEXT_DEFINE = 1045, 528ce75f8aSSinclair Yeh SVGA_3D_CMD_CONTEXT_DESTROY = 1046, 538ce75f8aSSinclair Yeh SVGA_3D_CMD_SETTRANSFORM = 1047, 548ce75f8aSSinclair Yeh SVGA_3D_CMD_SETZRANGE = 1048, 558ce75f8aSSinclair Yeh SVGA_3D_CMD_SETRENDERSTATE = 1049, 568ce75f8aSSinclair Yeh SVGA_3D_CMD_SETRENDERTARGET = 1050, 578ce75f8aSSinclair Yeh SVGA_3D_CMD_SETTEXTURESTATE = 1051, 588ce75f8aSSinclair Yeh SVGA_3D_CMD_SETMATERIAL = 1052, 598ce75f8aSSinclair Yeh SVGA_3D_CMD_SETLIGHTDATA = 1053, 608ce75f8aSSinclair Yeh SVGA_3D_CMD_SETLIGHTENABLED = 1054, 618ce75f8aSSinclair Yeh SVGA_3D_CMD_SETVIEWPORT = 1055, 628ce75f8aSSinclair Yeh SVGA_3D_CMD_SETCLIPPLANE = 1056, 638ce75f8aSSinclair Yeh SVGA_3D_CMD_CLEAR = 1057, 648ce75f8aSSinclair Yeh SVGA_3D_CMD_PRESENT = 1058, 658ce75f8aSSinclair Yeh SVGA_3D_CMD_SHADER_DEFINE = 1059, 668ce75f8aSSinclair Yeh SVGA_3D_CMD_SHADER_DESTROY = 1060, 678ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_SHADER = 1061, 688ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_SHADER_CONST = 1062, 698ce75f8aSSinclair Yeh SVGA_3D_CMD_DRAW_PRIMITIVES = 1063, 708ce75f8aSSinclair Yeh SVGA_3D_CMD_SETSCISSORRECT = 1064, 718ce75f8aSSinclair Yeh SVGA_3D_CMD_BEGIN_QUERY = 1065, 728ce75f8aSSinclair Yeh SVGA_3D_CMD_END_QUERY = 1066, 738ce75f8aSSinclair Yeh SVGA_3D_CMD_WAIT_FOR_QUERY = 1067, 748ce75f8aSSinclair Yeh SVGA_3D_CMD_PRESENT_READBACK = 1068, 758ce75f8aSSinclair Yeh SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN = 1069, 768ce75f8aSSinclair Yeh SVGA_3D_CMD_SURFACE_DEFINE_V2 = 1070, 778ce75f8aSSinclair Yeh SVGA_3D_CMD_GENERATE_MIPMAPS = 1071, 78dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD4 = 1072, 79dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD5 = 1073, 80dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD6 = 1074, 81dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD7 = 1075, 82dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD8 = 1076, 83dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD9 = 1077, 84dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD10 = 1078, 85dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD11 = 1079, 868ce75f8aSSinclair Yeh SVGA_3D_CMD_ACTIVATE_SURFACE = 1080, 878ce75f8aSSinclair Yeh SVGA_3D_CMD_DEACTIVATE_SURFACE = 1081, 888ce75f8aSSinclair Yeh SVGA_3D_CMD_SCREEN_DMA = 1082, 89dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD1 = 1083, 90dc75e733SDeepak Rawat SVGA_3D_CMD_DEAD2 = 1084, 918ce75f8aSSinclair Yeh 923d143954SDeepak Rawat SVGA_3D_CMD_DEAD12 = 1085, 933d143954SDeepak Rawat SVGA_3D_CMD_DEAD13 = 1086, 943d143954SDeepak Rawat SVGA_3D_CMD_DEAD14 = 1087, 953d143954SDeepak Rawat SVGA_3D_CMD_DEAD15 = 1088, 963d143954SDeepak Rawat SVGA_3D_CMD_DEAD16 = 1089, 973d143954SDeepak Rawat SVGA_3D_CMD_DEAD17 = 1090, 988ce75f8aSSinclair Yeh 998ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_OTABLE_BASE = 1091, 1008ce75f8aSSinclair Yeh SVGA_3D_CMD_READBACK_OTABLE = 1092, 1018ce75f8aSSinclair Yeh 1028ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_MOB = 1093, 1038ce75f8aSSinclair Yeh SVGA_3D_CMD_DESTROY_GB_MOB = 1094, 1048ce75f8aSSinclair Yeh SVGA_3D_CMD_DEAD3 = 1095, 1058ce75f8aSSinclair Yeh SVGA_3D_CMD_UPDATE_GB_MOB_MAPPING = 1096, 1068ce75f8aSSinclair Yeh 1078ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_SURFACE = 1097, 1088ce75f8aSSinclair Yeh SVGA_3D_CMD_DESTROY_GB_SURFACE = 1098, 1098ce75f8aSSinclair Yeh SVGA_3D_CMD_BIND_GB_SURFACE = 1099, 1108ce75f8aSSinclair Yeh SVGA_3D_CMD_COND_BIND_GB_SURFACE = 1100, 1118ce75f8aSSinclair Yeh SVGA_3D_CMD_UPDATE_GB_IMAGE = 1101, 1128ce75f8aSSinclair Yeh SVGA_3D_CMD_UPDATE_GB_SURFACE = 1102, 1138ce75f8aSSinclair Yeh SVGA_3D_CMD_READBACK_GB_IMAGE = 1103, 1148ce75f8aSSinclair Yeh SVGA_3D_CMD_READBACK_GB_SURFACE = 1104, 1158ce75f8aSSinclair Yeh SVGA_3D_CMD_INVALIDATE_GB_IMAGE = 1105, 1168ce75f8aSSinclair Yeh SVGA_3D_CMD_INVALIDATE_GB_SURFACE = 1106, 1178ce75f8aSSinclair Yeh 1188ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_CONTEXT = 1107, 1198ce75f8aSSinclair Yeh SVGA_3D_CMD_DESTROY_GB_CONTEXT = 1108, 1208ce75f8aSSinclair Yeh SVGA_3D_CMD_BIND_GB_CONTEXT = 1109, 1218ce75f8aSSinclair Yeh SVGA_3D_CMD_READBACK_GB_CONTEXT = 1110, 1228ce75f8aSSinclair Yeh SVGA_3D_CMD_INVALIDATE_GB_CONTEXT = 1111, 1238ce75f8aSSinclair Yeh 1248ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_SHADER = 1112, 1258ce75f8aSSinclair Yeh SVGA_3D_CMD_DESTROY_GB_SHADER = 1113, 1268ce75f8aSSinclair Yeh SVGA_3D_CMD_BIND_GB_SHADER = 1114, 1278ce75f8aSSinclair Yeh 1288ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_OTABLE_BASE64 = 1115, 1298ce75f8aSSinclair Yeh 1308ce75f8aSSinclair Yeh SVGA_3D_CMD_BEGIN_GB_QUERY = 1116, 1318ce75f8aSSinclair Yeh SVGA_3D_CMD_END_GB_QUERY = 1117, 1328ce75f8aSSinclair Yeh SVGA_3D_CMD_WAIT_FOR_GB_QUERY = 1118, 1338ce75f8aSSinclair Yeh 1348ce75f8aSSinclair Yeh SVGA_3D_CMD_NOP = 1119, 1358ce75f8aSSinclair Yeh 1368ce75f8aSSinclair Yeh SVGA_3D_CMD_ENABLE_GART = 1120, 1378ce75f8aSSinclair Yeh SVGA_3D_CMD_DISABLE_GART = 1121, 1388ce75f8aSSinclair Yeh SVGA_3D_CMD_MAP_MOB_INTO_GART = 1122, 1398ce75f8aSSinclair Yeh SVGA_3D_CMD_UNMAP_GART_RANGE = 1123, 1408ce75f8aSSinclair Yeh 1418ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_SCREENTARGET = 1124, 1428ce75f8aSSinclair Yeh SVGA_3D_CMD_DESTROY_GB_SCREENTARGET = 1125, 1438ce75f8aSSinclair Yeh SVGA_3D_CMD_BIND_GB_SCREENTARGET = 1126, 1448ce75f8aSSinclair Yeh SVGA_3D_CMD_UPDATE_GB_SCREENTARGET = 1127, 1458ce75f8aSSinclair Yeh 1468ce75f8aSSinclair Yeh SVGA_3D_CMD_READBACK_GB_IMAGE_PARTIAL = 1128, 1478ce75f8aSSinclair Yeh SVGA_3D_CMD_INVALIDATE_GB_IMAGE_PARTIAL = 1129, 1488ce75f8aSSinclair Yeh 1498ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE = 1130, 1508ce75f8aSSinclair Yeh 1518ce75f8aSSinclair Yeh SVGA_3D_CMD_GB_SCREEN_DMA = 1131, 1528ce75f8aSSinclair Yeh SVGA_3D_CMD_BIND_GB_SURFACE_WITH_PITCH = 1132, 1538ce75f8aSSinclair Yeh SVGA_3D_CMD_GB_MOB_FENCE = 1133, 1548ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_SURFACE_V2 = 1134, 1558ce75f8aSSinclair Yeh SVGA_3D_CMD_DEFINE_GB_MOB64 = 1135, 1568ce75f8aSSinclair Yeh SVGA_3D_CMD_REDEFINE_GB_MOB64 = 1136, 1578ce75f8aSSinclair Yeh SVGA_3D_CMD_NOP_ERROR = 1137, 1588ce75f8aSSinclair Yeh 1598ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_VERTEX_STREAMS = 1138, 1608ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_VERTEX_DECLS = 1139, 1618ce75f8aSSinclair Yeh SVGA_3D_CMD_SET_VERTEX_DIVISORS = 1140, 1628ce75f8aSSinclair Yeh SVGA_3D_CMD_DRAW = 1141, 1638ce75f8aSSinclair Yeh SVGA_3D_CMD_DRAW_INDEXED = 1142, 1648ce75f8aSSinclair Yeh 1658ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_MIN = 1143, 1668ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_CONTEXT = 1143, 1678ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_CONTEXT = 1144, 1688ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BIND_CONTEXT = 1145, 1698ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_READBACK_CONTEXT = 1146, 1708ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_INVALIDATE_CONTEXT = 1147, 1718ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_SINGLE_CONSTANT_BUFFER = 1148, 1728ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_SHADER_RESOURCES = 1149, 1738ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_SHADER = 1150, 1748ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_SAMPLERS = 1151, 1758ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DRAW = 1152, 1768ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DRAW_INDEXED = 1153, 1778ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DRAW_INSTANCED = 1154, 1788ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED = 1155, 1798ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DRAW_AUTO = 1156, 1808ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_INPUT_LAYOUT = 1157, 1818ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS = 1158, 1828ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_INDEX_BUFFER = 1159, 1838ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_TOPOLOGY = 1160, 1848ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_RENDERTARGETS = 1161, 1858ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_BLEND_STATE = 1162, 1868ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_DEPTHSTENCIL_STATE = 1163, 1878ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_RASTERIZER_STATE = 1164, 1888ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_QUERY = 1165, 1898ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_QUERY = 1166, 1908ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BIND_QUERY = 1167, 1918ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_QUERY_OFFSET = 1168, 1928ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BEGIN_QUERY = 1169, 1938ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_END_QUERY = 1170, 1948ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_READBACK_QUERY = 1171, 1958ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_PREDICATION = 1172, 1968ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_SOTARGETS = 1173, 1978ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_VIEWPORTS = 1174, 1988ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_SCISSORRECTS = 1175, 1998ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_CLEAR_RENDERTARGET_VIEW = 1176, 2008ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_CLEAR_DEPTHSTENCIL_VIEW = 1177, 2018ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_PRED_COPY_REGION = 1178, 2028ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_PRED_COPY = 1179, 203dc75e733SDeepak Rawat SVGA_3D_CMD_DX_PRESENTBLT = 1180, 2048ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_GENMIPS = 1181, 2058ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_UPDATE_SUBRESOURCE = 1182, 2068ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_READBACK_SUBRESOURCE = 1183, 2078ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_INVALIDATE_SUBRESOURCE = 1184, 2088ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_SHADERRESOURCE_VIEW = 1185, 2098ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_SHADERRESOURCE_VIEW = 1186, 2108ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW = 1187, 2118ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_RENDERTARGET_VIEW = 1188, 2128ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW = 1189, 2138ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_VIEW = 1190, 2148ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_ELEMENTLAYOUT = 1191, 2158ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_ELEMENTLAYOUT = 1192, 2168ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_BLEND_STATE = 1193, 2178ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_BLEND_STATE = 1194, 2188ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_STATE = 1195, 2198ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_STATE = 1196, 2208ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE = 1197, 2218ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_RASTERIZER_STATE = 1198, 2228ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_SAMPLER_STATE = 1199, 2238ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_SAMPLER_STATE = 1200, 2248ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_SHADER = 1201, 2258ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_SHADER = 1202, 2268ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BIND_SHADER = 1203, 2278ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT = 1204, 2288ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_DESTROY_STREAMOUTPUT = 1205, 2298ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_STREAMOUTPUT = 1206, 2308ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_COTABLE = 1207, 2318ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_READBACK_COTABLE = 1208, 2328ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BUFFER_COPY = 1209, 2338ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_TRANSFER_FROM_BUFFER = 1210, 2348ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SURFACE_COPY_AND_READBACK = 1211, 2358ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_MOVE_QUERY = 1212, 2368ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BIND_ALL_QUERY = 1213, 2378ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_READBACK_ALL_QUERY = 1214, 2388ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_PRED_TRANSFER_FROM_BUFFER = 1215, 2398ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_MOB_FENCE_64 = 1216, 240dc75e733SDeepak Rawat SVGA_3D_CMD_DX_BIND_ALL_SHADER = 1217, 2418ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_HINT = 1218, 2428ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_BUFFER_UPDATE = 1219, 2438ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_VS_CONSTANT_BUFFER_OFFSET = 1220, 2448ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_PS_CONSTANT_BUFFER_OFFSET = 1221, 2458ce75f8aSSinclair Yeh SVGA_3D_CMD_DX_SET_GS_CONSTANT_BUFFER_OFFSET = 1222, 2460651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_HS_CONSTANT_BUFFER_OFFSET = 1223, 2470651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_DS_CONSTANT_BUFFER_OFFSET = 1224, 2480651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_CS_CONSTANT_BUFFER_OFFSET = 1225, 2498ce75f8aSSinclair Yeh 250dc75e733SDeepak Rawat SVGA_3D_CMD_DX_COND_BIND_ALL_SHADER = 1226, 251dc75e733SDeepak Rawat SVGA_3D_CMD_DX_MAX = 1227, 252dc75e733SDeepak Rawat 253dc75e733SDeepak Rawat SVGA_3D_CMD_SCREEN_COPY = 1227, 254dc75e733SDeepak Rawat 2550651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED1 = 1228, 2560651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED2 = 1229, 2570651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED3 = 1230, 2580651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED4 = 1231, 2590651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED5 = 1232, 2600651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED6 = 1233, 2610651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED7 = 1234, 2620651dfabSDeepak Rawat SVGA_3D_CMD_RESERVED8 = 1235, 263dc75e733SDeepak Rawat 264dc75e733SDeepak Rawat SVGA_3D_CMD_GROW_OTABLE = 1236, 265dc75e733SDeepak Rawat SVGA_3D_CMD_DX_GROW_COTABLE = 1237, 266dc75e733SDeepak Rawat SVGA_3D_CMD_INTRA_SURFACE_COPY = 1238, 267dc75e733SDeepak Rawat 268dc75e733SDeepak Rawat SVGA_3D_CMD_DEFINE_GB_SURFACE_V3 = 1239, 269dc75e733SDeepak Rawat 270dc75e733SDeepak Rawat SVGA_3D_CMD_DX_RESOLVE_COPY = 1240, 271dc75e733SDeepak Rawat SVGA_3D_CMD_DX_PRED_RESOLVE_COPY = 1241, 272dc75e733SDeepak Rawat SVGA_3D_CMD_DX_PRED_CONVERT_REGION = 1242, 273dc75e733SDeepak Rawat SVGA_3D_CMD_DX_PRED_CONVERT = 1243, 274dc75e733SDeepak Rawat SVGA_3D_CMD_WHOLE_SURFACE_COPY = 1244, 275dc75e733SDeepak Rawat 2760651dfabSDeepak Rawat SVGA_3D_CMD_DX_DEFINE_UA_VIEW = 1245, 2770651dfabSDeepak Rawat SVGA_3D_CMD_DX_DESTROY_UA_VIEW = 1246, 2780651dfabSDeepak Rawat SVGA_3D_CMD_DX_CLEAR_UA_VIEW_UINT = 1247, 2790651dfabSDeepak Rawat SVGA_3D_CMD_DX_CLEAR_UA_VIEW_FLOAT = 1248, 2800651dfabSDeepak Rawat SVGA_3D_CMD_DX_COPY_STRUCTURE_COUNT = 1249, 2810651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_UA_VIEWS = 1250, 2820651dfabSDeepak Rawat 2830651dfabSDeepak Rawat SVGA_3D_CMD_DX_DRAW_INDEXED_INSTANCED_INDIRECT = 1251, 2840651dfabSDeepak Rawat SVGA_3D_CMD_DX_DRAW_INSTANCED_INDIRECT = 1252, 2850651dfabSDeepak Rawat SVGA_3D_CMD_DX_DISPATCH = 1253, 2860651dfabSDeepak Rawat SVGA_3D_CMD_DX_DISPATCH_INDIRECT = 1254, 2870651dfabSDeepak Rawat 2880651dfabSDeepak Rawat SVGA_3D_CMD_WRITE_ZERO_SURFACE = 1255, 289ebc9ac7cSZack Rusin SVGA_3D_CMD_UPDATE_ZERO_SURFACE = 1256, 2900651dfabSDeepak Rawat SVGA_3D_CMD_DX_TRANSFER_TO_BUFFER = 1257, 2910651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_STRUCTURE_COUNT = 1258, 2920651dfabSDeepak Rawat 2930651dfabSDeepak Rawat SVGA_3D_CMD_LOGICOPS_BITBLT = 1259, 2940651dfabSDeepak Rawat SVGA_3D_CMD_LOGICOPS_TRANSBLT = 1260, 2950651dfabSDeepak Rawat SVGA_3D_CMD_LOGICOPS_STRETCHBLT = 1261, 2960651dfabSDeepak Rawat SVGA_3D_CMD_LOGICOPS_COLORFILL = 1262, 2970651dfabSDeepak Rawat SVGA_3D_CMD_LOGICOPS_ALPHABLEND = 1263, 2980651dfabSDeepak Rawat SVGA_3D_CMD_LOGICOPS_CLEARTYPEBLEND = 1264, 2990651dfabSDeepak Rawat 300ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_COPY_COTABLE_INTO_MOB = 1265, 3010651dfabSDeepak Rawat 302ebc9ac7cSZack Rusin SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_V2 = 1266, 303ebc9ac7cSZack Rusin 3040651dfabSDeepak Rawat SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 = 1267, 3050651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_CS_UA_VIEWS = 1268, 3060651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_MIN_LOD = 1269, 307ebc9ac7cSZack Rusin 3080651dfabSDeepak Rawat SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW_V2 = 1272, 3090651dfabSDeepak Rawat SVGA_3D_CMD_DX_DEFINE_STREAMOUTPUT_WITH_MOB = 1273, 3100651dfabSDeepak Rawat SVGA_3D_CMD_DX_SET_SHADER_IFACE = 1274, 3110651dfabSDeepak Rawat SVGA_3D_CMD_DX_BIND_STREAMOUTPUT = 1275, 3120651dfabSDeepak Rawat SVGA_3D_CMD_SURFACE_STRETCHBLT_NON_MS_TO_MS = 1276, 3130651dfabSDeepak Rawat SVGA_3D_CMD_DX_BIND_SHADER_IFACE = 1277, 3140651dfabSDeepak Rawat 315ebc9ac7cSZack Rusin SVGA_3D_CMD_UPDATE_GB_SCREENTARGET_MOVE = 1278, 316ebc9ac7cSZack Rusin 317ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_PRED_STAGING_COPY = 1281, 318ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_STAGING_COPY = 1282, 319ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_PRED_STAGING_COPY_REGION = 1283, 320ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_V2 = 1284, 321ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_SET_INDEX_BUFFER_V2 = 1285, 322ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_SET_VERTEX_BUFFERS_OFFSET_AND_SIZE = 1286, 323ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_SET_INDEX_BUFFER_OFFSET_AND_SIZE = 1287, 324ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 = 1288, 325ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_PRED_STAGING_CONVERT_REGION = 1289, 326ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_PRED_STAGING_CONVERT = 1290, 327ebc9ac7cSZack Rusin SVGA_3D_CMD_DX_STAGING_BUFFER_COPY = 1291, 328ebc9ac7cSZack Rusin 329ebc9ac7cSZack Rusin SVGA_3D_CMD_MAX = 1303, 3308ce75f8aSSinclair Yeh SVGA_3D_CMD_FUTURE_MAX = 3000 3318ce75f8aSSinclair Yeh } SVGAFifo3dCmdId; 3328ce75f8aSSinclair Yeh 333dc75e733SDeepak Rawat #define SVGA_NUM_3D_CMD (SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE) 334dc75e733SDeepak Rawat 335ebc9ac7cSZack Rusin #pragma pack(push, 1) 336ebc9ac7cSZack Rusin typedef struct { 3378ce75f8aSSinclair Yeh uint32 id; 3388ce75f8aSSinclair Yeh uint32 size; 339ebc9ac7cSZack Rusin } SVGA3dCmdHeader; 340ebc9ac7cSZack Rusin #pragma pack(pop) 3418ce75f8aSSinclair Yeh 342ebc9ac7cSZack Rusin #pragma pack(push, 1) 343ebc9ac7cSZack Rusin typedef struct { 3448ce75f8aSSinclair Yeh uint32 numMipLevels; 345ebc9ac7cSZack Rusin } SVGA3dSurfaceFace; 346ebc9ac7cSZack Rusin #pragma pack(pop) 3478ce75f8aSSinclair Yeh 348ebc9ac7cSZack Rusin #pragma pack(push, 1) 349ebc9ac7cSZack Rusin typedef struct { 3508ce75f8aSSinclair Yeh uint32 sid; 351dc75e733SDeepak Rawat SVGA3dSurface1Flags surfaceFlags; 3528ce75f8aSSinclair Yeh SVGA3dSurfaceFormat format; 3530651dfabSDeepak Rawat 3548ce75f8aSSinclair Yeh SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES]; 3550651dfabSDeepak Rawat 356ebc9ac7cSZack Rusin } SVGA3dCmdDefineSurface; 357ebc9ac7cSZack Rusin #pragma pack(pop) 3588ce75f8aSSinclair Yeh 359ebc9ac7cSZack Rusin #pragma pack(push, 1) 360ebc9ac7cSZack Rusin typedef struct { 3618ce75f8aSSinclair Yeh uint32 sid; 362dc75e733SDeepak Rawat SVGA3dSurface1Flags surfaceFlags; 3638ce75f8aSSinclair Yeh SVGA3dSurfaceFormat format; 3640651dfabSDeepak Rawat 3658ce75f8aSSinclair Yeh SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES]; 3668ce75f8aSSinclair Yeh uint32 multisampleCount; 3678ce75f8aSSinclair Yeh SVGA3dTextureFilter autogenFilter; 3680651dfabSDeepak Rawat 369ebc9ac7cSZack Rusin } SVGA3dCmdDefineSurface_v2; 370ebc9ac7cSZack Rusin #pragma pack(pop) 3718ce75f8aSSinclair Yeh 372ebc9ac7cSZack Rusin #pragma pack(push, 1) 373ebc9ac7cSZack Rusin typedef struct { 3748ce75f8aSSinclair Yeh uint32 sid; 375ebc9ac7cSZack Rusin } SVGA3dCmdDestroySurface; 376ebc9ac7cSZack Rusin #pragma pack(pop) 3778ce75f8aSSinclair Yeh 378ebc9ac7cSZack Rusin #pragma pack(push, 1) 379ebc9ac7cSZack Rusin typedef struct { 3808ce75f8aSSinclair Yeh uint32 cid; 381ebc9ac7cSZack Rusin } SVGA3dCmdDefineContext; 382ebc9ac7cSZack Rusin #pragma pack(pop) 3838ce75f8aSSinclair Yeh 384ebc9ac7cSZack Rusin #pragma pack(push, 1) 385ebc9ac7cSZack Rusin typedef struct { 3868ce75f8aSSinclair Yeh uint32 cid; 387ebc9ac7cSZack Rusin } SVGA3dCmdDestroyContext; 388ebc9ac7cSZack Rusin #pragma pack(pop) 3898ce75f8aSSinclair Yeh 390ebc9ac7cSZack Rusin #pragma pack(push, 1) 391ebc9ac7cSZack Rusin typedef struct { 3928ce75f8aSSinclair Yeh uint32 cid; 3938ce75f8aSSinclair Yeh SVGA3dClearFlag clearFlag; 3948ce75f8aSSinclair Yeh uint32 color; 3958ce75f8aSSinclair Yeh float depth; 3968ce75f8aSSinclair Yeh uint32 stencil; 3978ce75f8aSSinclair Yeh 398ebc9ac7cSZack Rusin } SVGA3dCmdClear; 399ebc9ac7cSZack Rusin #pragma pack(pop) 400ebc9ac7cSZack Rusin 401ebc9ac7cSZack Rusin #pragma pack(push, 1) 402ebc9ac7cSZack Rusin typedef struct { 4038ce75f8aSSinclair Yeh SVGA3dLightType type; 4048ce75f8aSSinclair Yeh SVGA3dBool inWorldSpace; 4058ce75f8aSSinclair Yeh float diffuse[4]; 4068ce75f8aSSinclair Yeh float specular[4]; 4078ce75f8aSSinclair Yeh float ambient[4]; 4088ce75f8aSSinclair Yeh float position[4]; 4098ce75f8aSSinclair Yeh float direction[4]; 4108ce75f8aSSinclair Yeh float range; 4118ce75f8aSSinclair Yeh float falloff; 4128ce75f8aSSinclair Yeh float attenuation0; 4138ce75f8aSSinclair Yeh float attenuation1; 4148ce75f8aSSinclair Yeh float attenuation2; 4158ce75f8aSSinclair Yeh float theta; 4168ce75f8aSSinclair Yeh float phi; 417ebc9ac7cSZack Rusin } SVGA3dLightData; 418ebc9ac7cSZack Rusin #pragma pack(pop) 4198ce75f8aSSinclair Yeh 420ebc9ac7cSZack Rusin #pragma pack(push, 1) 421ebc9ac7cSZack Rusin typedef struct { 4228ce75f8aSSinclair Yeh uint32 sid; 4238ce75f8aSSinclair Yeh 424ebc9ac7cSZack Rusin } SVGA3dCmdPresent; 425ebc9ac7cSZack Rusin #pragma pack(pop) 426ebc9ac7cSZack Rusin 427ebc9ac7cSZack Rusin #pragma pack(push, 1) 428ebc9ac7cSZack Rusin typedef struct { 4298ce75f8aSSinclair Yeh SVGA3dRenderStateName state; 4308ce75f8aSSinclair Yeh union { 4318ce75f8aSSinclair Yeh uint32 uintValue; 4328ce75f8aSSinclair Yeh float floatValue; 4338ce75f8aSSinclair Yeh }; 434ebc9ac7cSZack Rusin } SVGA3dRenderState; 435ebc9ac7cSZack Rusin #pragma pack(pop) 4368ce75f8aSSinclair Yeh 437ebc9ac7cSZack Rusin #pragma pack(push, 1) 438ebc9ac7cSZack Rusin typedef struct { 4398ce75f8aSSinclair Yeh uint32 cid; 4408ce75f8aSSinclair Yeh 441ebc9ac7cSZack Rusin } SVGA3dCmdSetRenderState; 442ebc9ac7cSZack Rusin #pragma pack(pop) 443ebc9ac7cSZack Rusin 444ebc9ac7cSZack Rusin #pragma pack(push, 1) 445ebc9ac7cSZack Rusin typedef struct { 4468ce75f8aSSinclair Yeh uint32 cid; 4478ce75f8aSSinclair Yeh SVGA3dRenderTargetType type; 4488ce75f8aSSinclair Yeh SVGA3dSurfaceImageId target; 449ebc9ac7cSZack Rusin } SVGA3dCmdSetRenderTarget; 450ebc9ac7cSZack Rusin #pragma pack(pop) 4518ce75f8aSSinclair Yeh 452ebc9ac7cSZack Rusin #pragma pack(push, 1) 453ebc9ac7cSZack Rusin typedef struct { 4548ce75f8aSSinclair Yeh SVGA3dSurfaceImageId src; 4558ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dest; 4568ce75f8aSSinclair Yeh 457ebc9ac7cSZack Rusin } SVGA3dCmdSurfaceCopy; 458ebc9ac7cSZack Rusin #pragma pack(pop) 459ebc9ac7cSZack Rusin 460ebc9ac7cSZack Rusin #pragma pack(push, 1) 461ebc9ac7cSZack Rusin typedef struct { 462dc75e733SDeepak Rawat SVGA3dSurfaceImageId surface; 463dc75e733SDeepak Rawat SVGA3dCopyBox box; 464ebc9ac7cSZack Rusin } SVGA3dCmdIntraSurfaceCopy; 465ebc9ac7cSZack Rusin #pragma pack(pop) 466dc75e733SDeepak Rawat 467ebc9ac7cSZack Rusin #pragma pack(push, 1) 468ebc9ac7cSZack Rusin typedef struct { 469dc75e733SDeepak Rawat uint32 srcSid; 470dc75e733SDeepak Rawat uint32 destSid; 471ebc9ac7cSZack Rusin } SVGA3dCmdWholeSurfaceCopy; 472ebc9ac7cSZack Rusin #pragma pack(pop) 473dc75e733SDeepak Rawat 474ebc9ac7cSZack Rusin #pragma pack(push, 1) 475ebc9ac7cSZack Rusin typedef struct { 4768ce75f8aSSinclair Yeh SVGA3dSurfaceImageId src; 4778ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dest; 4788ce75f8aSSinclair Yeh SVGA3dBox boxSrc; 4798ce75f8aSSinclair Yeh SVGA3dBox boxDest; 480ebc9ac7cSZack Rusin } SVGA3dCmdSurfaceStretchBltNonMSToMS; 481ebc9ac7cSZack Rusin #pragma pack(pop) 4820651dfabSDeepak Rawat 483ebc9ac7cSZack Rusin #pragma pack(push, 1) 484ebc9ac7cSZack Rusin typedef struct { 4850651dfabSDeepak Rawat SVGA3dSurfaceImageId src; 4860651dfabSDeepak Rawat SVGA3dSurfaceImageId dest; 4870651dfabSDeepak Rawat SVGA3dBox boxSrc; 4880651dfabSDeepak Rawat SVGA3dBox boxDest; 4898ce75f8aSSinclair Yeh SVGA3dStretchBltMode mode; 490ebc9ac7cSZack Rusin } SVGA3dCmdSurfaceStretchBlt; 491ebc9ac7cSZack Rusin #pragma pack(pop) 4928ce75f8aSSinclair Yeh 493ebc9ac7cSZack Rusin #pragma pack(push, 1) 494ebc9ac7cSZack Rusin typedef struct { 4958ce75f8aSSinclair Yeh uint32 discard : 1; 4968ce75f8aSSinclair Yeh 4978ce75f8aSSinclair Yeh uint32 unsynchronized : 1; 4988ce75f8aSSinclair Yeh 4998ce75f8aSSinclair Yeh uint32 reserved : 30; 500ebc9ac7cSZack Rusin } SVGA3dSurfaceDMAFlags; 501ebc9ac7cSZack Rusin #pragma pack(pop) 5028ce75f8aSSinclair Yeh 503ebc9ac7cSZack Rusin #pragma pack(push, 1) 504ebc9ac7cSZack Rusin typedef struct { 5058ce75f8aSSinclair Yeh SVGAGuestImage guest; 5068ce75f8aSSinclair Yeh SVGA3dSurfaceImageId host; 5078ce75f8aSSinclair Yeh SVGA3dTransferType transfer; 5080651dfabSDeepak Rawat 509ebc9ac7cSZack Rusin } SVGA3dCmdSurfaceDMA; 510ebc9ac7cSZack Rusin #pragma pack(pop) 5118ce75f8aSSinclair Yeh 512ebc9ac7cSZack Rusin #pragma pack(push, 1) 513ebc9ac7cSZack Rusin typedef struct { 5148ce75f8aSSinclair Yeh uint32 suffixSize; 5158ce75f8aSSinclair Yeh 5168ce75f8aSSinclair Yeh uint32 maximumOffset; 5178ce75f8aSSinclair Yeh 5188ce75f8aSSinclair Yeh SVGA3dSurfaceDMAFlags flags; 519ebc9ac7cSZack Rusin } SVGA3dCmdSurfaceDMASuffix; 520ebc9ac7cSZack Rusin #pragma pack(pop) 5218ce75f8aSSinclair Yeh 522ebc9ac7cSZack Rusin #pragma pack(push, 1) 523ebc9ac7cSZack Rusin typedef struct { 5248ce75f8aSSinclair Yeh uint32 first; 5258ce75f8aSSinclair Yeh uint32 last; 526ebc9ac7cSZack Rusin } SVGA3dArrayRangeHint; 527ebc9ac7cSZack Rusin #pragma pack(pop) 5288ce75f8aSSinclair Yeh 529ebc9ac7cSZack Rusin #pragma pack(push, 1) 530ebc9ac7cSZack Rusin typedef struct { 5318ce75f8aSSinclair Yeh uint32 surfaceId; 5328ce75f8aSSinclair Yeh uint32 offset; 5338ce75f8aSSinclair Yeh uint32 stride; 534ebc9ac7cSZack Rusin } SVGA3dArray; 535ebc9ac7cSZack Rusin #pragma pack(pop) 5368ce75f8aSSinclair Yeh 537ebc9ac7cSZack Rusin #pragma pack(push, 1) 538ebc9ac7cSZack Rusin typedef struct { 5398ce75f8aSSinclair Yeh SVGA3dDeclType type; 5408ce75f8aSSinclair Yeh SVGA3dDeclMethod method; 5418ce75f8aSSinclair Yeh SVGA3dDeclUsage usage; 5428ce75f8aSSinclair Yeh uint32 usageIndex; 543ebc9ac7cSZack Rusin } SVGA3dVertexArrayIdentity; 544ebc9ac7cSZack Rusin #pragma pack(pop) 5458ce75f8aSSinclair Yeh 546ebc9ac7cSZack Rusin #pragma pack(push, 1) 547ebc9ac7cSZack Rusin typedef struct SVGA3dVertexDecl { 5488ce75f8aSSinclair Yeh SVGA3dVertexArrayIdentity identity; 5498ce75f8aSSinclair Yeh SVGA3dArray array; 5508ce75f8aSSinclair Yeh SVGA3dArrayRangeHint rangeHint; 551ebc9ac7cSZack Rusin } SVGA3dVertexDecl; 552ebc9ac7cSZack Rusin #pragma pack(pop) 5538ce75f8aSSinclair Yeh 554ebc9ac7cSZack Rusin #pragma pack(push, 1) 555ebc9ac7cSZack Rusin typedef struct SVGA3dPrimitiveRange { 5568ce75f8aSSinclair Yeh SVGA3dPrimitiveType primType; 5578ce75f8aSSinclair Yeh uint32 primitiveCount; 5588ce75f8aSSinclair Yeh 5598ce75f8aSSinclair Yeh SVGA3dArray indexArray; 5608ce75f8aSSinclair Yeh uint32 indexWidth; 5618ce75f8aSSinclair Yeh 5628ce75f8aSSinclair Yeh int32 indexBias; 563ebc9ac7cSZack Rusin } SVGA3dPrimitiveRange; 564ebc9ac7cSZack Rusin #pragma pack(pop) 5658ce75f8aSSinclair Yeh 566ebc9ac7cSZack Rusin #pragma pack(push, 1) 567ebc9ac7cSZack Rusin typedef struct { 5688ce75f8aSSinclair Yeh uint32 cid; 5698ce75f8aSSinclair Yeh uint32 numVertexDecls; 5708ce75f8aSSinclair Yeh uint32 numRanges; 5718ce75f8aSSinclair Yeh 572ebc9ac7cSZack Rusin } SVGA3dCmdDrawPrimitives; 573ebc9ac7cSZack Rusin #pragma pack(pop) 5748ce75f8aSSinclair Yeh 575ebc9ac7cSZack Rusin #pragma pack(push, 1) 576ebc9ac7cSZack Rusin typedef struct { 5778ce75f8aSSinclair Yeh uint32 cid; 5788ce75f8aSSinclair Yeh 579ebc9ac7cSZack Rusin uint32 primitiveCount; 580ebc9ac7cSZack Rusin uint32 startVertexLocation; 5818ce75f8aSSinclair Yeh 582ebc9ac7cSZack Rusin uint8 primitiveType; 5838ce75f8aSSinclair Yeh uint8 padding[3]; 584ebc9ac7cSZack Rusin } SVGA3dCmdDraw; 585ebc9ac7cSZack Rusin #pragma pack(pop) 5868ce75f8aSSinclair Yeh 587ebc9ac7cSZack Rusin #pragma pack(push, 1) 588ebc9ac7cSZack Rusin typedef struct { 5898ce75f8aSSinclair Yeh uint32 cid; 5908ce75f8aSSinclair Yeh 591ebc9ac7cSZack Rusin uint8 primitiveType; 5928ce75f8aSSinclair Yeh 593ebc9ac7cSZack Rusin uint32 indexBufferSid; 594ebc9ac7cSZack Rusin uint32 indexBufferOffset; 5958ce75f8aSSinclair Yeh 596ebc9ac7cSZack Rusin uint8 indexBufferStride; 5978ce75f8aSSinclair Yeh 598ebc9ac7cSZack Rusin int32 baseVertexLocation; 599ebc9ac7cSZack Rusin 600ebc9ac7cSZack Rusin uint32 primitiveCount; 6018ce75f8aSSinclair Yeh uint32 pad0; 6028ce75f8aSSinclair Yeh uint16 pad1; 603ebc9ac7cSZack Rusin } SVGA3dCmdDrawIndexed; 604ebc9ac7cSZack Rusin #pragma pack(pop) 6058ce75f8aSSinclair Yeh 606ebc9ac7cSZack Rusin #pragma pack(push, 1) 607ebc9ac7cSZack Rusin typedef struct { 6088ce75f8aSSinclair Yeh uint16 streamOffset; 6098ce75f8aSSinclair Yeh uint8 stream; 610ebc9ac7cSZack Rusin uint8 type; 611ebc9ac7cSZack Rusin uint8 method; 612ebc9ac7cSZack Rusin uint8 usage; 6138ce75f8aSSinclair Yeh uint8 usageIndex; 6148ce75f8aSSinclair Yeh uint8 padding; 6158ce75f8aSSinclair Yeh 616ebc9ac7cSZack Rusin } SVGA3dVertexElement; 617ebc9ac7cSZack Rusin #pragma pack(pop) 6188ce75f8aSSinclair Yeh 619dc75e733SDeepak Rawat #define SVGA3D_VERTEX_ELEMENT_RESPECT_STREAM (1 << 7) 620dc75e733SDeepak Rawat 621ebc9ac7cSZack Rusin #pragma pack(push, 1) 622ebc9ac7cSZack Rusin typedef struct { 6238ce75f8aSSinclair Yeh uint32 cid; 6248ce75f8aSSinclair Yeh 6258ce75f8aSSinclair Yeh uint32 numElements; 6268ce75f8aSSinclair Yeh 627ebc9ac7cSZack Rusin } SVGA3dCmdSetVertexDecls; 628ebc9ac7cSZack Rusin #pragma pack(pop) 6298ce75f8aSSinclair Yeh 630ebc9ac7cSZack Rusin #pragma pack(push, 1) 631ebc9ac7cSZack Rusin typedef struct { 6328ce75f8aSSinclair Yeh uint32 sid; 6338ce75f8aSSinclair Yeh uint32 stride; 6348ce75f8aSSinclair Yeh uint32 offset; 635ebc9ac7cSZack Rusin } SVGA3dVertexStream; 636ebc9ac7cSZack Rusin #pragma pack(pop) 6378ce75f8aSSinclair Yeh 638ebc9ac7cSZack Rusin #pragma pack(push, 1) 639ebc9ac7cSZack Rusin typedef struct { 6408ce75f8aSSinclair Yeh uint32 cid; 6418ce75f8aSSinclair Yeh 6428ce75f8aSSinclair Yeh uint32 numStreams; 6438ce75f8aSSinclair Yeh 644ebc9ac7cSZack Rusin } SVGA3dCmdSetVertexStreams; 645ebc9ac7cSZack Rusin #pragma pack(pop) 646ebc9ac7cSZack Rusin 647ebc9ac7cSZack Rusin #pragma pack(push, 1) 648ebc9ac7cSZack Rusin typedef struct { 6498ce75f8aSSinclair Yeh uint32 cid; 6508ce75f8aSSinclair Yeh uint32 numDivisors; 651ebc9ac7cSZack Rusin } SVGA3dCmdSetVertexDivisors; 652ebc9ac7cSZack Rusin #pragma pack(pop) 6538ce75f8aSSinclair Yeh 654ebc9ac7cSZack Rusin #pragma pack(push, 1) 655ebc9ac7cSZack Rusin typedef struct { 6568ce75f8aSSinclair Yeh uint32 stage; 6578ce75f8aSSinclair Yeh SVGA3dTextureStateName name; 6588ce75f8aSSinclair Yeh union { 6598ce75f8aSSinclair Yeh uint32 value; 6608ce75f8aSSinclair Yeh float floatValue; 6618ce75f8aSSinclair Yeh }; 662ebc9ac7cSZack Rusin } SVGA3dTextureState; 663ebc9ac7cSZack Rusin #pragma pack(pop) 6648ce75f8aSSinclair Yeh 665ebc9ac7cSZack Rusin #pragma pack(push, 1) 666ebc9ac7cSZack Rusin typedef struct { 6678ce75f8aSSinclair Yeh uint32 cid; 6688ce75f8aSSinclair Yeh 669ebc9ac7cSZack Rusin } SVGA3dCmdSetTextureState; 670ebc9ac7cSZack Rusin #pragma pack(pop) 671ebc9ac7cSZack Rusin 672ebc9ac7cSZack Rusin #pragma pack(push, 1) 673ebc9ac7cSZack Rusin typedef struct { 6748ce75f8aSSinclair Yeh uint32 cid; 6758ce75f8aSSinclair Yeh SVGA3dTransformType type; 6768ce75f8aSSinclair Yeh float matrix[16]; 677ebc9ac7cSZack Rusin } SVGA3dCmdSetTransform; 678ebc9ac7cSZack Rusin #pragma pack(pop) 6798ce75f8aSSinclair Yeh 680ebc9ac7cSZack Rusin #pragma pack(push, 1) 681ebc9ac7cSZack Rusin typedef struct { 6828ce75f8aSSinclair Yeh float min; 6838ce75f8aSSinclair Yeh float max; 684ebc9ac7cSZack Rusin } SVGA3dZRange; 685ebc9ac7cSZack Rusin #pragma pack(pop) 6868ce75f8aSSinclair Yeh 687ebc9ac7cSZack Rusin #pragma pack(push, 1) 688ebc9ac7cSZack Rusin typedef struct { 6898ce75f8aSSinclair Yeh uint32 cid; 6908ce75f8aSSinclair Yeh SVGA3dZRange zRange; 691ebc9ac7cSZack Rusin } SVGA3dCmdSetZRange; 692ebc9ac7cSZack Rusin #pragma pack(pop) 6938ce75f8aSSinclair Yeh 694ebc9ac7cSZack Rusin #pragma pack(push, 1) 695ebc9ac7cSZack Rusin typedef struct { 6968ce75f8aSSinclair Yeh float diffuse[4]; 6978ce75f8aSSinclair Yeh float ambient[4]; 6988ce75f8aSSinclair Yeh float specular[4]; 6998ce75f8aSSinclair Yeh float emissive[4]; 7008ce75f8aSSinclair Yeh float shininess; 701ebc9ac7cSZack Rusin } SVGA3dMaterial; 702ebc9ac7cSZack Rusin #pragma pack(pop) 7038ce75f8aSSinclair Yeh 704ebc9ac7cSZack Rusin #pragma pack(push, 1) 705ebc9ac7cSZack Rusin typedef struct { 7068ce75f8aSSinclair Yeh uint32 cid; 7078ce75f8aSSinclair Yeh SVGA3dFace face; 7088ce75f8aSSinclair Yeh SVGA3dMaterial material; 709ebc9ac7cSZack Rusin } SVGA3dCmdSetMaterial; 710ebc9ac7cSZack Rusin #pragma pack(pop) 7118ce75f8aSSinclair Yeh 712ebc9ac7cSZack Rusin #pragma pack(push, 1) 713ebc9ac7cSZack Rusin typedef struct { 7148ce75f8aSSinclair Yeh uint32 cid; 7158ce75f8aSSinclair Yeh uint32 index; 7168ce75f8aSSinclair Yeh SVGA3dLightData data; 717ebc9ac7cSZack Rusin } SVGA3dCmdSetLightData; 718ebc9ac7cSZack Rusin #pragma pack(pop) 7198ce75f8aSSinclair Yeh 720ebc9ac7cSZack Rusin #pragma pack(push, 1) 721ebc9ac7cSZack Rusin typedef struct { 7228ce75f8aSSinclair Yeh uint32 cid; 7238ce75f8aSSinclair Yeh uint32 index; 7248ce75f8aSSinclair Yeh uint32 enabled; 725ebc9ac7cSZack Rusin } SVGA3dCmdSetLightEnabled; 726ebc9ac7cSZack Rusin #pragma pack(pop) 7278ce75f8aSSinclair Yeh 728ebc9ac7cSZack Rusin #pragma pack(push, 1) 729ebc9ac7cSZack Rusin typedef struct { 7308ce75f8aSSinclair Yeh uint32 cid; 7318ce75f8aSSinclair Yeh SVGA3dRect rect; 732ebc9ac7cSZack Rusin } SVGA3dCmdSetViewport; 733ebc9ac7cSZack Rusin #pragma pack(pop) 7348ce75f8aSSinclair Yeh 735ebc9ac7cSZack Rusin #pragma pack(push, 1) 736ebc9ac7cSZack Rusin typedef struct { 7378ce75f8aSSinclair Yeh uint32 cid; 7388ce75f8aSSinclair Yeh SVGA3dRect rect; 739ebc9ac7cSZack Rusin } SVGA3dCmdSetScissorRect; 740ebc9ac7cSZack Rusin #pragma pack(pop) 7418ce75f8aSSinclair Yeh 742ebc9ac7cSZack Rusin #pragma pack(push, 1) 743ebc9ac7cSZack Rusin typedef struct { 7448ce75f8aSSinclair Yeh uint32 cid; 7458ce75f8aSSinclair Yeh uint32 index; 7468ce75f8aSSinclair Yeh float plane[4]; 747ebc9ac7cSZack Rusin } SVGA3dCmdSetClipPlane; 748ebc9ac7cSZack Rusin #pragma pack(pop) 7498ce75f8aSSinclair Yeh 750ebc9ac7cSZack Rusin #pragma pack(push, 1) 751ebc9ac7cSZack Rusin typedef struct { 7528ce75f8aSSinclair Yeh uint32 cid; 7538ce75f8aSSinclair Yeh uint32 shid; 7548ce75f8aSSinclair Yeh SVGA3dShaderType type; 7558ce75f8aSSinclair Yeh 756ebc9ac7cSZack Rusin } SVGA3dCmdDefineShader; 757ebc9ac7cSZack Rusin #pragma pack(pop) 758ebc9ac7cSZack Rusin 759ebc9ac7cSZack Rusin #pragma pack(push, 1) 760ebc9ac7cSZack Rusin typedef struct { 7618ce75f8aSSinclair Yeh uint32 cid; 7628ce75f8aSSinclair Yeh uint32 shid; 7638ce75f8aSSinclair Yeh SVGA3dShaderType type; 764ebc9ac7cSZack Rusin } SVGA3dCmdDestroyShader; 765ebc9ac7cSZack Rusin #pragma pack(pop) 7668ce75f8aSSinclair Yeh 767ebc9ac7cSZack Rusin #pragma pack(push, 1) 768ebc9ac7cSZack Rusin typedef struct { 7698ce75f8aSSinclair Yeh uint32 cid; 770ebc9ac7cSZack Rusin uint32 reg; 7718ce75f8aSSinclair Yeh SVGA3dShaderType type; 7728ce75f8aSSinclair Yeh SVGA3dShaderConstType ctype; 7738ce75f8aSSinclair Yeh uint32 values[4]; 7748ce75f8aSSinclair Yeh 775ebc9ac7cSZack Rusin } SVGA3dCmdSetShaderConst; 776ebc9ac7cSZack Rusin #pragma pack(pop) 7778ce75f8aSSinclair Yeh 778ebc9ac7cSZack Rusin #pragma pack(push, 1) 779ebc9ac7cSZack Rusin typedef struct { 7808ce75f8aSSinclair Yeh uint32 cid; 7818ce75f8aSSinclair Yeh SVGA3dShaderType type; 7828ce75f8aSSinclair Yeh uint32 shid; 783ebc9ac7cSZack Rusin } SVGA3dCmdSetShader; 784ebc9ac7cSZack Rusin #pragma pack(pop) 7858ce75f8aSSinclair Yeh 786ebc9ac7cSZack Rusin #pragma pack(push, 1) 787ebc9ac7cSZack Rusin typedef struct { 7888ce75f8aSSinclair Yeh uint32 cid; 7898ce75f8aSSinclair Yeh SVGA3dQueryType type; 790ebc9ac7cSZack Rusin } SVGA3dCmdBeginQuery; 791ebc9ac7cSZack Rusin #pragma pack(pop) 7928ce75f8aSSinclair Yeh 793ebc9ac7cSZack Rusin #pragma pack(push, 1) 794ebc9ac7cSZack Rusin typedef struct { 7958ce75f8aSSinclair Yeh uint32 cid; 7968ce75f8aSSinclair Yeh SVGA3dQueryType type; 7978ce75f8aSSinclair Yeh SVGAGuestPtr guestResult; 798ebc9ac7cSZack Rusin } SVGA3dCmdEndQuery; 799ebc9ac7cSZack Rusin #pragma pack(pop) 8008ce75f8aSSinclair Yeh 801ebc9ac7cSZack Rusin #pragma pack(push, 1) 802ebc9ac7cSZack Rusin typedef struct { 803ebc9ac7cSZack Rusin uint32 cid; 804ebc9ac7cSZack Rusin SVGA3dQueryType type; 805ebc9ac7cSZack Rusin SVGAGuestPtr guestResult; 806ebc9ac7cSZack Rusin } SVGA3dCmdWaitForQuery; 807ebc9ac7cSZack Rusin #pragma pack(pop) 808ebc9ac7cSZack Rusin 809ebc9ac7cSZack Rusin #pragma pack(push, 1) 810ebc9ac7cSZack Rusin typedef struct { 811ebc9ac7cSZack Rusin uint32 totalSize; 812ebc9ac7cSZack Rusin SVGA3dQueryState state; 813ebc9ac7cSZack Rusin union { 8148ce75f8aSSinclair Yeh uint32 result32; 815ebc9ac7cSZack Rusin uint32 queryCookie; 8168ce75f8aSSinclair Yeh }; 817ebc9ac7cSZack Rusin } SVGA3dQueryResult; 818ebc9ac7cSZack Rusin #pragma pack(pop) 8198ce75f8aSSinclair Yeh 820ebc9ac7cSZack Rusin #pragma pack(push, 1) 821ebc9ac7cSZack Rusin typedef struct { 8228ce75f8aSSinclair Yeh SVGA3dSurfaceImageId srcImage; 8238ce75f8aSSinclair Yeh SVGASignedRect srcRect; 824ebc9ac7cSZack Rusin uint32 destScreenId; 8258ce75f8aSSinclair Yeh SVGASignedRect destRect; 8268ce75f8aSSinclair Yeh 827ebc9ac7cSZack Rusin } SVGA3dCmdBlitSurfaceToScreen; 828ebc9ac7cSZack Rusin #pragma pack(pop) 829ebc9ac7cSZack Rusin 830ebc9ac7cSZack Rusin #pragma pack(push, 1) 831ebc9ac7cSZack Rusin typedef struct { 8328ce75f8aSSinclair Yeh uint32 sid; 8338ce75f8aSSinclair Yeh SVGA3dTextureFilter filter; 834ebc9ac7cSZack Rusin } SVGA3dCmdGenerateMipmaps; 835ebc9ac7cSZack Rusin #pragma pack(pop) 8368ce75f8aSSinclair Yeh 837ebc9ac7cSZack Rusin #pragma pack(push, 1) 838ebc9ac7cSZack Rusin typedef struct { 8398ce75f8aSSinclair Yeh uint32 sid; 840ebc9ac7cSZack Rusin } SVGA3dCmdActivateSurface; 841ebc9ac7cSZack Rusin #pragma pack(pop) 8428ce75f8aSSinclair Yeh 843ebc9ac7cSZack Rusin #pragma pack(push, 1) 844ebc9ac7cSZack Rusin typedef struct { 8458ce75f8aSSinclair Yeh uint32 sid; 846ebc9ac7cSZack Rusin } SVGA3dCmdDeactivateSurface; 847ebc9ac7cSZack Rusin #pragma pack(pop) 8488ce75f8aSSinclair Yeh 849ebc9ac7cSZack Rusin #pragma pack(push, 1) 850ebc9ac7cSZack Rusin typedef struct SVGA3dCmdScreenDMA { 8518ce75f8aSSinclair Yeh uint32 screenId; 8528ce75f8aSSinclair Yeh SVGAGuestImage refBuffer; 8538ce75f8aSSinclair Yeh SVGAGuestImage destBuffer; 8548ce75f8aSSinclair Yeh SVGAGuestImage changeMap; 855ebc9ac7cSZack Rusin } SVGA3dCmdScreenDMA; 856ebc9ac7cSZack Rusin #pragma pack(pop) 8578ce75f8aSSinclair Yeh 8588ce75f8aSSinclair Yeh #define SVGA3D_LOTRANSBLT_HONORALPHA (0x01) 8598ce75f8aSSinclair Yeh #define SVGA3D_LOSTRETCHBLT_MIRRORX (0x01) 8608ce75f8aSSinclair Yeh #define SVGA3D_LOSTRETCHBLT_MIRRORY (0x02) 8618ce75f8aSSinclair Yeh #define SVGA3D_LOALPHABLEND_SRCHASALPHA (0x01) 8628ce75f8aSSinclair Yeh 863ebc9ac7cSZack Rusin #pragma pack(push, 1) 864ebc9ac7cSZack Rusin typedef struct SVGA3dCmdLogicOpsBitBlt { 8658ce75f8aSSinclair Yeh SVGA3dSurfaceImageId src; 8668ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dst; 8678ce75f8aSSinclair Yeh SVGA3dLogicOp logicOp; 8680651dfabSDeepak Rawat SVGA3dLogicOpRop3 logicOpRop3; 8698ce75f8aSSinclair Yeh 870ebc9ac7cSZack Rusin } SVGA3dCmdLogicOpsBitBlt; 871ebc9ac7cSZack Rusin #pragma pack(pop) 8728ce75f8aSSinclair Yeh 873ebc9ac7cSZack Rusin #pragma pack(push, 1) 874ebc9ac7cSZack Rusin typedef struct SVGA3dCmdLogicOpsTransBlt { 8758ce75f8aSSinclair Yeh SVGA3dSurfaceImageId src; 8768ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dst; 8778ce75f8aSSinclair Yeh uint32 color; 8788ce75f8aSSinclair Yeh uint32 flags; 8798ce75f8aSSinclair Yeh SVGA3dBox srcBox; 8800651dfabSDeepak Rawat SVGA3dSignedBox dstBox; 8810651dfabSDeepak Rawat SVGA3dBox clipBox; 882ebc9ac7cSZack Rusin } SVGA3dCmdLogicOpsTransBlt; 883ebc9ac7cSZack Rusin #pragma pack(pop) 8848ce75f8aSSinclair Yeh 885ebc9ac7cSZack Rusin #pragma pack(push, 1) 886ebc9ac7cSZack Rusin typedef struct SVGA3dCmdLogicOpsStretchBlt { 8878ce75f8aSSinclair Yeh SVGA3dSurfaceImageId src; 8888ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dst; 8898ce75f8aSSinclair Yeh uint16 mode; 8908ce75f8aSSinclair Yeh uint16 flags; 8918ce75f8aSSinclair Yeh SVGA3dBox srcBox; 8920651dfabSDeepak Rawat SVGA3dSignedBox dstBox; 8930651dfabSDeepak Rawat SVGA3dBox clipBox; 894ebc9ac7cSZack Rusin } SVGA3dCmdLogicOpsStretchBlt; 895ebc9ac7cSZack Rusin #pragma pack(pop) 8968ce75f8aSSinclair Yeh 897ebc9ac7cSZack Rusin #pragma pack(push, 1) 898ebc9ac7cSZack Rusin typedef struct SVGA3dCmdLogicOpsColorFill { 8998ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dst; 9008ce75f8aSSinclair Yeh uint32 color; 9018ce75f8aSSinclair Yeh SVGA3dLogicOp logicOp; 9020651dfabSDeepak Rawat SVGA3dLogicOpRop3 logicOpRop3; 9038ce75f8aSSinclair Yeh 904ebc9ac7cSZack Rusin } SVGA3dCmdLogicOpsColorFill; 905ebc9ac7cSZack Rusin #pragma pack(pop) 9068ce75f8aSSinclair Yeh 907ebc9ac7cSZack Rusin #pragma pack(push, 1) 908ebc9ac7cSZack Rusin typedef struct SVGA3dCmdLogicOpsAlphaBlend { 9098ce75f8aSSinclair Yeh SVGA3dSurfaceImageId src; 9108ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dst; 9118ce75f8aSSinclair Yeh uint32 alphaVal; 9128ce75f8aSSinclair Yeh uint32 flags; 9138ce75f8aSSinclair Yeh SVGA3dBox srcBox; 9140651dfabSDeepak Rawat SVGA3dSignedBox dstBox; 9150651dfabSDeepak Rawat SVGA3dBox clipBox; 916ebc9ac7cSZack Rusin } SVGA3dCmdLogicOpsAlphaBlend; 917ebc9ac7cSZack Rusin #pragma pack(pop) 9188ce75f8aSSinclair Yeh 9198ce75f8aSSinclair Yeh #define SVGA3D_CLEARTYPE_INVALID_GAMMA_INDEX 0xFFFFFFFF 9208ce75f8aSSinclair Yeh 9218ce75f8aSSinclair Yeh #define SVGA3D_CLEARTYPE_GAMMA_WIDTH 512 9228ce75f8aSSinclair Yeh #define SVGA3D_CLEARTYPE_GAMMA_HEIGHT 16 9238ce75f8aSSinclair Yeh 924ebc9ac7cSZack Rusin #pragma pack(push, 1) 925ebc9ac7cSZack Rusin typedef struct SVGA3dCmdLogicOpsClearTypeBlend { 9268ce75f8aSSinclair Yeh SVGA3dSurfaceImageId tmp; 9278ce75f8aSSinclair Yeh SVGA3dSurfaceImageId dst; 9288ce75f8aSSinclair Yeh SVGA3dSurfaceImageId gammaSurf; 9298ce75f8aSSinclair Yeh SVGA3dSurfaceImageId alphaSurf; 9308ce75f8aSSinclair Yeh uint32 gamma; 9318ce75f8aSSinclair Yeh uint32 color; 9328ce75f8aSSinclair Yeh uint32 color2; 9338ce75f8aSSinclair Yeh int32 alphaOffsetX; 9348ce75f8aSSinclair Yeh int32 alphaOffsetY; 9358ce75f8aSSinclair Yeh 936ebc9ac7cSZack Rusin } SVGA3dCmdLogicOpsClearTypeBlend; 937ebc9ac7cSZack Rusin #pragma pack(pop) 9388ce75f8aSSinclair Yeh 939ebc9ac7cSZack Rusin #pragma pack(push, 1) 940ebc9ac7cSZack Rusin typedef struct { 9418ce75f8aSSinclair Yeh SVGAMobFormat ptDepth; 9428ce75f8aSSinclair Yeh uint32 sizeInBytes; 9438ce75f8aSSinclair Yeh PPN64 base; 944ebc9ac7cSZack Rusin } SVGAOTableMobEntry; 945ebc9ac7cSZack Rusin #pragma pack(pop) 9468ce75f8aSSinclair Yeh 947ebc9ac7cSZack Rusin #pragma pack(push, 1) 948ebc9ac7cSZack Rusin typedef struct { 9498ce75f8aSSinclair Yeh SVGA3dSurfaceFormat format; 950dc75e733SDeepak Rawat SVGA3dSurface1Flags surface1Flags; 9518ce75f8aSSinclair Yeh uint32 numMipLevels; 9528ce75f8aSSinclair Yeh uint32 multisampleCount; 9538ce75f8aSSinclair Yeh SVGA3dTextureFilter autogenFilter; 9548ce75f8aSSinclair Yeh SVGA3dSize size; 9558ce75f8aSSinclair Yeh SVGAMobId mobid; 9568ce75f8aSSinclair Yeh uint32 arraySize; 9578ce75f8aSSinclair Yeh uint32 mobPitch; 958dc75e733SDeepak Rawat SVGA3dSurface2Flags surface2Flags; 959dc75e733SDeepak Rawat uint8 multisamplePattern; 960dc75e733SDeepak Rawat uint8 qualityLevel; 9610651dfabSDeepak Rawat uint16 bufferByteStride; 9620651dfabSDeepak Rawat float minLOD; 9630651dfabSDeepak Rawat uint32 pad0[2]; 964ebc9ac7cSZack Rusin } SVGAOTableSurfaceEntry; 965ebc9ac7cSZack Rusin #pragma pack(pop) 9668ce75f8aSSinclair Yeh 967ebc9ac7cSZack Rusin #pragma pack(push, 1) 968ebc9ac7cSZack Rusin typedef struct { 9698ce75f8aSSinclair Yeh uint32 cid; 9708ce75f8aSSinclair Yeh SVGAMobId mobid; 971ebc9ac7cSZack Rusin } SVGAOTableContextEntry; 972ebc9ac7cSZack Rusin #pragma pack(pop) 9738ce75f8aSSinclair Yeh 974ebc9ac7cSZack Rusin #pragma pack(push, 1) 975ebc9ac7cSZack Rusin typedef struct { 9768ce75f8aSSinclair Yeh SVGA3dShaderType type; 9778ce75f8aSSinclair Yeh uint32 sizeInBytes; 9788ce75f8aSSinclair Yeh uint32 offsetInBytes; 9798ce75f8aSSinclair Yeh SVGAMobId mobid; 980ebc9ac7cSZack Rusin } SVGAOTableShaderEntry; 981ebc9ac7cSZack Rusin #pragma pack(pop) 9828ce75f8aSSinclair Yeh 9838ce75f8aSSinclair Yeh #define SVGA_STFLAG_PRIMARY (1 << 0) 984ebc9ac7cSZack Rusin #define SVGA_STFLAG_RESERVED (1 << 1) 9858ce75f8aSSinclair Yeh typedef uint32 SVGAScreenTargetFlags; 9868ce75f8aSSinclair Yeh 987ebc9ac7cSZack Rusin #pragma pack(push, 1) 988ebc9ac7cSZack Rusin typedef struct { 9898ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 9908ce75f8aSSinclair Yeh uint32 width; 9918ce75f8aSSinclair Yeh uint32 height; 9928ce75f8aSSinclair Yeh int32 xRoot; 9938ce75f8aSSinclair Yeh int32 yRoot; 9948ce75f8aSSinclair Yeh SVGAScreenTargetFlags flags; 9958ce75f8aSSinclair Yeh uint32 dpi; 9968ce75f8aSSinclair Yeh uint32 pad[7]; 997ebc9ac7cSZack Rusin } SVGAOTableScreenTargetEntry; 998ebc9ac7cSZack Rusin #pragma pack(pop) 9998ce75f8aSSinclair Yeh 1000ebc9ac7cSZack Rusin #pragma pack(push, 1) 1001ebc9ac7cSZack Rusin typedef struct { 10028ce75f8aSSinclair Yeh float value[4]; 1003ebc9ac7cSZack Rusin } SVGA3dShaderConstFloat; 1004ebc9ac7cSZack Rusin #pragma pack(pop) 10058ce75f8aSSinclair Yeh 1006ebc9ac7cSZack Rusin #pragma pack(push, 1) 1007ebc9ac7cSZack Rusin typedef struct { 10088ce75f8aSSinclair Yeh int32 value[4]; 1009ebc9ac7cSZack Rusin } SVGA3dShaderConstInt; 1010ebc9ac7cSZack Rusin #pragma pack(pop) 10118ce75f8aSSinclair Yeh 1012ebc9ac7cSZack Rusin #pragma pack(push, 1) 1013ebc9ac7cSZack Rusin typedef struct { 10148ce75f8aSSinclair Yeh uint32 value; 1015ebc9ac7cSZack Rusin } SVGA3dShaderConstBool; 1016ebc9ac7cSZack Rusin #pragma pack(pop) 10178ce75f8aSSinclair Yeh 1018ebc9ac7cSZack Rusin #pragma pack(push, 1) 1019ebc9ac7cSZack Rusin typedef struct { 10208ce75f8aSSinclair Yeh uint16 streamOffset; 10218ce75f8aSSinclair Yeh uint8 stream; 10228ce75f8aSSinclair Yeh uint8 type; 10238ce75f8aSSinclair Yeh uint8 methodUsage; 10248ce75f8aSSinclair Yeh uint8 usageIndex; 1025ebc9ac7cSZack Rusin } SVGAGBVertexElement; 1026ebc9ac7cSZack Rusin #pragma pack(pop) 10278ce75f8aSSinclair Yeh 1028ebc9ac7cSZack Rusin #pragma pack(push, 1) 1029ebc9ac7cSZack Rusin typedef struct { 10308ce75f8aSSinclair Yeh uint32 sid; 10318ce75f8aSSinclair Yeh uint16 stride; 10328ce75f8aSSinclair Yeh uint32 offset; 1033ebc9ac7cSZack Rusin } SVGAGBVertexStream; 1034ebc9ac7cSZack Rusin #pragma pack(pop) 1035ebc9ac7cSZack Rusin #pragma pack(push, 1) 1036ebc9ac7cSZack Rusin typedef struct { 10378ce75f8aSSinclair Yeh SVGA3dRect viewport; 10388ce75f8aSSinclair Yeh SVGA3dRect scissorRect; 10398ce75f8aSSinclair Yeh SVGA3dZRange zRange; 10408ce75f8aSSinclair Yeh 10418ce75f8aSSinclair Yeh SVGA3dSurfaceImageId renderTargets[SVGA3D_RT_MAX]; 10428ce75f8aSSinclair Yeh SVGAGBVertexElement decl1[4]; 10438ce75f8aSSinclair Yeh 10448ce75f8aSSinclair Yeh uint32 renderStates[SVGA3D_RS_MAX]; 10458ce75f8aSSinclair Yeh SVGAGBVertexElement decl2[18]; 10468ce75f8aSSinclair Yeh uint32 pad0[2]; 10478ce75f8aSSinclair Yeh 10488ce75f8aSSinclair Yeh struct { 10498ce75f8aSSinclair Yeh SVGA3dFace face; 10508ce75f8aSSinclair Yeh SVGA3dMaterial material; 10518ce75f8aSSinclair Yeh } material; 10528ce75f8aSSinclair Yeh 1053ebc9ac7cSZack Rusin float clipPlanes[SVGA3D_MAX_CLIP_PLANES][4]; 10548ce75f8aSSinclair Yeh float matrices[SVGA3D_TRANSFORM_MAX][16]; 10558ce75f8aSSinclair Yeh 10568ce75f8aSSinclair Yeh SVGA3dBool lightEnabled[SVGA3D_NUM_LIGHTS]; 10578ce75f8aSSinclair Yeh SVGA3dLightData lightData[SVGA3D_NUM_LIGHTS]; 10588ce75f8aSSinclair Yeh 10598ce75f8aSSinclair Yeh uint32 shaders[SVGA3D_NUM_SHADERTYPE_PREDX]; 10608ce75f8aSSinclair Yeh SVGAGBVertexElement decl3[10]; 10618ce75f8aSSinclair Yeh uint32 pad1[3]; 10628ce75f8aSSinclair Yeh 10638ce75f8aSSinclair Yeh uint32 occQueryActive; 10648ce75f8aSSinclair Yeh uint32 occQueryValue; 10658ce75f8aSSinclair Yeh 10668ce75f8aSSinclair Yeh SVGA3dShaderConstInt pShaderIValues[SVGA3D_CONSTINTREG_MAX]; 10678ce75f8aSSinclair Yeh SVGA3dShaderConstInt vShaderIValues[SVGA3D_CONSTINTREG_MAX]; 10688ce75f8aSSinclair Yeh uint16 pShaderBValues; 10698ce75f8aSSinclair Yeh uint16 vShaderBValues; 10708ce75f8aSSinclair Yeh 10718ce75f8aSSinclair Yeh SVGAGBVertexStream streams[SVGA3D_MAX_VERTEX_ARRAYS]; 10728ce75f8aSSinclair Yeh SVGA3dVertexDivisor divisors[SVGA3D_MAX_VERTEX_ARRAYS]; 10738ce75f8aSSinclair Yeh uint32 numVertexDecls; 10748ce75f8aSSinclair Yeh uint32 numVertexStreams; 10758ce75f8aSSinclair Yeh uint32 numVertexDivisors; 10768ce75f8aSSinclair Yeh uint32 pad2[30]; 10778ce75f8aSSinclair Yeh 10788ce75f8aSSinclair Yeh uint32 tsColorKey[SVGA3D_NUM_TEXTURE_UNITS]; 10798ce75f8aSSinclair Yeh uint32 textureStages[SVGA3D_NUM_TEXTURE_UNITS][SVGA3D_TS_CONSTANT + 1]; 10808ce75f8aSSinclair Yeh uint32 tsColorKeyEnable[SVGA3D_NUM_TEXTURE_UNITS]; 10818ce75f8aSSinclair Yeh 10828ce75f8aSSinclair Yeh SVGA3dShaderConstFloat pShaderFValues[SVGA3D_CONSTREG_MAX]; 10838ce75f8aSSinclair Yeh SVGA3dShaderConstFloat vShaderFValues[SVGA3D_CONSTREG_MAX]; 1084ebc9ac7cSZack Rusin } SVGAGBContextData; 1085ebc9ac7cSZack Rusin #pragma pack(pop) 10868ce75f8aSSinclair Yeh 1087ebc9ac7cSZack Rusin #pragma pack(push, 1) 1088ebc9ac7cSZack Rusin typedef struct { 10898ce75f8aSSinclair Yeh SVGAOTableType type; 10900651dfabSDeepak Rawat PPN32 baseAddress; 10918ce75f8aSSinclair Yeh uint32 sizeInBytes; 10928ce75f8aSSinclair Yeh uint32 validSizeInBytes; 10938ce75f8aSSinclair Yeh SVGAMobFormat ptDepth; 1094ebc9ac7cSZack Rusin } SVGA3dCmdSetOTableBase; 1095ebc9ac7cSZack Rusin #pragma pack(pop) 10968ce75f8aSSinclair Yeh 1097ebc9ac7cSZack Rusin #pragma pack(push, 1) 1098ebc9ac7cSZack Rusin typedef struct { 10998ce75f8aSSinclair Yeh SVGAOTableType type; 11008ce75f8aSSinclair Yeh PPN64 baseAddress; 11018ce75f8aSSinclair Yeh uint32 sizeInBytes; 11028ce75f8aSSinclair Yeh uint32 validSizeInBytes; 11038ce75f8aSSinclair Yeh SVGAMobFormat ptDepth; 1104ebc9ac7cSZack Rusin } SVGA3dCmdSetOTableBase64; 1105ebc9ac7cSZack Rusin #pragma pack(pop) 11068ce75f8aSSinclair Yeh 1107ebc9ac7cSZack Rusin #pragma pack(push, 1) 1108ebc9ac7cSZack Rusin typedef struct { 1109dc75e733SDeepak Rawat SVGAOTableType type; 1110dc75e733SDeepak Rawat PPN64 baseAddress; 1111dc75e733SDeepak Rawat uint32 sizeInBytes; 1112dc75e733SDeepak Rawat uint32 validSizeInBytes; 1113dc75e733SDeepak Rawat SVGAMobFormat ptDepth; 1114ebc9ac7cSZack Rusin } SVGA3dCmdGrowOTable; 1115ebc9ac7cSZack Rusin #pragma pack(pop) 1116dc75e733SDeepak Rawat 1117ebc9ac7cSZack Rusin #pragma pack(push, 1) 1118ebc9ac7cSZack Rusin typedef struct { 11198ce75f8aSSinclair Yeh SVGAOTableType type; 1120ebc9ac7cSZack Rusin } SVGA3dCmdReadbackOTable; 1121ebc9ac7cSZack Rusin #pragma pack(pop) 11228ce75f8aSSinclair Yeh 1123ebc9ac7cSZack Rusin #pragma pack(push, 1) 1124ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBMob { 11258ce75f8aSSinclair Yeh SVGAMobId mobid; 11268ce75f8aSSinclair Yeh SVGAMobFormat ptDepth; 11270651dfabSDeepak Rawat PPN32 base; 11288ce75f8aSSinclair Yeh uint32 sizeInBytes; 1129ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBMob; 1130ebc9ac7cSZack Rusin #pragma pack(pop) 11318ce75f8aSSinclair Yeh 1132ebc9ac7cSZack Rusin #pragma pack(push, 1) 1133ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDestroyGBMob { 11348ce75f8aSSinclair Yeh SVGAMobId mobid; 1135ebc9ac7cSZack Rusin } SVGA3dCmdDestroyGBMob; 1136ebc9ac7cSZack Rusin #pragma pack(pop) 11378ce75f8aSSinclair Yeh 1138ebc9ac7cSZack Rusin #pragma pack(push, 1) 1139ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBMob64 { 11408ce75f8aSSinclair Yeh SVGAMobId mobid; 11418ce75f8aSSinclair Yeh SVGAMobFormat ptDepth; 11428ce75f8aSSinclair Yeh PPN64 base; 11438ce75f8aSSinclair Yeh uint32 sizeInBytes; 1144ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBMob64; 1145ebc9ac7cSZack Rusin #pragma pack(pop) 11468ce75f8aSSinclair Yeh 1147ebc9ac7cSZack Rusin #pragma pack(push, 1) 1148ebc9ac7cSZack Rusin typedef struct SVGA3dCmdRedefineGBMob64 { 11498ce75f8aSSinclair Yeh SVGAMobId mobid; 11508ce75f8aSSinclair Yeh SVGAMobFormat ptDepth; 11518ce75f8aSSinclair Yeh PPN64 base; 11528ce75f8aSSinclair Yeh uint32 sizeInBytes; 1153ebc9ac7cSZack Rusin } SVGA3dCmdRedefineGBMob64; 1154ebc9ac7cSZack Rusin #pragma pack(pop) 11558ce75f8aSSinclair Yeh 1156ebc9ac7cSZack Rusin #pragma pack(push, 1) 1157ebc9ac7cSZack Rusin typedef struct SVGA3dCmdUpdateGBMobMapping { 11588ce75f8aSSinclair Yeh SVGAMobId mobid; 1159ebc9ac7cSZack Rusin } SVGA3dCmdUpdateGBMobMapping; 1160ebc9ac7cSZack Rusin #pragma pack(pop) 11618ce75f8aSSinclair Yeh 1162ebc9ac7cSZack Rusin #pragma pack(push, 1) 1163ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBSurface { 11648ce75f8aSSinclair Yeh uint32 sid; 1165dc75e733SDeepak Rawat SVGA3dSurface1Flags surfaceFlags; 11668ce75f8aSSinclair Yeh SVGA3dSurfaceFormat format; 11678ce75f8aSSinclair Yeh uint32 numMipLevels; 11688ce75f8aSSinclair Yeh uint32 multisampleCount; 11698ce75f8aSSinclair Yeh SVGA3dTextureFilter autogenFilter; 11708ce75f8aSSinclair Yeh SVGA3dSize size; 1171ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBSurface; 1172ebc9ac7cSZack Rusin #pragma pack(pop) 11738ce75f8aSSinclair Yeh 1174ebc9ac7cSZack Rusin #pragma pack(push, 1) 1175ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBSurface_v2 { 1176dc75e733SDeepak Rawat uint32 sid; 1177dc75e733SDeepak Rawat SVGA3dSurface1Flags surfaceFlags; 1178dc75e733SDeepak Rawat SVGA3dSurfaceFormat format; 1179dc75e733SDeepak Rawat uint32 numMipLevels; 1180dc75e733SDeepak Rawat uint32 multisampleCount; 1181dc75e733SDeepak Rawat SVGA3dTextureFilter autogenFilter; 1182dc75e733SDeepak Rawat SVGA3dSize size; 1183dc75e733SDeepak Rawat uint32 arraySize; 1184dc75e733SDeepak Rawat uint32 pad; 1185ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBSurface_v2; 1186ebc9ac7cSZack Rusin #pragma pack(pop) 1187dc75e733SDeepak Rawat 1188ebc9ac7cSZack Rusin #pragma pack(push, 1) 1189ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBSurface_v3 { 1190dc75e733SDeepak Rawat uint32 sid; 1191dc75e733SDeepak Rawat SVGA3dSurfaceAllFlags surfaceFlags; 1192dc75e733SDeepak Rawat SVGA3dSurfaceFormat format; 1193dc75e733SDeepak Rawat uint32 numMipLevels; 1194dc75e733SDeepak Rawat uint32 multisampleCount; 1195dc75e733SDeepak Rawat SVGA3dMSPattern multisamplePattern; 1196dc75e733SDeepak Rawat SVGA3dMSQualityLevel qualityLevel; 1197dc75e733SDeepak Rawat SVGA3dTextureFilter autogenFilter; 1198dc75e733SDeepak Rawat SVGA3dSize size; 1199dc75e733SDeepak Rawat uint32 arraySize; 1200ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBSurface_v3; 1201ebc9ac7cSZack Rusin #pragma pack(pop) 1202dc75e733SDeepak Rawat 1203ebc9ac7cSZack Rusin #pragma pack(push, 1) 1204ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBSurface_v4 { 12050651dfabSDeepak Rawat uint32 sid; 12060651dfabSDeepak Rawat SVGA3dSurfaceAllFlags surfaceFlags; 12070651dfabSDeepak Rawat SVGA3dSurfaceFormat format; 12080651dfabSDeepak Rawat uint32 numMipLevels; 12090651dfabSDeepak Rawat uint32 multisampleCount; 12100651dfabSDeepak Rawat SVGA3dMSPattern multisamplePattern; 12110651dfabSDeepak Rawat SVGA3dMSQualityLevel qualityLevel; 12120651dfabSDeepak Rawat SVGA3dTextureFilter autogenFilter; 12130651dfabSDeepak Rawat SVGA3dSize size; 12140651dfabSDeepak Rawat uint32 arraySize; 12150651dfabSDeepak Rawat uint32 bufferByteStride; 1216ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBSurface_v4; 1217ebc9ac7cSZack Rusin #pragma pack(pop) 12180651dfabSDeepak Rawat 1219ebc9ac7cSZack Rusin #pragma pack(push, 1) 1220ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDestroyGBSurface { 12218ce75f8aSSinclair Yeh uint32 sid; 1222ebc9ac7cSZack Rusin } SVGA3dCmdDestroyGBSurface; 1223ebc9ac7cSZack Rusin #pragma pack(pop) 12248ce75f8aSSinclair Yeh 1225ebc9ac7cSZack Rusin #pragma pack(push, 1) 1226ebc9ac7cSZack Rusin typedef struct SVGA3dCmdBindGBSurface { 12278ce75f8aSSinclair Yeh uint32 sid; 12288ce75f8aSSinclair Yeh SVGAMobId mobid; 1229ebc9ac7cSZack Rusin } SVGA3dCmdBindGBSurface; 1230ebc9ac7cSZack Rusin #pragma pack(pop) 12318ce75f8aSSinclair Yeh 1232ebc9ac7cSZack Rusin #pragma pack(push, 1) 1233ebc9ac7cSZack Rusin typedef struct SVGA3dCmdBindGBSurfaceWithPitch { 12348ce75f8aSSinclair Yeh uint32 sid; 12358ce75f8aSSinclair Yeh SVGAMobId mobid; 12368ce75f8aSSinclair Yeh uint32 baseLevelPitch; 1237ebc9ac7cSZack Rusin } SVGA3dCmdBindGBSurfaceWithPitch; 1238ebc9ac7cSZack Rusin #pragma pack(pop) 12398ce75f8aSSinclair Yeh 12408ce75f8aSSinclair Yeh #define SVGA3D_COND_BIND_GB_SURFACE_FLAG_READBACK (1 << 0) 12418ce75f8aSSinclair Yeh #define SVGA3D_COND_BIND_GB_SURFACE_FLAG_UPDATE (1 << 1) 12428ce75f8aSSinclair Yeh 1243ebc9ac7cSZack Rusin #pragma pack(push, 1) 1244ebc9ac7cSZack Rusin typedef struct SVGA3dCmdCondBindGBSurface { 12458ce75f8aSSinclair Yeh uint32 sid; 12468ce75f8aSSinclair Yeh SVGAMobId testMobid; 12478ce75f8aSSinclair Yeh SVGAMobId mobid; 12488ce75f8aSSinclair Yeh uint32 flags; 1249ebc9ac7cSZack Rusin } SVGA3dCmdCondBindGBSurface; 1250ebc9ac7cSZack Rusin #pragma pack(pop) 12518ce75f8aSSinclair Yeh 1252ebc9ac7cSZack Rusin #pragma pack(push, 1) 1253ebc9ac7cSZack Rusin typedef struct SVGA3dCmdUpdateGBImage { 12548ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 12558ce75f8aSSinclair Yeh SVGA3dBox box; 1256ebc9ac7cSZack Rusin } SVGA3dCmdUpdateGBImage; 1257ebc9ac7cSZack Rusin #pragma pack(pop) 12588ce75f8aSSinclair Yeh 1259ebc9ac7cSZack Rusin #pragma pack(push, 1) 1260ebc9ac7cSZack Rusin typedef struct SVGA3dCmdUpdateGBSurface { 12618ce75f8aSSinclair Yeh uint32 sid; 1262ebc9ac7cSZack Rusin } SVGA3dCmdUpdateGBSurface; 1263ebc9ac7cSZack Rusin #pragma pack(pop) 12648ce75f8aSSinclair Yeh 1265ebc9ac7cSZack Rusin #pragma pack(push, 1) 1266ebc9ac7cSZack Rusin typedef struct SVGA3dCmdReadbackGBImage { 12678ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 1268ebc9ac7cSZack Rusin } SVGA3dCmdReadbackGBImage; 1269ebc9ac7cSZack Rusin #pragma pack(pop) 12708ce75f8aSSinclair Yeh 1271ebc9ac7cSZack Rusin #pragma pack(push, 1) 1272ebc9ac7cSZack Rusin typedef struct SVGA3dCmdReadbackGBSurface { 12738ce75f8aSSinclair Yeh uint32 sid; 1274ebc9ac7cSZack Rusin } SVGA3dCmdReadbackGBSurface; 1275ebc9ac7cSZack Rusin #pragma pack(pop) 12768ce75f8aSSinclair Yeh 1277ebc9ac7cSZack Rusin #pragma pack(push, 1) 1278ebc9ac7cSZack Rusin typedef struct SVGA3dCmdReadbackGBImagePartial { 12798ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 12808ce75f8aSSinclair Yeh SVGA3dBox box; 12818ce75f8aSSinclair Yeh uint32 invertBox; 1282ebc9ac7cSZack Rusin } SVGA3dCmdReadbackGBImagePartial; 1283ebc9ac7cSZack Rusin #pragma pack(pop) 12848ce75f8aSSinclair Yeh 1285ebc9ac7cSZack Rusin #pragma pack(push, 1) 1286ebc9ac7cSZack Rusin typedef struct SVGA3dCmdInvalidateGBImage { 12878ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 1288ebc9ac7cSZack Rusin } SVGA3dCmdInvalidateGBImage; 1289ebc9ac7cSZack Rusin #pragma pack(pop) 12908ce75f8aSSinclair Yeh 1291ebc9ac7cSZack Rusin #pragma pack(push, 1) 1292ebc9ac7cSZack Rusin typedef struct SVGA3dCmdInvalidateGBSurface { 12938ce75f8aSSinclair Yeh uint32 sid; 1294ebc9ac7cSZack Rusin } SVGA3dCmdInvalidateGBSurface; 1295ebc9ac7cSZack Rusin #pragma pack(pop) 12968ce75f8aSSinclair Yeh 1297ebc9ac7cSZack Rusin #pragma pack(push, 1) 1298ebc9ac7cSZack Rusin typedef struct SVGA3dCmdInvalidateGBImagePartial { 12998ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 13008ce75f8aSSinclair Yeh SVGA3dBox box; 13018ce75f8aSSinclair Yeh uint32 invertBox; 1302ebc9ac7cSZack Rusin } SVGA3dCmdInvalidateGBImagePartial; 1303ebc9ac7cSZack Rusin #pragma pack(pop) 13048ce75f8aSSinclair Yeh 1305ebc9ac7cSZack Rusin #pragma pack(push, 1) 1306ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBContext { 13078ce75f8aSSinclair Yeh uint32 cid; 1308ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBContext; 1309ebc9ac7cSZack Rusin #pragma pack(pop) 13108ce75f8aSSinclair Yeh 1311ebc9ac7cSZack Rusin #pragma pack(push, 1) 1312ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDestroyGBContext { 13138ce75f8aSSinclair Yeh uint32 cid; 1314ebc9ac7cSZack Rusin } SVGA3dCmdDestroyGBContext; 1315ebc9ac7cSZack Rusin #pragma pack(pop) 13168ce75f8aSSinclair Yeh 1317ebc9ac7cSZack Rusin #pragma pack(push, 1) 1318ebc9ac7cSZack Rusin typedef struct SVGA3dCmdBindGBContext { 13198ce75f8aSSinclair Yeh uint32 cid; 13208ce75f8aSSinclair Yeh SVGAMobId mobid; 13218ce75f8aSSinclair Yeh uint32 validContents; 1322ebc9ac7cSZack Rusin } SVGA3dCmdBindGBContext; 1323ebc9ac7cSZack Rusin #pragma pack(pop) 13248ce75f8aSSinclair Yeh 1325ebc9ac7cSZack Rusin #pragma pack(push, 1) 1326ebc9ac7cSZack Rusin typedef struct SVGA3dCmdReadbackGBContext { 13278ce75f8aSSinclair Yeh uint32 cid; 1328ebc9ac7cSZack Rusin } SVGA3dCmdReadbackGBContext; 1329ebc9ac7cSZack Rusin #pragma pack(pop) 13308ce75f8aSSinclair Yeh 1331ebc9ac7cSZack Rusin #pragma pack(push, 1) 1332ebc9ac7cSZack Rusin typedef struct SVGA3dCmdInvalidateGBContext { 13338ce75f8aSSinclair Yeh uint32 cid; 1334ebc9ac7cSZack Rusin } SVGA3dCmdInvalidateGBContext; 1335ebc9ac7cSZack Rusin #pragma pack(pop) 13368ce75f8aSSinclair Yeh 1337ebc9ac7cSZack Rusin #pragma pack(push, 1) 1338ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDefineGBShader { 13398ce75f8aSSinclair Yeh uint32 shid; 13408ce75f8aSSinclair Yeh SVGA3dShaderType type; 13418ce75f8aSSinclair Yeh uint32 sizeInBytes; 1342ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBShader; 1343ebc9ac7cSZack Rusin #pragma pack(pop) 13448ce75f8aSSinclair Yeh 1345ebc9ac7cSZack Rusin #pragma pack(push, 1) 1346ebc9ac7cSZack Rusin typedef struct SVGA3dCmdBindGBShader { 13478ce75f8aSSinclair Yeh uint32 shid; 13488ce75f8aSSinclair Yeh SVGAMobId mobid; 13498ce75f8aSSinclair Yeh uint32 offsetInBytes; 1350ebc9ac7cSZack Rusin } SVGA3dCmdBindGBShader; 1351ebc9ac7cSZack Rusin #pragma pack(pop) 13528ce75f8aSSinclair Yeh 1353ebc9ac7cSZack Rusin #pragma pack(push, 1) 1354ebc9ac7cSZack Rusin typedef struct SVGA3dCmdDestroyGBShader { 13558ce75f8aSSinclair Yeh uint32 shid; 1356ebc9ac7cSZack Rusin } SVGA3dCmdDestroyGBShader; 1357ebc9ac7cSZack Rusin #pragma pack(pop) 13588ce75f8aSSinclair Yeh 1359ebc9ac7cSZack Rusin #pragma pack(push, 1) 1360ebc9ac7cSZack Rusin typedef struct { 13618ce75f8aSSinclair Yeh uint32 cid; 13628ce75f8aSSinclair Yeh uint32 regStart; 13638ce75f8aSSinclair Yeh SVGA3dShaderType shaderType; 13648ce75f8aSSinclair Yeh SVGA3dShaderConstType constType; 13658ce75f8aSSinclair Yeh 1366ebc9ac7cSZack Rusin } SVGA3dCmdSetGBShaderConstInline; 1367ebc9ac7cSZack Rusin #pragma pack(pop) 13688ce75f8aSSinclair Yeh 1369ebc9ac7cSZack Rusin #pragma pack(push, 1) 1370ebc9ac7cSZack Rusin typedef struct { 13718ce75f8aSSinclair Yeh uint32 cid; 13728ce75f8aSSinclair Yeh SVGA3dQueryType type; 1373ebc9ac7cSZack Rusin } SVGA3dCmdBeginGBQuery; 1374ebc9ac7cSZack Rusin #pragma pack(pop) 13758ce75f8aSSinclair Yeh 1376ebc9ac7cSZack Rusin #pragma pack(push, 1) 1377ebc9ac7cSZack Rusin typedef struct { 13788ce75f8aSSinclair Yeh uint32 cid; 13798ce75f8aSSinclair Yeh SVGA3dQueryType type; 13808ce75f8aSSinclair Yeh SVGAMobId mobid; 13818ce75f8aSSinclair Yeh uint32 offset; 1382ebc9ac7cSZack Rusin } SVGA3dCmdEndGBQuery; 1383ebc9ac7cSZack Rusin #pragma pack(pop) 13848ce75f8aSSinclair Yeh 1385ebc9ac7cSZack Rusin #pragma pack(push, 1) 1386ebc9ac7cSZack Rusin typedef struct { 13878ce75f8aSSinclair Yeh uint32 cid; 13888ce75f8aSSinclair Yeh SVGA3dQueryType type; 13898ce75f8aSSinclair Yeh SVGAMobId mobid; 13908ce75f8aSSinclair Yeh uint32 offset; 1391ebc9ac7cSZack Rusin } SVGA3dCmdWaitForGBQuery; 1392ebc9ac7cSZack Rusin #pragma pack(pop) 13938ce75f8aSSinclair Yeh 1394ebc9ac7cSZack Rusin #pragma pack(push, 1) 1395ebc9ac7cSZack Rusin typedef struct { 13968ce75f8aSSinclair Yeh SVGAMobId mobid; 13978ce75f8aSSinclair Yeh uint32 mustBeZero; 13988ce75f8aSSinclair Yeh uint32 initialized; 1399ebc9ac7cSZack Rusin } SVGA3dCmdEnableGart; 1400ebc9ac7cSZack Rusin #pragma pack(pop) 14018ce75f8aSSinclair Yeh 1402ebc9ac7cSZack Rusin #pragma pack(push, 1) 1403ebc9ac7cSZack Rusin typedef struct { 14048ce75f8aSSinclair Yeh SVGAMobId mobid; 14058ce75f8aSSinclair Yeh uint32 gartOffset; 1406ebc9ac7cSZack Rusin } SVGA3dCmdMapMobIntoGart; 1407ebc9ac7cSZack Rusin #pragma pack(pop) 14088ce75f8aSSinclair Yeh 1409ebc9ac7cSZack Rusin #pragma pack(push, 1) 1410ebc9ac7cSZack Rusin typedef struct { 14118ce75f8aSSinclair Yeh uint32 gartOffset; 14128ce75f8aSSinclair Yeh uint32 numPages; 1413ebc9ac7cSZack Rusin } SVGA3dCmdUnmapGartRange; 1414ebc9ac7cSZack Rusin #pragma pack(pop) 14158ce75f8aSSinclair Yeh 1416ebc9ac7cSZack Rusin #pragma pack(push, 1) 1417ebc9ac7cSZack Rusin typedef struct { 14188ce75f8aSSinclair Yeh uint32 stid; 14198ce75f8aSSinclair Yeh uint32 width; 14208ce75f8aSSinclair Yeh uint32 height; 14218ce75f8aSSinclair Yeh int32 xRoot; 14228ce75f8aSSinclair Yeh int32 yRoot; 14238ce75f8aSSinclair Yeh SVGAScreenTargetFlags flags; 14248ce75f8aSSinclair Yeh 14258ce75f8aSSinclair Yeh uint32 dpi; 1426ebc9ac7cSZack Rusin } SVGA3dCmdDefineGBScreenTarget; 1427ebc9ac7cSZack Rusin #pragma pack(pop) 14288ce75f8aSSinclair Yeh 1429ebc9ac7cSZack Rusin #pragma pack(push, 1) 1430ebc9ac7cSZack Rusin typedef struct { 14318ce75f8aSSinclair Yeh uint32 stid; 1432ebc9ac7cSZack Rusin } SVGA3dCmdDestroyGBScreenTarget; 1433ebc9ac7cSZack Rusin #pragma pack(pop) 14348ce75f8aSSinclair Yeh 1435ebc9ac7cSZack Rusin #pragma pack(push, 1) 1436ebc9ac7cSZack Rusin typedef struct { 14378ce75f8aSSinclair Yeh uint32 stid; 14388ce75f8aSSinclair Yeh SVGA3dSurfaceImageId image; 1439ebc9ac7cSZack Rusin } SVGA3dCmdBindGBScreenTarget; 1440ebc9ac7cSZack Rusin #pragma pack(pop) 14418ce75f8aSSinclair Yeh 1442ebc9ac7cSZack Rusin #pragma pack(push, 1) 1443ebc9ac7cSZack Rusin typedef struct { 14448ce75f8aSSinclair Yeh uint32 stid; 14458ce75f8aSSinclair Yeh SVGA3dRect rect; 1446ebc9ac7cSZack Rusin } SVGA3dCmdUpdateGBScreenTarget; 1447ebc9ac7cSZack Rusin #pragma pack(pop) 14488ce75f8aSSinclair Yeh 1449ebc9ac7cSZack Rusin #pragma pack(push, 1) 1450ebc9ac7cSZack Rusin typedef struct { 1451ebc9ac7cSZack Rusin uint32 stid; 1452ebc9ac7cSZack Rusin SVGA3dRect rect; 1453ebc9ac7cSZack Rusin SVGA3dFrameUpdateType type; 1454ebc9ac7cSZack Rusin } SVGA3dCmdUpdateGBScreenTarget_v2; 1455ebc9ac7cSZack Rusin #pragma pack(pop) 1456ebc9ac7cSZack Rusin 1457ebc9ac7cSZack Rusin #pragma pack(push, 1) 1458ebc9ac7cSZack Rusin typedef struct { 1459ebc9ac7cSZack Rusin uint32 stid; 1460ebc9ac7cSZack Rusin SVGA3dRect rect; 1461ebc9ac7cSZack Rusin SVGA3dFrameUpdateType type; 1462ebc9ac7cSZack Rusin SVGAUnsignedPoint srcPoint; 1463ebc9ac7cSZack Rusin } SVGA3dCmdUpdateGBScreenTargetMove; 1464ebc9ac7cSZack Rusin #pragma pack(pop) 1465ebc9ac7cSZack Rusin 1466ebc9ac7cSZack Rusin #pragma pack(push, 1) 1467ebc9ac7cSZack Rusin typedef struct SVGA3dCmdGBScreenDMA { 14688ce75f8aSSinclair Yeh uint32 screenId; 14698ce75f8aSSinclair Yeh uint32 dead; 14708ce75f8aSSinclair Yeh SVGAMobId destMobID; 14718ce75f8aSSinclair Yeh uint32 destPitch; 14728ce75f8aSSinclair Yeh SVGAMobId changeMapMobID; 1473ebc9ac7cSZack Rusin } SVGA3dCmdGBScreenDMA; 1474ebc9ac7cSZack Rusin #pragma pack(pop) 14758ce75f8aSSinclair Yeh 1476ebc9ac7cSZack Rusin #pragma pack(push, 1) 1477ebc9ac7cSZack Rusin typedef struct { 14788ce75f8aSSinclair Yeh uint32 value; 14798ce75f8aSSinclair Yeh uint32 mobId; 14808ce75f8aSSinclair Yeh uint32 mobOffset; 1481ebc9ac7cSZack Rusin } SVGA3dCmdGBMobFence; 1482ebc9ac7cSZack Rusin #pragma pack(pop) 14838ce75f8aSSinclair Yeh 1484ebc9ac7cSZack Rusin #pragma pack(push, 1) 1485ebc9ac7cSZack Rusin typedef struct { 1486dc75e733SDeepak Rawat uint32 stid; 1487dc75e733SDeepak Rawat SVGA3dSurfaceImageId dest; 1488dc75e733SDeepak Rawat 1489dc75e733SDeepak Rawat uint32 statusMobId; 1490dc75e733SDeepak Rawat uint32 statusMobOffset; 1491dc75e733SDeepak Rawat 1492dc75e733SDeepak Rawat uint32 mustBeInvalidId; 1493dc75e733SDeepak Rawat uint32 mustBeZero; 1494ebc9ac7cSZack Rusin } SVGA3dCmdScreenCopy; 1495ebc9ac7cSZack Rusin #pragma pack(pop) 1496dc75e733SDeepak Rawat 1497dc75e733SDeepak Rawat #define SVGA_SCREEN_COPY_STATUS_FAILURE 0x00 1498dc75e733SDeepak Rawat #define SVGA_SCREEN_COPY_STATUS_SUCCESS 0x01 1499dc75e733SDeepak Rawat #define SVGA_SCREEN_COPY_STATUS_INVALID 0xFFFFFFFF 1500dc75e733SDeepak Rawat 1501ebc9ac7cSZack Rusin #pragma pack(push, 1) 1502ebc9ac7cSZack Rusin typedef struct { 15030651dfabSDeepak Rawat uint32 sid; 1504ebc9ac7cSZack Rusin } SVGA3dCmdWriteZeroSurface; 1505ebc9ac7cSZack Rusin #pragma pack(pop) 15060651dfabSDeepak Rawat 1507ebc9ac7cSZack Rusin #pragma pack(push, 1) 1508ebc9ac7cSZack Rusin typedef struct { 15090651dfabSDeepak Rawat uint32 sid; 1510ebc9ac7cSZack Rusin } SVGA3dCmdUpdateZeroSurface; 1511ebc9ac7cSZack Rusin #pragma pack(pop) 15120651dfabSDeepak Rawat 1513ebc9ac7cSZack Rusin #endif 1514