aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vmwgfx/svga3d_reg.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/svga3d_reg.h')
-rw-r--r--drivers/gpu/drm/vmwgfx/svga3d_reg.h259
1 files changed, 181 insertions, 78 deletions
diff --git a/drivers/gpu/drm/vmwgfx/svga3d_reg.h b/drivers/gpu/drm/vmwgfx/svga3d_reg.h
index 77cb45331000..d0e085ee8249 100644
--- a/drivers/gpu/drm/vmwgfx/svga3d_reg.h
+++ b/drivers/gpu/drm/vmwgfx/svga3d_reg.h
@@ -57,7 +57,8 @@ typedef enum {
57 SVGA3D_HWVERSION_WS6_B1 = SVGA3D_MAKE_HWVERSION(1, 1), 57 SVGA3D_HWVERSION_WS6_B1 = SVGA3D_MAKE_HWVERSION(1, 1),
58 SVGA3D_HWVERSION_FUSION_11 = SVGA3D_MAKE_HWVERSION(1, 4), 58 SVGA3D_HWVERSION_FUSION_11 = SVGA3D_MAKE_HWVERSION(1, 4),
59 SVGA3D_HWVERSION_WS65_B1 = SVGA3D_MAKE_HWVERSION(2, 0), 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} SVGA3dHardwareVersion; 62} SVGA3dHardwareVersion;
62 63
63/* 64/*
@@ -67,7 +68,8 @@ typedef enum {
67typedef uint32 SVGA3dBool; /* 32-bit Bool definition */ 68typedef uint32 SVGA3dBool; /* 32-bit Bool definition */
68#define SVGA3D_NUM_CLIPPLANES 6 69#define SVGA3D_NUM_CLIPPLANES 6
69#define SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS 8 70#define SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS 8
70 71#define SVGA3D_MAX_CONTEXT_IDS 256
72#define SVGA3D_MAX_SURFACE_IDS (32 * 1024)
71 73
72/* 74/*
73 * Surface formats. 75 * Surface formats.
@@ -79,76 +81,91 @@ typedef uint32 SVGA3dBool; /* 32-bit Bool definition */
79 */ 81 */
80 82
81typedef enum SVGA3dSurfaceFormat { 83typedef enum SVGA3dSurfaceFormat {
82 SVGA3D_FORMAT_INVALID = 0, 84 SVGA3D_FORMAT_INVALID = 0,
83 85
84 SVGA3D_X8R8G8B8 = 1, 86 SVGA3D_X8R8G8B8 = 1,
85 SVGA3D_A8R8G8B8 = 2, 87 SVGA3D_A8R8G8B8 = 2,
86 88
87 SVGA3D_R5G6B5 = 3, 89 SVGA3D_R5G6B5 = 3,
88 SVGA3D_X1R5G5B5 = 4, 90 SVGA3D_X1R5G5B5 = 4,
89 SVGA3D_A1R5G5B5 = 5, 91 SVGA3D_A1R5G5B5 = 5,
90 SVGA3D_A4R4G4B4 = 6, 92 SVGA3D_A4R4G4B4 = 6,
91 93
92 SVGA3D_Z_D32 = 7, 94 SVGA3D_Z_D32 = 7,
93 SVGA3D_Z_D16 = 8, 95 SVGA3D_Z_D16 = 8,
94 SVGA3D_Z_D24S8 = 9, 96 SVGA3D_Z_D24S8 = 9,
95 SVGA3D_Z_D15S1 = 10, 97 SVGA3D_Z_D15S1 = 10,
96 98
97 SVGA3D_LUMINANCE8 = 11, 99 SVGA3D_LUMINANCE8 = 11,
98 SVGA3D_LUMINANCE4_ALPHA4 = 12, 100 SVGA3D_LUMINANCE4_ALPHA4 = 12,
99 SVGA3D_LUMINANCE16 = 13, 101 SVGA3D_LUMINANCE16 = 13,
100 SVGA3D_LUMINANCE8_ALPHA8 = 14, 102 SVGA3D_LUMINANCE8_ALPHA8 = 14,
101 103
102 SVGA3D_DXT1 = 15, 104 SVGA3D_DXT1 = 15,
103 SVGA3D_DXT2 = 16, 105 SVGA3D_DXT2 = 16,
104 SVGA3D_DXT3 = 17, 106 SVGA3D_DXT3 = 17,
105 SVGA3D_DXT4 = 18, 107 SVGA3D_DXT4 = 18,
106 SVGA3D_DXT5 = 19, 108 SVGA3D_DXT5 = 19,
107 109
108 SVGA3D_BUMPU8V8 = 20, 110 SVGA3D_BUMPU8V8 = 20,
109 SVGA3D_BUMPL6V5U5 = 21, 111 SVGA3D_BUMPL6V5U5 = 21,
110 SVGA3D_BUMPX8L8V8U8 = 22, 112 SVGA3D_BUMPX8L8V8U8 = 22,
111 SVGA3D_BUMPL8V8U8 = 23, 113 SVGA3D_BUMPL8V8U8 = 23,
112 114
113 SVGA3D_ARGB_S10E5 = 24, /* 16-bit floating-point ARGB */ 115 SVGA3D_ARGB_S10E5 = 24, /* 16-bit floating-point ARGB */
114 SVGA3D_ARGB_S23E8 = 25, /* 32-bit floating-point ARGB */ 116 SVGA3D_ARGB_S23E8 = 25, /* 32-bit floating-point ARGB */
115 117
116 SVGA3D_A2R10G10B10 = 26, 118 SVGA3D_A2R10G10B10 = 26,
117 119
118 /* signed formats */ 120 /* signed formats */
119 SVGA3D_V8U8 = 27, 121 SVGA3D_V8U8 = 27,
120 SVGA3D_Q8W8V8U8 = 28, 122 SVGA3D_Q8W8V8U8 = 28,
121 SVGA3D_CxV8U8 = 29, 123 SVGA3D_CxV8U8 = 29,
122 124
123 /* mixed formats */ 125 /* mixed formats */
124 SVGA3D_X8L8V8U8 = 30, 126 SVGA3D_X8L8V8U8 = 30,
125 SVGA3D_A2W10V10U10 = 31, 127 SVGA3D_A2W10V10U10 = 31,
126 128
127 SVGA3D_ALPHA8 = 32, 129 SVGA3D_ALPHA8 = 32,
128 130
129 /* Single- and dual-component floating point formats */ 131 /* Single- and dual-component floating point formats */
130 SVGA3D_R_S10E5 = 33, 132 SVGA3D_R_S10E5 = 33,
131 SVGA3D_R_S23E8 = 34, 133 SVGA3D_R_S23E8 = 34,
132 SVGA3D_RG_S10E5 = 35, 134 SVGA3D_RG_S10E5 = 35,
133 SVGA3D_RG_S23E8 = 36, 135 SVGA3D_RG_S23E8 = 36,
134 136
135 /* 137 /*
136 * Any surface can be used as a buffer object, but SVGA3D_BUFFER is 138 * Any surface can be used as a buffer object, but SVGA3D_BUFFER is
137 * the most efficient format to use when creating new surfaces 139 * the most efficient format to use when creating new surfaces
138 * expressly for index or vertex data. 140 * expressly for index or vertex data.
139 */ 141 */
140 SVGA3D_BUFFER = 37,
141 142
142 SVGA3D_Z_D24X8 = 38, 143 SVGA3D_BUFFER = 37,
144
145 SVGA3D_Z_D24X8 = 38,
143 146
144 SVGA3D_V16U16 = 39, 147 SVGA3D_V16U16 = 39,
145 148
146 SVGA3D_G16R16 = 40, 149 SVGA3D_G16R16 = 40,
147 SVGA3D_A16B16G16R16 = 41, 150 SVGA3D_A16B16G16R16 = 41,
148 151
149 /* Packed Video formats */ 152 /* Packed Video formats */
150 SVGA3D_UYVY = 42, 153 SVGA3D_UYVY = 42,
151 SVGA3D_YUY2 = 43, 154 SVGA3D_YUY2 = 43,
155
156 /* Planar video formats */
157 SVGA3D_NV12 = 44,
158
159 /* Video format with alpha */
160 SVGA3D_AYUV = 45,
161
162 SVGA3D_BC4_UNORM = 108,
163 SVGA3D_BC5_UNORM = 111,
164
165 /* Advanced D3D9 depth formats. */
166 SVGA3D_Z_DF16 = 118,
167 SVGA3D_Z_DF24 = 119,
168 SVGA3D_Z_D24S8_INT = 120,
152 169
153 SVGA3D_FORMAT_MAX 170 SVGA3D_FORMAT_MAX
154} SVGA3dSurfaceFormat; 171} SVGA3dSurfaceFormat;
@@ -414,10 +431,20 @@ typedef enum {
414 SVGA3D_RS_SRCBLENDALPHA = 94, /* SVGA3dBlendOp */ 431 SVGA3D_RS_SRCBLENDALPHA = 94, /* SVGA3dBlendOp */
415 SVGA3D_RS_DSTBLENDALPHA = 95, /* SVGA3dBlendOp */ 432 SVGA3D_RS_DSTBLENDALPHA = 95, /* SVGA3dBlendOp */
416 SVGA3D_RS_BLENDEQUATIONALPHA = 96, /* SVGA3dBlendEquation */ 433 SVGA3D_RS_BLENDEQUATIONALPHA = 96, /* SVGA3dBlendEquation */
434 SVGA3D_RS_TRANSPARENCYANTIALIAS = 97, /* SVGA3dTransparencyAntialiasType */
435 SVGA3D_RS_LINEAA = 98, /* SVGA3dBool */
436 SVGA3D_RS_LINEWIDTH = 99, /* float */
417 SVGA3D_RS_MAX 437 SVGA3D_RS_MAX
418} SVGA3dRenderStateName; 438} SVGA3dRenderStateName;
419 439
420typedef enum { 440typedef enum {
441 SVGA3D_TRANSPARENCYANTIALIAS_NORMAL = 0,
442 SVGA3D_TRANSPARENCYANTIALIAS_ALPHATOCOVERAGE = 1,
443 SVGA3D_TRANSPARENCYANTIALIAS_SUPERSAMPLE = 2,
444 SVGA3D_TRANSPARENCYANTIALIAS_MAX
445} SVGA3dTransparencyAntialiasType;
446
447typedef enum {
421 SVGA3D_VERTEXMATERIAL_NONE = 0, /* Use the value in the current material */ 448 SVGA3D_VERTEXMATERIAL_NONE = 0, /* Use the value in the current material */
422 SVGA3D_VERTEXMATERIAL_DIFFUSE = 1, /* Use the value in the diffuse component */ 449 SVGA3D_VERTEXMATERIAL_DIFFUSE = 1, /* Use the value in the diffuse component */
423 SVGA3D_VERTEXMATERIAL_SPECULAR = 2, /* Use the value in the specular component */ 450 SVGA3D_VERTEXMATERIAL_SPECULAR = 2, /* Use the value in the specular component */
@@ -728,10 +755,10 @@ typedef enum {
728 SVGA3D_TEX_FILTER_NEAREST = 1, 755 SVGA3D_TEX_FILTER_NEAREST = 1,
729 SVGA3D_TEX_FILTER_LINEAR = 2, 756 SVGA3D_TEX_FILTER_LINEAR = 2,
730 SVGA3D_TEX_FILTER_ANISOTROPIC = 3, 757 SVGA3D_TEX_FILTER_ANISOTROPIC = 3,
731 SVGA3D_TEX_FILTER_FLATCUBIC = 4, // Deprecated, not implemented 758 SVGA3D_TEX_FILTER_FLATCUBIC = 4, /* Deprecated, not implemented */
732 SVGA3D_TEX_FILTER_GAUSSIANCUBIC = 5, // Deprecated, not implemented 759 SVGA3D_TEX_FILTER_GAUSSIANCUBIC = 5, /* Deprecated, not implemented */
733 SVGA3D_TEX_FILTER_PYRAMIDALQUAD = 6, // Not currently implemented 760 SVGA3D_TEX_FILTER_PYRAMIDALQUAD = 6, /* Not currently implemented */
734 SVGA3D_TEX_FILTER_GAUSSIANQUAD = 7, // Not currently implemented 761 SVGA3D_TEX_FILTER_GAUSSIANQUAD = 7, /* Not currently implemented */
735 SVGA3D_TEX_FILTER_MAX 762 SVGA3D_TEX_FILTER_MAX
736} SVGA3dTextureFilter; 763} SVGA3dTextureFilter;
737 764
@@ -799,19 +826,19 @@ typedef enum {
799 826
800typedef enum { 827typedef enum {
801 SVGA3D_DECLUSAGE_POSITION = 0, 828 SVGA3D_DECLUSAGE_POSITION = 0,
802 SVGA3D_DECLUSAGE_BLENDWEIGHT, // 1 829 SVGA3D_DECLUSAGE_BLENDWEIGHT, /* 1 */
803 SVGA3D_DECLUSAGE_BLENDINDICES, // 2 830 SVGA3D_DECLUSAGE_BLENDINDICES, /* 2 */
804 SVGA3D_DECLUSAGE_NORMAL, // 3 831 SVGA3D_DECLUSAGE_NORMAL, /* 3 */
805 SVGA3D_DECLUSAGE_PSIZE, // 4 832 SVGA3D_DECLUSAGE_PSIZE, /* 4 */
806 SVGA3D_DECLUSAGE_TEXCOORD, // 5 833 SVGA3D_DECLUSAGE_TEXCOORD, /* 5 */
807 SVGA3D_DECLUSAGE_TANGENT, // 6 834 SVGA3D_DECLUSAGE_TANGENT, /* 6 */
808 SVGA3D_DECLUSAGE_BINORMAL, // 7 835 SVGA3D_DECLUSAGE_BINORMAL, /* 7 */
809 SVGA3D_DECLUSAGE_TESSFACTOR, // 8 836 SVGA3D_DECLUSAGE_TESSFACTOR, /* 8 */
810 SVGA3D_DECLUSAGE_POSITIONT, // 9 837 SVGA3D_DECLUSAGE_POSITIONT, /* 9 */
811 SVGA3D_DECLUSAGE_COLOR, // 10 838 SVGA3D_DECLUSAGE_COLOR, /* 10 */
812 SVGA3D_DECLUSAGE_FOG, // 11 839 SVGA3D_DECLUSAGE_FOG, /* 11 */
813 SVGA3D_DECLUSAGE_DEPTH, // 12 840 SVGA3D_DECLUSAGE_DEPTH, /* 12 */
814 SVGA3D_DECLUSAGE_SAMPLE, // 13 841 SVGA3D_DECLUSAGE_SAMPLE, /* 13 */
815 SVGA3D_DECLUSAGE_MAX 842 SVGA3D_DECLUSAGE_MAX
816} SVGA3dDeclUsage; 843} SVGA3dDeclUsage;
817 844
@@ -819,10 +846,10 @@ typedef enum {
819 SVGA3D_DECLMETHOD_DEFAULT = 0, 846 SVGA3D_DECLMETHOD_DEFAULT = 0,
820 SVGA3D_DECLMETHOD_PARTIALU, 847 SVGA3D_DECLMETHOD_PARTIALU,
821 SVGA3D_DECLMETHOD_PARTIALV, 848 SVGA3D_DECLMETHOD_PARTIALV,
822 SVGA3D_DECLMETHOD_CROSSUV, // Normal 849 SVGA3D_DECLMETHOD_CROSSUV, /* Normal */
823 SVGA3D_DECLMETHOD_UV, 850 SVGA3D_DECLMETHOD_UV,
824 SVGA3D_DECLMETHOD_LOOKUP, // Lookup a displacement map 851 SVGA3D_DECLMETHOD_LOOKUP, /* Lookup a displacement map */
825 SVGA3D_DECLMETHOD_LOOKUPPRESAMPLED, // Lookup a pre-sampled displacement map 852 SVGA3D_DECLMETHOD_LOOKUPPRESAMPLED, /* Lookup a pre-sampled displacement map */
826} SVGA3dDeclMethod; 853} SVGA3dDeclMethod;
827 854
828typedef enum { 855typedef enum {
@@ -930,7 +957,6 @@ typedef enum {
930} SVGA3dCubeFace; 957} SVGA3dCubeFace;
931 958
932typedef enum { 959typedef enum {
933 SVGA3D_SHADERTYPE_COMPILED_DX8 = 0,
934 SVGA3D_SHADERTYPE_VS = 1, 960 SVGA3D_SHADERTYPE_VS = 1,
935 SVGA3D_SHADERTYPE_PS = 2, 961 SVGA3D_SHADERTYPE_PS = 2,
936 SVGA3D_SHADERTYPE_MAX 962 SVGA3D_SHADERTYPE_MAX
@@ -968,12 +994,18 @@ typedef enum {
968} SVGA3dTransferType; 994} SVGA3dTransferType;
969 995
970/* 996/*
971 * The maximum number vertex arrays we're guaranteed to support in 997 * The maximum number of vertex arrays we're guaranteed to support in
972 * SVGA_3D_CMD_DRAWPRIMITIVES. 998 * SVGA_3D_CMD_DRAWPRIMITIVES.
973 */ 999 */
974#define SVGA3D_MAX_VERTEX_ARRAYS 32 1000#define SVGA3D_MAX_VERTEX_ARRAYS 32
975 1001
976/* 1002/*
1003 * The maximum number of primitive ranges we're guaranteed to support
1004 * in SVGA_3D_CMD_DRAWPRIMITIVES.
1005 */
1006#define SVGA3D_MAX_DRAW_PRIMITIVE_RANGES 32
1007
1008/*
977 * Identifiers for commands in the command FIFO. 1009 * Identifiers for commands in the command FIFO.
978 * 1010 *
979 * IDs between 1000 and 1039 (inclusive) were used by obsolete versions of 1011 * IDs between 1000 and 1039 (inclusive) were used by obsolete versions of
@@ -990,7 +1022,7 @@ typedef enum {
990#define SVGA_3D_CMD_LEGACY_BASE 1000 1022#define SVGA_3D_CMD_LEGACY_BASE 1000
991#define SVGA_3D_CMD_BASE 1040 1023#define SVGA_3D_CMD_BASE 1040
992 1024
993#define SVGA_3D_CMD_SURFACE_DEFINE SVGA_3D_CMD_BASE + 0 1025#define SVGA_3D_CMD_SURFACE_DEFINE SVGA_3D_CMD_BASE + 0 /* Deprecated */
994#define SVGA_3D_CMD_SURFACE_DESTROY SVGA_3D_CMD_BASE + 1 1026#define SVGA_3D_CMD_SURFACE_DESTROY SVGA_3D_CMD_BASE + 1
995#define SVGA_3D_CMD_SURFACE_COPY SVGA_3D_CMD_BASE + 2 1027#define SVGA_3D_CMD_SURFACE_COPY SVGA_3D_CMD_BASE + 2
996#define SVGA_3D_CMD_SURFACE_STRETCHBLT SVGA_3D_CMD_BASE + 3 1028#define SVGA_3D_CMD_SURFACE_STRETCHBLT SVGA_3D_CMD_BASE + 3
@@ -1008,7 +1040,7 @@ typedef enum {
1008#define SVGA_3D_CMD_SETVIEWPORT SVGA_3D_CMD_BASE + 15 1040#define SVGA_3D_CMD_SETVIEWPORT SVGA_3D_CMD_BASE + 15
1009#define SVGA_3D_CMD_SETCLIPPLANE SVGA_3D_CMD_BASE + 16 1041#define SVGA_3D_CMD_SETCLIPPLANE SVGA_3D_CMD_BASE + 16
1010#define SVGA_3D_CMD_CLEAR SVGA_3D_CMD_BASE + 17 1042#define SVGA_3D_CMD_CLEAR SVGA_3D_CMD_BASE + 17
1011#define SVGA_3D_CMD_PRESENT SVGA_3D_CMD_BASE + 18 // Deprecated 1043#define SVGA_3D_CMD_PRESENT SVGA_3D_CMD_BASE + 18 /* Deprecated */
1012#define SVGA_3D_CMD_SHADER_DEFINE SVGA_3D_CMD_BASE + 19 1044#define SVGA_3D_CMD_SHADER_DEFINE SVGA_3D_CMD_BASE + 19
1013#define SVGA_3D_CMD_SHADER_DESTROY SVGA_3D_CMD_BASE + 20 1045#define SVGA_3D_CMD_SHADER_DESTROY SVGA_3D_CMD_BASE + 20
1014#define SVGA_3D_CMD_SET_SHADER SVGA_3D_CMD_BASE + 21 1046#define SVGA_3D_CMD_SET_SHADER SVGA_3D_CMD_BASE + 21
@@ -1018,9 +1050,13 @@ typedef enum {
1018#define SVGA_3D_CMD_BEGIN_QUERY SVGA_3D_CMD_BASE + 25 1050#define SVGA_3D_CMD_BEGIN_QUERY SVGA_3D_CMD_BASE + 25
1019#define SVGA_3D_CMD_END_QUERY SVGA_3D_CMD_BASE + 26 1051#define SVGA_3D_CMD_END_QUERY SVGA_3D_CMD_BASE + 26
1020#define SVGA_3D_CMD_WAIT_FOR_QUERY SVGA_3D_CMD_BASE + 27 1052#define SVGA_3D_CMD_WAIT_FOR_QUERY SVGA_3D_CMD_BASE + 27
1021#define SVGA_3D_CMD_PRESENT_READBACK SVGA_3D_CMD_BASE + 28 // Deprecated 1053#define SVGA_3D_CMD_PRESENT_READBACK SVGA_3D_CMD_BASE + 28 /* Deprecated */
1022#define SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN SVGA_3D_CMD_BASE + 29 1054#define SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN SVGA_3D_CMD_BASE + 29
1023#define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 30 1055#define SVGA_3D_CMD_SURFACE_DEFINE_V2 SVGA_3D_CMD_BASE + 30
1056#define SVGA_3D_CMD_GENERATE_MIPMAPS SVGA_3D_CMD_BASE + 31
1057#define SVGA_3D_CMD_ACTIVATE_SURFACE SVGA_3D_CMD_BASE + 40
1058#define SVGA_3D_CMD_DEACTIVATE_SURFACE SVGA_3D_CMD_BASE + 41
1059#define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 42
1024 1060
1025#define SVGA_3D_CMD_FUTURE_MAX 2000 1061#define SVGA_3D_CMD_FUTURE_MAX 2000
1026 1062
@@ -1031,9 +1067,9 @@ typedef enum {
1031typedef struct { 1067typedef struct {
1032 union { 1068 union {
1033 struct { 1069 struct {
1034 uint16 function; // SVGA3dFogFunction 1070 uint16 function; /* SVGA3dFogFunction */
1035 uint8 type; // SVGA3dFogType 1071 uint8 type; /* SVGA3dFogType */
1036 uint8 base; // SVGA3dFogBase 1072 uint8 base; /* SVGA3dFogBase */
1037 }; 1073 };
1038 uint32 uintValue; 1074 uint32 uintValue;
1039 }; 1075 };
@@ -1109,6 +1145,8 @@ typedef enum {
1109 SVGA3D_SURFACE_HINT_RENDERTARGET = (1 << 6), 1145 SVGA3D_SURFACE_HINT_RENDERTARGET = (1 << 6),
1110 SVGA3D_SURFACE_HINT_DEPTHSTENCIL = (1 << 7), 1146 SVGA3D_SURFACE_HINT_DEPTHSTENCIL = (1 << 7),
1111 SVGA3D_SURFACE_HINT_WRITEONLY = (1 << 8), 1147 SVGA3D_SURFACE_HINT_WRITEONLY = (1 << 8),
1148 SVGA3D_SURFACE_MASKABLE_ANTIALIAS = (1 << 9),
1149 SVGA3D_SURFACE_AUTOGENMIPMAPS = (1 << 10),
1112} SVGA3dSurfaceFlags; 1150} SVGA3dSurfaceFlags;
1113 1151
1114typedef 1152typedef
@@ -1121,6 +1159,12 @@ struct {
1121 uint32 sid; 1159 uint32 sid;
1122 SVGA3dSurfaceFlags surfaceFlags; 1160 SVGA3dSurfaceFlags surfaceFlags;
1123 SVGA3dSurfaceFormat format; 1161 SVGA3dSurfaceFormat format;
1162 /*
1163 * If surfaceFlags has SVGA3D_SURFACE_CUBEMAP bit set, all SVGA3dSurfaceFace
1164 * structures must have the same value of numMipLevels field.
1165 * Otherwise, all but the first SVGA3dSurfaceFace structures must have the
1166 * numMipLevels set to 0.
1167 */
1124 SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES]; 1168 SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];
1125 /* 1169 /*
1126 * Followed by an SVGA3dSize structure for each mip level in each face. 1170 * Followed by an SVGA3dSize structure for each mip level in each face.
@@ -1135,6 +1179,31 @@ struct {
1135 1179
1136typedef 1180typedef
1137struct { 1181struct {
1182 uint32 sid;
1183 SVGA3dSurfaceFlags surfaceFlags;
1184 SVGA3dSurfaceFormat format;
1185 /*
1186 * If surfaceFlags has SVGA3D_SURFACE_CUBEMAP bit set, all SVGA3dSurfaceFace
1187 * structures must have the same value of numMipLevels field.
1188 * Otherwise, all but the first SVGA3dSurfaceFace structures must have the
1189 * numMipLevels set to 0.
1190 */
1191 SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];
1192 uint32 multisampleCount;
1193 SVGA3dTextureFilter autogenFilter;
1194 /*
1195 * Followed by an SVGA3dSize structure for each mip level in each face.
1196 *
1197 * A note on surface sizes: Sizes are always specified in pixels,
1198 * even if the true surface size is not a multiple of the minimum
1199 * block size of the surface's format. For example, a 3x3x1 DXT1
1200 * compressed texture would actually be stored as a 4x4x1 image in
1201 * memory.
1202 */
1203} SVGA3dCmdDefineSurface_v2; /* SVGA_3D_CMD_SURFACE_DEFINE_V2 */
1204
1205typedef
1206struct {
1138 uint32 sid; 1207 uint32 sid;
1139} SVGA3dCmdDestroySurface; /* SVGA_3D_CMD_SURFACE_DESTROY */ 1208} SVGA3dCmdDestroySurface; /* SVGA_3D_CMD_SURFACE_DESTROY */
1140 1209
@@ -1474,10 +1543,12 @@ struct {
1474 * SVGA3dCmdDrawPrimitives structure. In order, 1543 * SVGA3dCmdDrawPrimitives structure. In order,
1475 * they are: 1544 * they are:
1476 * 1545 *
1477 * 1. SVGA3dVertexDecl, quantity 'numVertexDecls' 1546 * 1. SVGA3dVertexDecl, quantity 'numVertexDecls', but no more than
1478 * 2. SVGA3dPrimitiveRange, quantity 'numRanges' 1547 * SVGA3D_MAX_VERTEX_ARRAYS;
1548 * 2. SVGA3dPrimitiveRange, quantity 'numRanges', but no more than
1549 * SVGA3D_MAX_DRAW_PRIMITIVE_RANGES;
1479 * 3. Optionally, SVGA3dVertexDivisor, quantity 'numVertexDecls' (contains 1550 * 3. Optionally, SVGA3dVertexDivisor, quantity 'numVertexDecls' (contains
1480 * the frequency divisor for this the corresponding vertex decl) 1551 * the frequency divisor for the corresponding vertex decl).
1481 */ 1552 */
1482} SVGA3dCmdDrawPrimitives; /* SVGA_3D_CMD_DRAWPRIMITIVES */ 1553} SVGA3dCmdDrawPrimitives; /* SVGA_3D_CMD_DRAWPRIMITIVES */
1483 1554
@@ -1671,6 +1742,12 @@ struct {
1671 /* Clipping: zero or more SVGASignedRects follow */ 1742 /* Clipping: zero or more SVGASignedRects follow */
1672} SVGA3dCmdBlitSurfaceToScreen; /* SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN */ 1743} SVGA3dCmdBlitSurfaceToScreen; /* SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN */
1673 1744
1745typedef
1746struct {
1747 uint32 sid;
1748 SVGA3dTextureFilter filter;
1749} SVGA3dCmdGenerateMipmaps; /* SVGA_3D_CMD_GENERATE_MIPMAPS */
1750
1674 1751
1675/* 1752/*
1676 * Capability query index. 1753 * Capability query index.
@@ -1774,6 +1851,32 @@ typedef enum {
1774 SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16 = 67, 1851 SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16 = 67,
1775 SVGA3D_DEVCAP_SURFACEFMT_UYVY = 68, 1852 SVGA3D_DEVCAP_SURFACEFMT_UYVY = 68,
1776 SVGA3D_DEVCAP_SURFACEFMT_YUY2 = 69, 1853 SVGA3D_DEVCAP_SURFACEFMT_YUY2 = 69,
1854 SVGA3D_DEVCAP_MULTISAMPLE_NONMASKABLESAMPLES = 70,
1855 SVGA3D_DEVCAP_MULTISAMPLE_MASKABLESAMPLES = 71,
1856 SVGA3D_DEVCAP_ALPHATOCOVERAGE = 72,
1857 SVGA3D_DEVCAP_SUPERSAMPLE = 73,
1858 SVGA3D_DEVCAP_AUTOGENMIPMAPS = 74,
1859 SVGA3D_DEVCAP_SURFACEFMT_NV12 = 75,
1860 SVGA3D_DEVCAP_SURFACEFMT_AYUV = 76,
1861
1862 /*
1863 * This is the maximum number of SVGA context IDs that the guest
1864 * can define using SVGA_3D_CMD_CONTEXT_DEFINE.
1865 */
1866 SVGA3D_DEVCAP_MAX_CONTEXT_IDS = 77,
1867
1868 /*
1869 * This is the maximum number of SVGA surface IDs that the guest
1870 * can define using SVGA_3D_CMD_SURFACE_DEFINE*.
1871 */
1872 SVGA3D_DEVCAP_MAX_SURFACE_IDS = 78,
1873
1874 SVGA3D_DEVCAP_SURFACEFMT_Z_DF16 = 79,
1875 SVGA3D_DEVCAP_SURFACEFMT_Z_DF24 = 80,
1876 SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT = 81,
1877
1878 SVGA3D_DEVCAP_SURFACEFMT_BC4_UNORM = 82,
1879 SVGA3D_DEVCAP_SURFACEFMT_BC5_UNORM = 83,
1777 1880
1778 /* 1881 /*
1779 * Don't add new caps into the previous section; the values in this 1882 * Don't add new caps into the previous section; the values in this