Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vmwgfx: Update register files to latest from vmware-sdk

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by

Jakob Bornecrantz and committed by
Dave Airlie
8d3713ea 4d798937

+359 -144
+181 -78
drivers/gpu/drm/vmwgfx/svga3d_reg.h
··· 57 57 SVGA3D_HWVERSION_WS6_B1 = SVGA3D_MAKE_HWVERSION(1, 1), 58 58 SVGA3D_HWVERSION_FUSION_11 = SVGA3D_MAKE_HWVERSION(1, 4), 59 59 SVGA3D_HWVERSION_WS65_B1 = SVGA3D_MAKE_HWVERSION(2, 0), 60 - SVGA3D_HWVERSION_CURRENT = SVGA3D_HWVERSION_WS65_B1, 60 + SVGA3D_HWVERSION_WS8_B1 = SVGA3D_MAKE_HWVERSION(2, 1), 61 + SVGA3D_HWVERSION_CURRENT = SVGA3D_HWVERSION_WS8_B1, 61 62 } SVGA3dHardwareVersion; 62 63 63 64 /* ··· 68 67 typedef uint32 SVGA3dBool; /* 32-bit Bool definition */ 69 68 #define SVGA3D_NUM_CLIPPLANES 6 70 69 #define SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS 8 71 - 70 + #define SVGA3D_MAX_CONTEXT_IDS 256 71 + #define SVGA3D_MAX_SURFACE_IDS (32 * 1024) 72 72 73 73 /* 74 74 * Surface formats. ··· 81 79 */ 82 80 83 81 typedef enum SVGA3dSurfaceFormat { 84 - SVGA3D_FORMAT_INVALID = 0, 82 + SVGA3D_FORMAT_INVALID = 0, 85 83 86 - SVGA3D_X8R8G8B8 = 1, 87 - SVGA3D_A8R8G8B8 = 2, 84 + SVGA3D_X8R8G8B8 = 1, 85 + SVGA3D_A8R8G8B8 = 2, 88 86 89 - SVGA3D_R5G6B5 = 3, 90 - SVGA3D_X1R5G5B5 = 4, 91 - SVGA3D_A1R5G5B5 = 5, 92 - SVGA3D_A4R4G4B4 = 6, 87 + SVGA3D_R5G6B5 = 3, 88 + SVGA3D_X1R5G5B5 = 4, 89 + SVGA3D_A1R5G5B5 = 5, 90 + SVGA3D_A4R4G4B4 = 6, 93 91 94 - SVGA3D_Z_D32 = 7, 95 - SVGA3D_Z_D16 = 8, 96 - SVGA3D_Z_D24S8 = 9, 97 - SVGA3D_Z_D15S1 = 10, 92 + SVGA3D_Z_D32 = 7, 93 + SVGA3D_Z_D16 = 8, 94 + SVGA3D_Z_D24S8 = 9, 95 + SVGA3D_Z_D15S1 = 10, 98 96 99 - SVGA3D_LUMINANCE8 = 11, 100 - SVGA3D_LUMINANCE4_ALPHA4 = 12, 101 - SVGA3D_LUMINANCE16 = 13, 102 - SVGA3D_LUMINANCE8_ALPHA8 = 14, 97 + SVGA3D_LUMINANCE8 = 11, 98 + SVGA3D_LUMINANCE4_ALPHA4 = 12, 99 + SVGA3D_LUMINANCE16 = 13, 100 + SVGA3D_LUMINANCE8_ALPHA8 = 14, 103 101 104 - SVGA3D_DXT1 = 15, 105 - SVGA3D_DXT2 = 16, 106 - SVGA3D_DXT3 = 17, 107 - SVGA3D_DXT4 = 18, 108 - SVGA3D_DXT5 = 19, 102 + SVGA3D_DXT1 = 15, 103 + SVGA3D_DXT2 = 16, 104 + SVGA3D_DXT3 = 17, 105 + SVGA3D_DXT4 = 18, 106 + SVGA3D_DXT5 = 19, 109 107 110 - SVGA3D_BUMPU8V8 = 20, 111 - SVGA3D_BUMPL6V5U5 = 21, 112 - SVGA3D_BUMPX8L8V8U8 = 22, 113 - SVGA3D_BUMPL8V8U8 = 23, 108 + SVGA3D_BUMPU8V8 = 20, 109 + SVGA3D_BUMPL6V5U5 = 21, 110 + SVGA3D_BUMPX8L8V8U8 = 22, 111 + SVGA3D_BUMPL8V8U8 = 23, 114 112 115 - SVGA3D_ARGB_S10E5 = 24, /* 16-bit floating-point ARGB */ 116 - SVGA3D_ARGB_S23E8 = 25, /* 32-bit floating-point ARGB */ 113 + SVGA3D_ARGB_S10E5 = 24, /* 16-bit floating-point ARGB */ 114 + SVGA3D_ARGB_S23E8 = 25, /* 32-bit floating-point ARGB */ 117 115 118 - SVGA3D_A2R10G10B10 = 26, 116 + SVGA3D_A2R10G10B10 = 26, 119 117 120 118 /* signed formats */ 121 - SVGA3D_V8U8 = 27, 122 - SVGA3D_Q8W8V8U8 = 28, 123 - SVGA3D_CxV8U8 = 29, 119 + SVGA3D_V8U8 = 27, 120 + SVGA3D_Q8W8V8U8 = 28, 121 + SVGA3D_CxV8U8 = 29, 124 122 125 123 /* mixed formats */ 126 - SVGA3D_X8L8V8U8 = 30, 127 - SVGA3D_A2W10V10U10 = 31, 124 + SVGA3D_X8L8V8U8 = 30, 125 + SVGA3D_A2W10V10U10 = 31, 128 126 129 - SVGA3D_ALPHA8 = 32, 127 + SVGA3D_ALPHA8 = 32, 130 128 131 129 /* Single- and dual-component floating point formats */ 132 - SVGA3D_R_S10E5 = 33, 133 - SVGA3D_R_S23E8 = 34, 134 - SVGA3D_RG_S10E5 = 35, 135 - SVGA3D_RG_S23E8 = 36, 130 + SVGA3D_R_S10E5 = 33, 131 + SVGA3D_R_S23E8 = 34, 132 + SVGA3D_RG_S10E5 = 35, 133 + SVGA3D_RG_S23E8 = 36, 136 134 137 135 /* 138 136 * Any surface can be used as a buffer object, but SVGA3D_BUFFER is 139 137 * the most efficient format to use when creating new surfaces 140 138 * expressly for index or vertex data. 141 139 */ 142 - SVGA3D_BUFFER = 37, 143 140 144 - SVGA3D_Z_D24X8 = 38, 141 + SVGA3D_BUFFER = 37, 145 142 146 - SVGA3D_V16U16 = 39, 143 + SVGA3D_Z_D24X8 = 38, 147 144 148 - SVGA3D_G16R16 = 40, 149 - SVGA3D_A16B16G16R16 = 41, 145 + SVGA3D_V16U16 = 39, 146 + 147 + SVGA3D_G16R16 = 40, 148 + SVGA3D_A16B16G16R16 = 41, 150 149 151 150 /* Packed Video formats */ 152 - SVGA3D_UYVY = 42, 153 - SVGA3D_YUY2 = 43, 151 + SVGA3D_UYVY = 42, 152 + SVGA3D_YUY2 = 43, 153 + 154 + /* Planar video formats */ 155 + SVGA3D_NV12 = 44, 156 + 157 + /* Video format with alpha */ 158 + SVGA3D_AYUV = 45, 159 + 160 + SVGA3D_BC4_UNORM = 108, 161 + SVGA3D_BC5_UNORM = 111, 162 + 163 + /* Advanced D3D9 depth formats. */ 164 + SVGA3D_Z_DF16 = 118, 165 + SVGA3D_Z_DF24 = 119, 166 + SVGA3D_Z_D24S8_INT = 120, 154 167 155 168 SVGA3D_FORMAT_MAX 156 169 } SVGA3dSurfaceFormat; ··· 431 414 SVGA3D_RS_SRCBLENDALPHA = 94, /* SVGA3dBlendOp */ 432 415 SVGA3D_RS_DSTBLENDALPHA = 95, /* SVGA3dBlendOp */ 433 416 SVGA3D_RS_BLENDEQUATIONALPHA = 96, /* SVGA3dBlendEquation */ 417 + SVGA3D_RS_TRANSPARENCYANTIALIAS = 97, /* SVGA3dTransparencyAntialiasType */ 418 + SVGA3D_RS_LINEAA = 98, /* SVGA3dBool */ 419 + SVGA3D_RS_LINEWIDTH = 99, /* float */ 434 420 SVGA3D_RS_MAX 435 421 } SVGA3dRenderStateName; 422 + 423 + typedef enum { 424 + SVGA3D_TRANSPARENCYANTIALIAS_NORMAL = 0, 425 + SVGA3D_TRANSPARENCYANTIALIAS_ALPHATOCOVERAGE = 1, 426 + SVGA3D_TRANSPARENCYANTIALIAS_SUPERSAMPLE = 2, 427 + SVGA3D_TRANSPARENCYANTIALIAS_MAX 428 + } SVGA3dTransparencyAntialiasType; 436 429 437 430 typedef enum { 438 431 SVGA3D_VERTEXMATERIAL_NONE = 0, /* Use the value in the current material */ ··· 755 728 SVGA3D_TEX_FILTER_NEAREST = 1, 756 729 SVGA3D_TEX_FILTER_LINEAR = 2, 757 730 SVGA3D_TEX_FILTER_ANISOTROPIC = 3, 758 - SVGA3D_TEX_FILTER_FLATCUBIC = 4, // Deprecated, not implemented 759 - SVGA3D_TEX_FILTER_GAUSSIANCUBIC = 5, // Deprecated, not implemented 760 - SVGA3D_TEX_FILTER_PYRAMIDALQUAD = 6, // Not currently implemented 761 - SVGA3D_TEX_FILTER_GAUSSIANQUAD = 7, // Not currently implemented 731 + SVGA3D_TEX_FILTER_FLATCUBIC = 4, /* Deprecated, not implemented */ 732 + SVGA3D_TEX_FILTER_GAUSSIANCUBIC = 5, /* Deprecated, not implemented */ 733 + SVGA3D_TEX_FILTER_PYRAMIDALQUAD = 6, /* Not currently implemented */ 734 + SVGA3D_TEX_FILTER_GAUSSIANQUAD = 7, /* Not currently implemented */ 762 735 SVGA3D_TEX_FILTER_MAX 763 736 } SVGA3dTextureFilter; 764 737 ··· 826 799 827 800 typedef enum { 828 801 SVGA3D_DECLUSAGE_POSITION = 0, 829 - SVGA3D_DECLUSAGE_BLENDWEIGHT, // 1 830 - SVGA3D_DECLUSAGE_BLENDINDICES, // 2 831 - SVGA3D_DECLUSAGE_NORMAL, // 3 832 - SVGA3D_DECLUSAGE_PSIZE, // 4 833 - SVGA3D_DECLUSAGE_TEXCOORD, // 5 834 - SVGA3D_DECLUSAGE_TANGENT, // 6 835 - SVGA3D_DECLUSAGE_BINORMAL, // 7 836 - SVGA3D_DECLUSAGE_TESSFACTOR, // 8 837 - SVGA3D_DECLUSAGE_POSITIONT, // 9 838 - SVGA3D_DECLUSAGE_COLOR, // 10 839 - SVGA3D_DECLUSAGE_FOG, // 11 840 - SVGA3D_DECLUSAGE_DEPTH, // 12 841 - SVGA3D_DECLUSAGE_SAMPLE, // 13 802 + SVGA3D_DECLUSAGE_BLENDWEIGHT, /* 1 */ 803 + SVGA3D_DECLUSAGE_BLENDINDICES, /* 2 */ 804 + SVGA3D_DECLUSAGE_NORMAL, /* 3 */ 805 + SVGA3D_DECLUSAGE_PSIZE, /* 4 */ 806 + SVGA3D_DECLUSAGE_TEXCOORD, /* 5 */ 807 + SVGA3D_DECLUSAGE_TANGENT, /* 6 */ 808 + SVGA3D_DECLUSAGE_BINORMAL, /* 7 */ 809 + SVGA3D_DECLUSAGE_TESSFACTOR, /* 8 */ 810 + SVGA3D_DECLUSAGE_POSITIONT, /* 9 */ 811 + SVGA3D_DECLUSAGE_COLOR, /* 10 */ 812 + SVGA3D_DECLUSAGE_FOG, /* 11 */ 813 + SVGA3D_DECLUSAGE_DEPTH, /* 12 */ 814 + SVGA3D_DECLUSAGE_SAMPLE, /* 13 */ 842 815 SVGA3D_DECLUSAGE_MAX 843 816 } SVGA3dDeclUsage; 844 817 ··· 846 819 SVGA3D_DECLMETHOD_DEFAULT = 0, 847 820 SVGA3D_DECLMETHOD_PARTIALU, 848 821 SVGA3D_DECLMETHOD_PARTIALV, 849 - SVGA3D_DECLMETHOD_CROSSUV, // Normal 822 + SVGA3D_DECLMETHOD_CROSSUV, /* Normal */ 850 823 SVGA3D_DECLMETHOD_UV, 851 - SVGA3D_DECLMETHOD_LOOKUP, // Lookup a displacement map 852 - SVGA3D_DECLMETHOD_LOOKUPPRESAMPLED, // Lookup a pre-sampled displacement map 824 + SVGA3D_DECLMETHOD_LOOKUP, /* Lookup a displacement map */ 825 + SVGA3D_DECLMETHOD_LOOKUPPRESAMPLED, /* Lookup a pre-sampled displacement map */ 853 826 } SVGA3dDeclMethod; 854 827 855 828 typedef enum { ··· 957 930 } SVGA3dCubeFace; 958 931 959 932 typedef enum { 960 - SVGA3D_SHADERTYPE_COMPILED_DX8 = 0, 961 933 SVGA3D_SHADERTYPE_VS = 1, 962 934 SVGA3D_SHADERTYPE_PS = 2, 963 935 SVGA3D_SHADERTYPE_MAX ··· 994 968 } SVGA3dTransferType; 995 969 996 970 /* 997 - * The maximum number vertex arrays we're guaranteed to support in 971 + * The maximum number of vertex arrays we're guaranteed to support in 998 972 * SVGA_3D_CMD_DRAWPRIMITIVES. 999 973 */ 1000 974 #define SVGA3D_MAX_VERTEX_ARRAYS 32 975 + 976 + /* 977 + * The maximum number of primitive ranges we're guaranteed to support 978 + * in SVGA_3D_CMD_DRAWPRIMITIVES. 979 + */ 980 + #define SVGA3D_MAX_DRAW_PRIMITIVE_RANGES 32 1001 981 1002 982 /* 1003 983 * Identifiers for commands in the command FIFO. ··· 1022 990 #define SVGA_3D_CMD_LEGACY_BASE 1000 1023 991 #define SVGA_3D_CMD_BASE 1040 1024 992 1025 - #define SVGA_3D_CMD_SURFACE_DEFINE SVGA_3D_CMD_BASE + 0 993 + #define SVGA_3D_CMD_SURFACE_DEFINE SVGA_3D_CMD_BASE + 0 /* Deprecated */ 1026 994 #define SVGA_3D_CMD_SURFACE_DESTROY SVGA_3D_CMD_BASE + 1 1027 995 #define SVGA_3D_CMD_SURFACE_COPY SVGA_3D_CMD_BASE + 2 1028 996 #define SVGA_3D_CMD_SURFACE_STRETCHBLT SVGA_3D_CMD_BASE + 3 ··· 1040 1008 #define SVGA_3D_CMD_SETVIEWPORT SVGA_3D_CMD_BASE + 15 1041 1009 #define SVGA_3D_CMD_SETCLIPPLANE SVGA_3D_CMD_BASE + 16 1042 1010 #define SVGA_3D_CMD_CLEAR SVGA_3D_CMD_BASE + 17 1043 - #define SVGA_3D_CMD_PRESENT SVGA_3D_CMD_BASE + 18 // Deprecated 1011 + #define SVGA_3D_CMD_PRESENT SVGA_3D_CMD_BASE + 18 /* Deprecated */ 1044 1012 #define SVGA_3D_CMD_SHADER_DEFINE SVGA_3D_CMD_BASE + 19 1045 1013 #define SVGA_3D_CMD_SHADER_DESTROY SVGA_3D_CMD_BASE + 20 1046 1014 #define SVGA_3D_CMD_SET_SHADER SVGA_3D_CMD_BASE + 21 ··· 1050 1018 #define SVGA_3D_CMD_BEGIN_QUERY SVGA_3D_CMD_BASE + 25 1051 1019 #define SVGA_3D_CMD_END_QUERY SVGA_3D_CMD_BASE + 26 1052 1020 #define SVGA_3D_CMD_WAIT_FOR_QUERY SVGA_3D_CMD_BASE + 27 1053 - #define SVGA_3D_CMD_PRESENT_READBACK SVGA_3D_CMD_BASE + 28 // Deprecated 1021 + #define SVGA_3D_CMD_PRESENT_READBACK SVGA_3D_CMD_BASE + 28 /* Deprecated */ 1054 1022 #define SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN SVGA_3D_CMD_BASE + 29 1055 - #define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 30 1023 + #define SVGA_3D_CMD_SURFACE_DEFINE_V2 SVGA_3D_CMD_BASE + 30 1024 + #define SVGA_3D_CMD_GENERATE_MIPMAPS SVGA_3D_CMD_BASE + 31 1025 + #define SVGA_3D_CMD_ACTIVATE_SURFACE SVGA_3D_CMD_BASE + 40 1026 + #define SVGA_3D_CMD_DEACTIVATE_SURFACE SVGA_3D_CMD_BASE + 41 1027 + #define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 42 1056 1028 1057 1029 #define SVGA_3D_CMD_FUTURE_MAX 2000 1058 1030 ··· 1067 1031 typedef struct { 1068 1032 union { 1069 1033 struct { 1070 - uint16 function; // SVGA3dFogFunction 1071 - uint8 type; // SVGA3dFogType 1072 - uint8 base; // SVGA3dFogBase 1034 + uint16 function; /* SVGA3dFogFunction */ 1035 + uint8 type; /* SVGA3dFogType */ 1036 + uint8 base; /* SVGA3dFogBase */ 1073 1037 }; 1074 1038 uint32 uintValue; 1075 1039 }; ··· 1145 1109 SVGA3D_SURFACE_HINT_RENDERTARGET = (1 << 6), 1146 1110 SVGA3D_SURFACE_HINT_DEPTHSTENCIL = (1 << 7), 1147 1111 SVGA3D_SURFACE_HINT_WRITEONLY = (1 << 8), 1112 + SVGA3D_SURFACE_MASKABLE_ANTIALIAS = (1 << 9), 1113 + SVGA3D_SURFACE_AUTOGENMIPMAPS = (1 << 10), 1148 1114 } SVGA3dSurfaceFlags; 1149 1115 1150 1116 typedef ··· 1159 1121 uint32 sid; 1160 1122 SVGA3dSurfaceFlags surfaceFlags; 1161 1123 SVGA3dSurfaceFormat format; 1124 + /* 1125 + * If surfaceFlags has SVGA3D_SURFACE_CUBEMAP bit set, all SVGA3dSurfaceFace 1126 + * structures must have the same value of numMipLevels field. 1127 + * Otherwise, all but the first SVGA3dSurfaceFace structures must have the 1128 + * numMipLevels set to 0. 1129 + */ 1162 1130 SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES]; 1163 1131 /* 1164 1132 * Followed by an SVGA3dSize structure for each mip level in each face. ··· 1176 1132 * memory. 1177 1133 */ 1178 1134 } SVGA3dCmdDefineSurface; /* SVGA_3D_CMD_SURFACE_DEFINE */ 1135 + 1136 + typedef 1137 + struct { 1138 + uint32 sid; 1139 + SVGA3dSurfaceFlags surfaceFlags; 1140 + SVGA3dSurfaceFormat format; 1141 + /* 1142 + * If surfaceFlags has SVGA3D_SURFACE_CUBEMAP bit set, all SVGA3dSurfaceFace 1143 + * structures must have the same value of numMipLevels field. 1144 + * Otherwise, all but the first SVGA3dSurfaceFace structures must have the 1145 + * numMipLevels set to 0. 1146 + */ 1147 + SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES]; 1148 + uint32 multisampleCount; 1149 + SVGA3dTextureFilter autogenFilter; 1150 + /* 1151 + * Followed by an SVGA3dSize structure for each mip level in each face. 1152 + * 1153 + * A note on surface sizes: Sizes are always specified in pixels, 1154 + * even if the true surface size is not a multiple of the minimum 1155 + * block size of the surface's format. For example, a 3x3x1 DXT1 1156 + * compressed texture would actually be stored as a 4x4x1 image in 1157 + * memory. 1158 + */ 1159 + } SVGA3dCmdDefineSurface_v2; /* SVGA_3D_CMD_SURFACE_DEFINE_V2 */ 1179 1160 1180 1161 typedef 1181 1162 struct { ··· 1543 1474 * SVGA3dCmdDrawPrimitives structure. In order, 1544 1475 * they are: 1545 1476 * 1546 - * 1. SVGA3dVertexDecl, quantity 'numVertexDecls' 1547 - * 2. SVGA3dPrimitiveRange, quantity 'numRanges' 1477 + * 1. SVGA3dVertexDecl, quantity 'numVertexDecls', but no more than 1478 + * SVGA3D_MAX_VERTEX_ARRAYS; 1479 + * 2. SVGA3dPrimitiveRange, quantity 'numRanges', but no more than 1480 + * SVGA3D_MAX_DRAW_PRIMITIVE_RANGES; 1548 1481 * 3. Optionally, SVGA3dVertexDivisor, quantity 'numVertexDecls' (contains 1549 - * the frequency divisor for this the corresponding vertex decl) 1482 + * the frequency divisor for the corresponding vertex decl). 1550 1483 */ 1551 1484 } SVGA3dCmdDrawPrimitives; /* SVGA_3D_CMD_DRAWPRIMITIVES */ 1552 1485 ··· 1742 1671 /* Clipping: zero or more SVGASignedRects follow */ 1743 1672 } SVGA3dCmdBlitSurfaceToScreen; /* SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN */ 1744 1673 1674 + typedef 1675 + struct { 1676 + uint32 sid; 1677 + SVGA3dTextureFilter filter; 1678 + } SVGA3dCmdGenerateMipmaps; /* SVGA_3D_CMD_GENERATE_MIPMAPS */ 1679 + 1745 1680 1746 1681 /* 1747 1682 * Capability query index. ··· 1851 1774 SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16 = 67, 1852 1775 SVGA3D_DEVCAP_SURFACEFMT_UYVY = 68, 1853 1776 SVGA3D_DEVCAP_SURFACEFMT_YUY2 = 69, 1777 + SVGA3D_DEVCAP_MULTISAMPLE_NONMASKABLESAMPLES = 70, 1778 + SVGA3D_DEVCAP_MULTISAMPLE_MASKABLESAMPLES = 71, 1779 + SVGA3D_DEVCAP_ALPHATOCOVERAGE = 72, 1780 + SVGA3D_DEVCAP_SUPERSAMPLE = 73, 1781 + SVGA3D_DEVCAP_AUTOGENMIPMAPS = 74, 1782 + SVGA3D_DEVCAP_SURFACEFMT_NV12 = 75, 1783 + SVGA3D_DEVCAP_SURFACEFMT_AYUV = 76, 1784 + 1785 + /* 1786 + * This is the maximum number of SVGA context IDs that the guest 1787 + * can define using SVGA_3D_CMD_CONTEXT_DEFINE. 1788 + */ 1789 + SVGA3D_DEVCAP_MAX_CONTEXT_IDS = 77, 1790 + 1791 + /* 1792 + * This is the maximum number of SVGA surface IDs that the guest 1793 + * can define using SVGA_3D_CMD_SURFACE_DEFINE*. 1794 + */ 1795 + SVGA3D_DEVCAP_MAX_SURFACE_IDS = 78, 1796 + 1797 + SVGA3D_DEVCAP_SURFACEFMT_Z_DF16 = 79, 1798 + SVGA3D_DEVCAP_SURFACEFMT_Z_DF24 = 80, 1799 + SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT = 81, 1800 + 1801 + SVGA3D_DEVCAP_SURFACEFMT_BC4_UNORM = 82, 1802 + SVGA3D_DEVCAP_SURFACEFMT_BC5_UNORM = 83, 1854 1803 1855 1804 /* 1856 1805 * Don't add new caps into the previous section; the values in this
+1 -1
drivers/gpu/drm/vmwgfx/svga_escape.h
··· 75 75 */ 76 76 77 77 #define SVGA_ESCAPE_VMWARE_HINT 0x00030000 78 - #define SVGA_ESCAPE_VMWARE_HINT_FULLSCREEN 0x00030001 // Deprecated 78 + #define SVGA_ESCAPE_VMWARE_HINT_FULLSCREEN 0x00030001 /* Deprecated */ 79 79 80 80 typedef 81 81 struct {
+11 -11
drivers/gpu/drm/vmwgfx/svga_overlay.h
··· 38 38 * Video formats we support 39 39 */ 40 40 41 - #define VMWARE_FOURCC_YV12 0x32315659 // 'Y' 'V' '1' '2' 42 - #define VMWARE_FOURCC_YUY2 0x32595559 // 'Y' 'U' 'Y' '2' 43 - #define VMWARE_FOURCC_UYVY 0x59565955 // 'U' 'Y' 'V' 'Y' 41 + #define VMWARE_FOURCC_YV12 0x32315659 /* 'Y' 'V' '1' '2' */ 42 + #define VMWARE_FOURCC_YUY2 0x32595559 /* 'Y' 'U' 'Y' '2' */ 43 + #define VMWARE_FOURCC_UYVY 0x59565955 /* 'U' 'Y' 'V' 'Y' */ 44 44 45 45 typedef enum { 46 46 SVGA_OVERLAY_FORMAT_INVALID = 0, ··· 68 68 uint32 streamId; 69 69 } header; 70 70 71 - // May include zero or more items. 71 + /* May include zero or more items. */ 72 72 struct { 73 73 uint32 registerId; 74 74 uint32 value; ··· 134 134 */ 135 135 136 136 static inline bool 137 - VMwareVideoGetAttributes(const SVGAOverlayFormat format, // IN 138 - uint32 *width, // IN / OUT 139 - uint32 *height, // IN / OUT 140 - uint32 *size, // OUT 141 - uint32 *pitches, // OUT (optional) 142 - uint32 *offsets) // OUT (optional) 137 + VMwareVideoGetAttributes(const SVGAOverlayFormat format, /* IN */ 138 + uint32 *width, /* IN / OUT */ 139 + uint32 *height, /* IN / OUT */ 140 + uint32 *size, /* OUT */ 141 + uint32 *pitches, /* OUT (optional) */ 142 + uint32 *offsets) /* OUT (optional) */ 143 143 { 144 144 int tmp; 145 145 ··· 198 198 return true; 199 199 } 200 200 201 - #endif // _SVGA_OVERLAY_H_ 201 + #endif /* _SVGA_OVERLAY_H_ */
+166 -54
drivers/gpu/drm/vmwgfx/svga_reg.h
··· 276 276 * possible. 277 277 */ 278 278 #define SVGA_GMR_NULL ((uint32) -1) 279 - #define SVGA_GMR_FRAMEBUFFER ((uint32) -2) // Guest Framebuffer (GFB) 279 + #define SVGA_GMR_FRAMEBUFFER ((uint32) -2) /* Guest Framebuffer (GFB) */ 280 280 281 281 typedef 282 282 struct SVGAGuestMemDescriptor { ··· 317 317 struct { 318 318 uint32 bitsPerPixel : 8; 319 319 uint32 colorDepth : 8; 320 - uint32 reserved : 16; // Must be zero 320 + uint32 reserved : 16; /* Must be zero */ 321 321 }; 322 322 323 323 uint32 value; 324 324 }; 325 325 } SVGAGMRImageFormat; 326 + 327 + typedef 328 + struct SVGAGuestImage { 329 + SVGAGuestPtr ptr; 330 + 331 + /* 332 + * A note on interpretation of pitch: This value of pitch is the 333 + * number of bytes between vertically adjacent image 334 + * blocks. Normally this is the number of bytes between the first 335 + * pixel of two adjacent scanlines. With compressed textures, 336 + * however, this may represent the number of bytes between 337 + * compression blocks rather than between rows of pixels. 338 + * 339 + * XXX: Compressed textures currently must be tightly packed in guest memory. 340 + * 341 + * If the image is 1-dimensional, pitch is ignored. 342 + * 343 + * If 'pitch' is zero, the SVGA3D device calculates a pitch value 344 + * assuming each row of blocks is tightly packed. 345 + */ 346 + uint32 pitch; 347 + } SVGAGuestImage; 326 348 327 349 /* 328 350 * SVGAColorBGRX -- ··· 361 339 uint32 b : 8; 362 340 uint32 g : 8; 363 341 uint32 r : 8; 364 - uint32 x : 8; // Unused 342 + uint32 x : 8; /* Unused */ 365 343 }; 366 344 367 345 uint32 value; ··· 417 395 #define SVGA_CAP_NONE 0x00000000 418 396 #define SVGA_CAP_RECT_COPY 0x00000002 419 397 #define SVGA_CAP_CURSOR 0x00000020 420 - #define SVGA_CAP_CURSOR_BYPASS 0x00000040 // Legacy (Use Cursor Bypass 3 instead) 421 - #define SVGA_CAP_CURSOR_BYPASS_2 0x00000080 // Legacy (Use Cursor Bypass 3 instead) 398 + #define SVGA_CAP_CURSOR_BYPASS 0x00000040 /* Legacy (Use Cursor Bypass 3 instead) */ 399 + #define SVGA_CAP_CURSOR_BYPASS_2 0x00000080 /* Legacy (Use Cursor Bypass 3 instead) */ 422 400 #define SVGA_CAP_8BIT_EMULATION 0x00000100 423 401 #define SVGA_CAP_ALPHA_CURSOR 0x00000200 424 402 #define SVGA_CAP_3D 0x00004000 425 403 #define SVGA_CAP_EXTENDED_FIFO 0x00008000 426 - #define SVGA_CAP_MULTIMON 0x00010000 // Legacy multi-monitor support 404 + #define SVGA_CAP_MULTIMON 0x00010000 /* Legacy multi-monitor support */ 427 405 #define SVGA_CAP_PITCHLOCK 0x00020000 428 406 #define SVGA_CAP_IRQMASK 0x00040000 429 - #define SVGA_CAP_DISPLAY_TOPOLOGY 0x00080000 // Legacy multi-monitor support 407 + #define SVGA_CAP_DISPLAY_TOPOLOGY 0x00080000 /* Legacy multi-monitor support */ 430 408 #define SVGA_CAP_GMR 0x00100000 431 409 #define SVGA_CAP_TRACES 0x00200000 432 410 #define SVGA_CAP_GMR2 0x00400000 ··· 475 453 476 454 SVGA_FIFO_CAPABILITIES = 4, 477 455 SVGA_FIFO_FLAGS, 478 - // Valid with SVGA_FIFO_CAP_FENCE: 456 + /* Valid with SVGA_FIFO_CAP_FENCE: */ 479 457 SVGA_FIFO_FENCE, 480 458 481 459 /* ··· 488 466 * extended FIFO. 489 467 */ 490 468 491 - // Valid if exists (i.e. if extended FIFO enabled): 469 + /* Valid if exists (i.e. if extended FIFO enabled): */ 492 470 SVGA_FIFO_3D_HWVERSION, /* See SVGA3dHardwareVersion in svga3d_reg.h */ 493 - // Valid with SVGA_FIFO_CAP_PITCHLOCK: 471 + /* Valid with SVGA_FIFO_CAP_PITCHLOCK: */ 494 472 SVGA_FIFO_PITCHLOCK, 495 473 496 - // Valid with SVGA_FIFO_CAP_CURSOR_BYPASS_3: 474 + /* Valid with SVGA_FIFO_CAP_CURSOR_BYPASS_3: */ 497 475 SVGA_FIFO_CURSOR_ON, /* Cursor bypass 3 show/hide register */ 498 476 SVGA_FIFO_CURSOR_X, /* Cursor bypass 3 x register */ 499 477 SVGA_FIFO_CURSOR_Y, /* Cursor bypass 3 y register */ 500 478 SVGA_FIFO_CURSOR_COUNT, /* Incremented when any of the other 3 change */ 501 479 SVGA_FIFO_CURSOR_LAST_UPDATED,/* Last time the host updated the cursor */ 502 480 503 - // Valid with SVGA_FIFO_CAP_RESERVE: 481 + /* Valid with SVGA_FIFO_CAP_RESERVE: */ 504 482 SVGA_FIFO_RESERVED, /* Bytes past NEXT_CMD with real contents */ 505 483 506 484 /* 507 - * Valid with SVGA_FIFO_CAP_SCREEN_OBJECT: 485 + * Valid with SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2: 508 486 * 509 487 * By default this is SVGA_ID_INVALID, to indicate that the cursor 510 488 * coordinates are specified relative to the virtual root. If this 511 489 * is set to a specific screen ID, cursor position is reinterpreted 512 - * as a signed offset relative to that screen's origin. This is the 513 - * only way to place the cursor on a non-rooted screen. 490 + * as a signed offset relative to that screen's origin. 514 491 */ 515 492 SVGA_FIFO_CURSOR_SCREEN_ID, 493 + 494 + /* 495 + * Valid with SVGA_FIFO_CAP_DEAD 496 + * 497 + * An arbitrary value written by the host, drivers should not use it. 498 + */ 499 + SVGA_FIFO_DEAD, 500 + 501 + /* 502 + * Valid with SVGA_FIFO_CAP_3D_HWVERSION_REVISED: 503 + * 504 + * Contains 3D HWVERSION (see SVGA3dHardwareVersion in svga3d_reg.h) 505 + * on platforms that can enforce graphics resource limits. 506 + */ 507 + SVGA_FIFO_3D_HWVERSION_REVISED, 516 508 517 509 /* 518 510 * XXX: The gap here, up until SVGA_FIFO_3D_CAPS, can be used for new ··· 566 530 * sets SVGA_FIFO_MIN high enough to leave room for them. 567 531 */ 568 532 569 - // Valid if register exists: 533 + /* Valid if register exists: */ 570 534 SVGA_FIFO_GUEST_3D_HWVERSION, /* Guest driver's 3D version */ 571 535 SVGA_FIFO_FENCE_GOAL, /* Matching target for SVGA_IRQFLAG_FENCE_GOAL */ 572 536 SVGA_FIFO_BUSY, /* See "FIFO Synchronization Registers" */ ··· 767 731 * 768 732 * - When a screen is resized, either using Screen Object commands or 769 733 * legacy multimon registers, its contents are preserved. 734 + * 735 + * SVGA_FIFO_CAP_GMR2 -- 736 + * 737 + * Provides new commands to define and remap guest memory regions (GMR). 738 + * 739 + * New 2D commands: 740 + * DEFINE_GMR2, REMAP_GMR2. 741 + * 742 + * SVGA_FIFO_CAP_3D_HWVERSION_REVISED -- 743 + * 744 + * Indicates new register SVGA_FIFO_3D_HWVERSION_REVISED exists. 745 + * This register may replace SVGA_FIFO_3D_HWVERSION on platforms 746 + * that enforce graphics resource limits. This allows the platform 747 + * to clear SVGA_FIFO_3D_HWVERSION and disable 3D in legacy guest 748 + * drivers that do not limit their resources. 749 + * 750 + * Note this is an alias to SVGA_FIFO_CAP_GMR2 because these indicators 751 + * are codependent (and thus we use a single capability bit). 752 + * 753 + * SVGA_FIFO_CAP_SCREEN_OBJECT_2 -- 754 + * 755 + * Modifies the DEFINE_SCREEN command to include a guest provided 756 + * backing store in GMR memory and the bytesPerLine for the backing 757 + * store. This capability requires the use of a backing store when 758 + * creating screen objects. However if SVGA_FIFO_CAP_SCREEN_OBJECT 759 + * is present then backing stores are optional. 760 + * 761 + * SVGA_FIFO_CAP_DEAD -- 762 + * 763 + * Drivers should not use this cap bit. This cap bit can not be 764 + * reused since some hosts already expose it. 770 765 */ 771 766 772 767 #define SVGA_FIFO_CAP_NONE 0 ··· 809 742 #define SVGA_FIFO_CAP_ESCAPE (1<<5) 810 743 #define SVGA_FIFO_CAP_RESERVE (1<<6) 811 744 #define SVGA_FIFO_CAP_SCREEN_OBJECT (1<<7) 745 + #define SVGA_FIFO_CAP_GMR2 (1<<8) 746 + #define SVGA_FIFO_CAP_3D_HWVERSION_REVISED SVGA_FIFO_CAP_GMR2 747 + #define SVGA_FIFO_CAP_SCREEN_OBJECT_2 (1<<9) 748 + #define SVGA_FIFO_CAP_DEAD (1<<10) 812 749 813 750 814 751 /* ··· 823 752 824 753 #define SVGA_FIFO_FLAG_NONE 0 825 754 #define SVGA_FIFO_FLAG_ACCELFRONT (1<<0) 826 - #define SVGA_FIFO_FLAG_RESERVED (1<<31) // Internal use only 755 + #define SVGA_FIFO_FLAG_RESERVED (1<<31) /* Internal use only */ 827 756 828 757 /* 829 758 * FIFO reservation sentinel value ··· 856 785 SVGA_VIDEO_DATA_OFFSET, 857 786 SVGA_VIDEO_FORMAT, 858 787 SVGA_VIDEO_COLORKEY, 859 - SVGA_VIDEO_SIZE, // Deprecated 788 + SVGA_VIDEO_SIZE, /* Deprecated */ 860 789 SVGA_VIDEO_WIDTH, 861 790 SVGA_VIDEO_HEIGHT, 862 791 SVGA_VIDEO_SRC_X, 863 792 SVGA_VIDEO_SRC_Y, 864 793 SVGA_VIDEO_SRC_WIDTH, 865 794 SVGA_VIDEO_SRC_HEIGHT, 866 - SVGA_VIDEO_DST_X, // Signed int32 867 - SVGA_VIDEO_DST_Y, // Signed int32 795 + SVGA_VIDEO_DST_X, /* Signed int32 */ 796 + SVGA_VIDEO_DST_Y, /* Signed int32 */ 868 797 SVGA_VIDEO_DST_WIDTH, 869 798 SVGA_VIDEO_DST_HEIGHT, 870 799 SVGA_VIDEO_PITCH_1, 871 800 SVGA_VIDEO_PITCH_2, 872 801 SVGA_VIDEO_PITCH_3, 873 - SVGA_VIDEO_DATA_GMRID, // Optional, defaults to SVGA_GMR_FRAMEBUFFER 874 - SVGA_VIDEO_DST_SCREEN_ID, // Optional, defaults to virtual coords (SVGA_ID_INVALID) 802 + SVGA_VIDEO_DATA_GMRID, /* Optional, defaults to SVGA_GMR_FRAMEBUFFER */ 803 + SVGA_VIDEO_DST_SCREEN_ID, /* Optional, defaults to virtual coords (SVGA_ID_INVALID) */ 875 804 SVGA_VIDEO_NUM_REGS 876 805 }; 877 806 ··· 922 851 * compatibility. New flags can be added, and the struct may grow, 923 852 * but existing fields must retain their meaning. 924 853 * 854 + * Added with SVGA_FIFO_CAP_SCREEN_OBJECT_2 are required fields of 855 + * a SVGAGuestPtr that is used to back the screen contents. This 856 + * memory must come from the GFB. The guest is not allowed to 857 + * access the memory and doing so will have undefined results. The 858 + * backing store is required to be page aligned and the size is 859 + * padded to the next page boundry. The number of pages is: 860 + * (bytesPerLine * size.width * 4 + PAGE_SIZE - 1) / PAGE_SIZE 861 + * 862 + * The pitch in the backingStore is required to be at least large 863 + * enough to hold a 32bbp scanline. It is recommended that the 864 + * driver pad bytesPerLine for a potential performance win. 865 + * 866 + * The cloneCount field is treated as a hint from the guest that 867 + * the user wants this display to be cloned, countCount times. A 868 + * value of zero means no cloning should happen. 925 869 */ 926 870 927 - #define SVGA_SCREEN_HAS_ROOT (1 << 0) // Screen is present in the virtual coord space 928 - #define SVGA_SCREEN_IS_PRIMARY (1 << 1) // Guest considers this screen to be 'primary' 929 - #define SVGA_SCREEN_FULLSCREEN_HINT (1 << 2) // Guest is running a fullscreen app here 871 + #define SVGA_SCREEN_MUST_BE_SET (1 << 0) /* Must be set or results undefined */ 872 + #define SVGA_SCREEN_HAS_ROOT SVGA_SCREEN_MUST_BE_SET /* Deprecated */ 873 + #define SVGA_SCREEN_IS_PRIMARY (1 << 1) /* Guest considers this screen to be 'primary' */ 874 + #define SVGA_SCREEN_FULLSCREEN_HINT (1 << 2) /* Guest is running a fullscreen app here */ 875 + 876 + /* 877 + * Added with SVGA_FIFO_CAP_SCREEN_OBJECT_2. When the screen is 878 + * deactivated the base layer is defined to lose all contents and 879 + * become black. When a screen is deactivated the backing store is 880 + * optional. When set backingPtr and bytesPerLine will be ignored. 881 + */ 882 + #define SVGA_SCREEN_DEACTIVATE (1 << 3) 883 + 884 + /* 885 + * Added with SVGA_FIFO_CAP_SCREEN_OBJECT_2. When this flag is set 886 + * the screen contents will be outputted as all black to the user 887 + * though the base layer contents is preserved. The screen base layer 888 + * can still be read and written to like normal though the no visible 889 + * effect will be seen by the user. When the flag is changed the 890 + * screen will be blanked or redrawn to the current contents as needed 891 + * without any extra commands from the driver. This flag only has an 892 + * effect when the screen is not deactivated. 893 + */ 894 + #define SVGA_SCREEN_BLANKING (1 << 4) 930 895 931 896 typedef 932 897 struct SVGAScreenObject { 933 - uint32 structSize; // sizeof(SVGAScreenObject) 898 + uint32 structSize; /* sizeof(SVGAScreenObject) */ 934 899 uint32 id; 935 900 uint32 flags; 936 901 struct { ··· 976 869 struct { 977 870 int32 x; 978 871 int32 y; 979 - } root; // Only used if SVGA_SCREEN_HAS_ROOT is set. 872 + } root; 873 + 874 + /* 875 + * Added and required by SVGA_FIFO_CAP_SCREEN_OBJECT_2, optional 876 + * with SVGA_FIFO_CAP_SCREEN_OBJECT. 877 + */ 878 + SVGAGuestImage backingStore; 879 + uint32 cloneCount; 980 880 } SVGAScreenObject; 981 881 982 882 ··· 1058 944 */ 1059 945 1060 946 typedef 1061 - struct { 947 + struct SVGAFifoCmdUpdate { 1062 948 uint32 x; 1063 949 uint32 y; 1064 950 uint32 width; ··· 1077 963 */ 1078 964 1079 965 typedef 1080 - struct { 966 + struct SVGAFifoCmdRectCopy { 1081 967 uint32 srcX; 1082 968 uint32 srcY; 1083 969 uint32 destX; ··· 1101 987 */ 1102 988 1103 989 typedef 1104 - struct { 1105 - uint32 id; // Reserved, must be zero. 990 + struct SVGAFifoCmdDefineCursor { 991 + uint32 id; /* Reserved, must be zero. */ 1106 992 uint32 hotspotX; 1107 993 uint32 hotspotY; 1108 994 uint32 width; 1109 995 uint32 height; 1110 - uint32 andMaskDepth; // Value must be 1 or equal to BITS_PER_PIXEL 1111 - uint32 xorMaskDepth; // Value must be 1 or equal to BITS_PER_PIXEL 996 + uint32 andMaskDepth; /* Value must be 1 or equal to BITS_PER_PIXEL */ 997 + uint32 xorMaskDepth; /* Value must be 1 or equal to BITS_PER_PIXEL */ 1112 998 /* 1113 999 * Followed by scanline data for AND mask, then XOR mask. 1114 1000 * Each scanline is padded to a 32-bit boundary. ··· 1130 1016 */ 1131 1017 1132 1018 typedef 1133 - struct { 1134 - uint32 id; // Reserved, must be zero. 1019 + struct SVGAFifoCmdDefineAlphaCursor { 1020 + uint32 id; /* Reserved, must be zero. */ 1135 1021 uint32 hotspotX; 1136 1022 uint32 hotspotY; 1137 1023 uint32 width; ··· 1153 1039 */ 1154 1040 1155 1041 typedef 1156 - struct { 1042 + struct SVGAFifoCmdUpdateVerbose { 1157 1043 uint32 x; 1158 1044 uint32 y; 1159 1045 uint32 width; ··· 1178 1064 #define SVGA_ROP_COPY 0x03 1179 1065 1180 1066 typedef 1181 - struct { 1182 - uint32 color; // In the same format as the GFB 1067 + struct SVGAFifoCmdFrontRopFill { 1068 + uint32 color; /* In the same format as the GFB */ 1183 1069 uint32 x; 1184 1070 uint32 y; 1185 1071 uint32 width; 1186 1072 uint32 height; 1187 - uint32 rop; // Must be SVGA_ROP_COPY 1073 + uint32 rop; /* Must be SVGA_ROP_COPY */ 1188 1074 } SVGAFifoCmdFrontRopFill; 1189 1075 1190 1076 ··· 1221 1107 */ 1222 1108 1223 1109 typedef 1224 - struct { 1110 + struct SVGAFifoCmdEscape { 1225 1111 uint32 nsid; 1226 1112 uint32 size; 1227 1113 /* followed by 'size' bytes of data */ ··· 1251 1137 * registers (SVGA_REG_NUM_GUEST_DISPLAYS, SVGA_REG_DISPLAY_*). 1252 1138 * 1253 1139 * Availability: 1254 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1140 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1255 1141 */ 1256 1142 1257 1143 typedef 1258 1144 struct { 1259 - SVGAScreenObject screen; // Variable-length according to version 1145 + SVGAScreenObject screen; /* Variable-length according to version */ 1260 1146 } SVGAFifoCmdDefineScreen; 1261 1147 1262 1148 ··· 1267 1153 * re-use. 1268 1154 * 1269 1155 * Availability: 1270 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1156 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1271 1157 */ 1272 1158 1273 1159 typedef ··· 1320 1206 * GMRFB. 1321 1207 * 1322 1208 * Availability: 1323 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1209 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1324 1210 */ 1325 1211 1326 1212 typedef ··· 1357 1243 * SVGA_CMD_ANNOTATION_* commands for details. 1358 1244 * 1359 1245 * Availability: 1360 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1246 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1361 1247 */ 1362 1248 1363 1249 typedef ··· 1405 1291 * the time any subsequent FENCE commands are reached. 1406 1292 * 1407 1293 * Availability: 1408 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1294 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1409 1295 */ 1410 1296 1411 1297 typedef ··· 1440 1326 * user's display is being remoted over a network connection. 1441 1327 * 1442 1328 * Availability: 1443 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1329 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1444 1330 */ 1445 1331 1446 1332 typedef ··· 1472 1358 * undefined. 1473 1359 * 1474 1360 * Availability: 1475 - * SVGA_FIFO_CAP_SCREEN_OBJECT 1361 + * SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2 1476 1362 */ 1477 1363 1478 1364 typedef ··· 1495 1381 struct { 1496 1382 uint32 gmrId; 1497 1383 uint32 numPages; 1498 - } 1499 - SVGAFifoCmdDefineGMR2; 1384 + } SVGAFifoCmdDefineGMR2; 1500 1385 1501 1386 1502 1387 /* ··· 1537 1424 struct { 1538 1425 uint32 gmrId; 1539 1426 SVGARemapGMR2Flags flags; 1540 - uint32 offsetPages; /* offset in pages to begin remap */ 1541 - uint32 numPages; /* number of pages to remap */ 1427 + uint32 offsetPages; /* offset in pages to begin remap */ 1428 + uint32 numPages; /* number of pages to remap */ 1542 1429 /* 1543 1430 * Followed by additional data depending on SVGARemapGMR2Flags. 1544 1431 * ··· 1547 1434 * (according to flag SVGA_REMAP_GMR2_PPN64) follows. If flag 1548 1435 * SVGA_REMAP_GMR2_SINGLE_PPN is set, array contains a single entry. 1549 1436 */ 1550 - } 1551 - SVGAFifoCmdRemapGMR2; 1437 + } SVGAFifoCmdRemapGMR2; 1552 1438 1553 1439 #endif