mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
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>
This commit is contained in:
parent
4d79893788
commit
8d3713ea9e
4 changed files with 359 additions and 144 deletions
|
@ -57,7 +57,8 @@ typedef enum {
|
|||
SVGA3D_HWVERSION_WS6_B1 = SVGA3D_MAKE_HWVERSION(1, 1),
|
||||
SVGA3D_HWVERSION_FUSION_11 = SVGA3D_MAKE_HWVERSION(1, 4),
|
||||
SVGA3D_HWVERSION_WS65_B1 = SVGA3D_MAKE_HWVERSION(2, 0),
|
||||
SVGA3D_HWVERSION_CURRENT = SVGA3D_HWVERSION_WS65_B1,
|
||||
SVGA3D_HWVERSION_WS8_B1 = SVGA3D_MAKE_HWVERSION(2, 1),
|
||||
SVGA3D_HWVERSION_CURRENT = SVGA3D_HWVERSION_WS8_B1,
|
||||
} SVGA3dHardwareVersion;
|
||||
|
||||
/*
|
||||
|
@ -67,7 +68,8 @@ typedef enum {
|
|||
typedef uint32 SVGA3dBool; /* 32-bit Bool definition */
|
||||
#define SVGA3D_NUM_CLIPPLANES 6
|
||||
#define SVGA3D_MAX_SIMULTANEOUS_RENDER_TARGETS 8
|
||||
|
||||
#define SVGA3D_MAX_CONTEXT_IDS 256
|
||||
#define SVGA3D_MAX_SURFACE_IDS (32 * 1024)
|
||||
|
||||
/*
|
||||
* Surface formats.
|
||||
|
@ -137,6 +139,7 @@ typedef enum SVGA3dSurfaceFormat {
|
|||
* the most efficient format to use when creating new surfaces
|
||||
* expressly for index or vertex data.
|
||||
*/
|
||||
|
||||
SVGA3D_BUFFER = 37,
|
||||
|
||||
SVGA3D_Z_D24X8 = 38,
|
||||
|
@ -150,6 +153,20 @@ typedef enum SVGA3dSurfaceFormat {
|
|||
SVGA3D_UYVY = 42,
|
||||
SVGA3D_YUY2 = 43,
|
||||
|
||||
/* Planar video formats */
|
||||
SVGA3D_NV12 = 44,
|
||||
|
||||
/* Video format with alpha */
|
||||
SVGA3D_AYUV = 45,
|
||||
|
||||
SVGA3D_BC4_UNORM = 108,
|
||||
SVGA3D_BC5_UNORM = 111,
|
||||
|
||||
/* Advanced D3D9 depth formats. */
|
||||
SVGA3D_Z_DF16 = 118,
|
||||
SVGA3D_Z_DF24 = 119,
|
||||
SVGA3D_Z_D24S8_INT = 120,
|
||||
|
||||
SVGA3D_FORMAT_MAX
|
||||
} SVGA3dSurfaceFormat;
|
||||
|
||||
|
@ -414,9 +431,19 @@ typedef enum {
|
|||
SVGA3D_RS_SRCBLENDALPHA = 94, /* SVGA3dBlendOp */
|
||||
SVGA3D_RS_DSTBLENDALPHA = 95, /* SVGA3dBlendOp */
|
||||
SVGA3D_RS_BLENDEQUATIONALPHA = 96, /* SVGA3dBlendEquation */
|
||||
SVGA3D_RS_TRANSPARENCYANTIALIAS = 97, /* SVGA3dTransparencyAntialiasType */
|
||||
SVGA3D_RS_LINEAA = 98, /* SVGA3dBool */
|
||||
SVGA3D_RS_LINEWIDTH = 99, /* float */
|
||||
SVGA3D_RS_MAX
|
||||
} SVGA3dRenderStateName;
|
||||
|
||||
typedef enum {
|
||||
SVGA3D_TRANSPARENCYANTIALIAS_NORMAL = 0,
|
||||
SVGA3D_TRANSPARENCYANTIALIAS_ALPHATOCOVERAGE = 1,
|
||||
SVGA3D_TRANSPARENCYANTIALIAS_SUPERSAMPLE = 2,
|
||||
SVGA3D_TRANSPARENCYANTIALIAS_MAX
|
||||
} SVGA3dTransparencyAntialiasType;
|
||||
|
||||
typedef enum {
|
||||
SVGA3D_VERTEXMATERIAL_NONE = 0, /* Use the value in the current material */
|
||||
SVGA3D_VERTEXMATERIAL_DIFFUSE = 1, /* Use the value in the diffuse component */
|
||||
|
@ -728,10 +755,10 @@ typedef enum {
|
|||
SVGA3D_TEX_FILTER_NEAREST = 1,
|
||||
SVGA3D_TEX_FILTER_LINEAR = 2,
|
||||
SVGA3D_TEX_FILTER_ANISOTROPIC = 3,
|
||||
SVGA3D_TEX_FILTER_FLATCUBIC = 4, // Deprecated, not implemented
|
||||
SVGA3D_TEX_FILTER_GAUSSIANCUBIC = 5, // Deprecated, not implemented
|
||||
SVGA3D_TEX_FILTER_PYRAMIDALQUAD = 6, // Not currently implemented
|
||||
SVGA3D_TEX_FILTER_GAUSSIANQUAD = 7, // Not currently implemented
|
||||
SVGA3D_TEX_FILTER_FLATCUBIC = 4, /* Deprecated, not implemented */
|
||||
SVGA3D_TEX_FILTER_GAUSSIANCUBIC = 5, /* Deprecated, not implemented */
|
||||
SVGA3D_TEX_FILTER_PYRAMIDALQUAD = 6, /* Not currently implemented */
|
||||
SVGA3D_TEX_FILTER_GAUSSIANQUAD = 7, /* Not currently implemented */
|
||||
SVGA3D_TEX_FILTER_MAX
|
||||
} SVGA3dTextureFilter;
|
||||
|
||||
|
@ -799,19 +826,19 @@ typedef enum {
|
|||
|
||||
typedef enum {
|
||||
SVGA3D_DECLUSAGE_POSITION = 0,
|
||||
SVGA3D_DECLUSAGE_BLENDWEIGHT, // 1
|
||||
SVGA3D_DECLUSAGE_BLENDINDICES, // 2
|
||||
SVGA3D_DECLUSAGE_NORMAL, // 3
|
||||
SVGA3D_DECLUSAGE_PSIZE, // 4
|
||||
SVGA3D_DECLUSAGE_TEXCOORD, // 5
|
||||
SVGA3D_DECLUSAGE_TANGENT, // 6
|
||||
SVGA3D_DECLUSAGE_BINORMAL, // 7
|
||||
SVGA3D_DECLUSAGE_TESSFACTOR, // 8
|
||||
SVGA3D_DECLUSAGE_POSITIONT, // 9
|
||||
SVGA3D_DECLUSAGE_COLOR, // 10
|
||||
SVGA3D_DECLUSAGE_FOG, // 11
|
||||
SVGA3D_DECLUSAGE_DEPTH, // 12
|
||||
SVGA3D_DECLUSAGE_SAMPLE, // 13
|
||||
SVGA3D_DECLUSAGE_BLENDWEIGHT, /* 1 */
|
||||
SVGA3D_DECLUSAGE_BLENDINDICES, /* 2 */
|
||||
SVGA3D_DECLUSAGE_NORMAL, /* 3 */
|
||||
SVGA3D_DECLUSAGE_PSIZE, /* 4 */
|
||||
SVGA3D_DECLUSAGE_TEXCOORD, /* 5 */
|
||||
SVGA3D_DECLUSAGE_TANGENT, /* 6 */
|
||||
SVGA3D_DECLUSAGE_BINORMAL, /* 7 */
|
||||
SVGA3D_DECLUSAGE_TESSFACTOR, /* 8 */
|
||||
SVGA3D_DECLUSAGE_POSITIONT, /* 9 */
|
||||
SVGA3D_DECLUSAGE_COLOR, /* 10 */
|
||||
SVGA3D_DECLUSAGE_FOG, /* 11 */
|
||||
SVGA3D_DECLUSAGE_DEPTH, /* 12 */
|
||||
SVGA3D_DECLUSAGE_SAMPLE, /* 13 */
|
||||
SVGA3D_DECLUSAGE_MAX
|
||||
} SVGA3dDeclUsage;
|
||||
|
||||
|
@ -819,10 +846,10 @@ typedef enum {
|
|||
SVGA3D_DECLMETHOD_DEFAULT = 0,
|
||||
SVGA3D_DECLMETHOD_PARTIALU,
|
||||
SVGA3D_DECLMETHOD_PARTIALV,
|
||||
SVGA3D_DECLMETHOD_CROSSUV, // Normal
|
||||
SVGA3D_DECLMETHOD_CROSSUV, /* Normal */
|
||||
SVGA3D_DECLMETHOD_UV,
|
||||
SVGA3D_DECLMETHOD_LOOKUP, // Lookup a displacement map
|
||||
SVGA3D_DECLMETHOD_LOOKUPPRESAMPLED, // Lookup a pre-sampled displacement map
|
||||
SVGA3D_DECLMETHOD_LOOKUP, /* Lookup a displacement map */
|
||||
SVGA3D_DECLMETHOD_LOOKUPPRESAMPLED, /* Lookup a pre-sampled displacement map */
|
||||
} SVGA3dDeclMethod;
|
||||
|
||||
typedef enum {
|
||||
|
@ -930,7 +957,6 @@ typedef enum {
|
|||
} SVGA3dCubeFace;
|
||||
|
||||
typedef enum {
|
||||
SVGA3D_SHADERTYPE_COMPILED_DX8 = 0,
|
||||
SVGA3D_SHADERTYPE_VS = 1,
|
||||
SVGA3D_SHADERTYPE_PS = 2,
|
||||
SVGA3D_SHADERTYPE_MAX
|
||||
|
@ -968,11 +994,17 @@ typedef enum {
|
|||
} SVGA3dTransferType;
|
||||
|
||||
/*
|
||||
* The maximum number vertex arrays we're guaranteed to support in
|
||||
* The maximum number of vertex arrays we're guaranteed to support in
|
||||
* SVGA_3D_CMD_DRAWPRIMITIVES.
|
||||
*/
|
||||
#define SVGA3D_MAX_VERTEX_ARRAYS 32
|
||||
|
||||
/*
|
||||
* The maximum number of primitive ranges we're guaranteed to support
|
||||
* in SVGA_3D_CMD_DRAWPRIMITIVES.
|
||||
*/
|
||||
#define SVGA3D_MAX_DRAW_PRIMITIVE_RANGES 32
|
||||
|
||||
/*
|
||||
* Identifiers for commands in the command FIFO.
|
||||
*
|
||||
|
@ -990,7 +1022,7 @@ typedef enum {
|
|||
#define SVGA_3D_CMD_LEGACY_BASE 1000
|
||||
#define SVGA_3D_CMD_BASE 1040
|
||||
|
||||
#define SVGA_3D_CMD_SURFACE_DEFINE SVGA_3D_CMD_BASE + 0
|
||||
#define SVGA_3D_CMD_SURFACE_DEFINE SVGA_3D_CMD_BASE + 0 /* Deprecated */
|
||||
#define SVGA_3D_CMD_SURFACE_DESTROY SVGA_3D_CMD_BASE + 1
|
||||
#define SVGA_3D_CMD_SURFACE_COPY SVGA_3D_CMD_BASE + 2
|
||||
#define SVGA_3D_CMD_SURFACE_STRETCHBLT SVGA_3D_CMD_BASE + 3
|
||||
|
@ -1008,7 +1040,7 @@ typedef enum {
|
|||
#define SVGA_3D_CMD_SETVIEWPORT SVGA_3D_CMD_BASE + 15
|
||||
#define SVGA_3D_CMD_SETCLIPPLANE SVGA_3D_CMD_BASE + 16
|
||||
#define SVGA_3D_CMD_CLEAR SVGA_3D_CMD_BASE + 17
|
||||
#define SVGA_3D_CMD_PRESENT SVGA_3D_CMD_BASE + 18 // Deprecated
|
||||
#define SVGA_3D_CMD_PRESENT SVGA_3D_CMD_BASE + 18 /* Deprecated */
|
||||
#define SVGA_3D_CMD_SHADER_DEFINE SVGA_3D_CMD_BASE + 19
|
||||
#define SVGA_3D_CMD_SHADER_DESTROY SVGA_3D_CMD_BASE + 20
|
||||
#define SVGA_3D_CMD_SET_SHADER SVGA_3D_CMD_BASE + 21
|
||||
|
@ -1018,9 +1050,13 @@ typedef enum {
|
|||
#define SVGA_3D_CMD_BEGIN_QUERY SVGA_3D_CMD_BASE + 25
|
||||
#define SVGA_3D_CMD_END_QUERY SVGA_3D_CMD_BASE + 26
|
||||
#define SVGA_3D_CMD_WAIT_FOR_QUERY SVGA_3D_CMD_BASE + 27
|
||||
#define SVGA_3D_CMD_PRESENT_READBACK SVGA_3D_CMD_BASE + 28 // Deprecated
|
||||
#define SVGA_3D_CMD_PRESENT_READBACK SVGA_3D_CMD_BASE + 28 /* Deprecated */
|
||||
#define SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN SVGA_3D_CMD_BASE + 29
|
||||
#define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 30
|
||||
#define SVGA_3D_CMD_SURFACE_DEFINE_V2 SVGA_3D_CMD_BASE + 30
|
||||
#define SVGA_3D_CMD_GENERATE_MIPMAPS SVGA_3D_CMD_BASE + 31
|
||||
#define SVGA_3D_CMD_ACTIVATE_SURFACE SVGA_3D_CMD_BASE + 40
|
||||
#define SVGA_3D_CMD_DEACTIVATE_SURFACE SVGA_3D_CMD_BASE + 41
|
||||
#define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 42
|
||||
|
||||
#define SVGA_3D_CMD_FUTURE_MAX 2000
|
||||
|
||||
|
@ -1031,9 +1067,9 @@ typedef enum {
|
|||
typedef struct {
|
||||
union {
|
||||
struct {
|
||||
uint16 function; // SVGA3dFogFunction
|
||||
uint8 type; // SVGA3dFogType
|
||||
uint8 base; // SVGA3dFogBase
|
||||
uint16 function; /* SVGA3dFogFunction */
|
||||
uint8 type; /* SVGA3dFogType */
|
||||
uint8 base; /* SVGA3dFogBase */
|
||||
};
|
||||
uint32 uintValue;
|
||||
};
|
||||
|
@ -1109,6 +1145,8 @@ typedef enum {
|
|||
SVGA3D_SURFACE_HINT_RENDERTARGET = (1 << 6),
|
||||
SVGA3D_SURFACE_HINT_DEPTHSTENCIL = (1 << 7),
|
||||
SVGA3D_SURFACE_HINT_WRITEONLY = (1 << 8),
|
||||
SVGA3D_SURFACE_MASKABLE_ANTIALIAS = (1 << 9),
|
||||
SVGA3D_SURFACE_AUTOGENMIPMAPS = (1 << 10),
|
||||
} SVGA3dSurfaceFlags;
|
||||
|
||||
typedef
|
||||
|
@ -1121,6 +1159,12 @@ struct {
|
|||
uint32 sid;
|
||||
SVGA3dSurfaceFlags surfaceFlags;
|
||||
SVGA3dSurfaceFormat format;
|
||||
/*
|
||||
* If surfaceFlags has SVGA3D_SURFACE_CUBEMAP bit set, all SVGA3dSurfaceFace
|
||||
* structures must have the same value of numMipLevels field.
|
||||
* Otherwise, all but the first SVGA3dSurfaceFace structures must have the
|
||||
* numMipLevels set to 0.
|
||||
*/
|
||||
SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];
|
||||
/*
|
||||
* Followed by an SVGA3dSize structure for each mip level in each face.
|
||||
|
@ -1133,6 +1177,31 @@ struct {
|
|||
*/
|
||||
} SVGA3dCmdDefineSurface; /* SVGA_3D_CMD_SURFACE_DEFINE */
|
||||
|
||||
typedef
|
||||
struct {
|
||||
uint32 sid;
|
||||
SVGA3dSurfaceFlags surfaceFlags;
|
||||
SVGA3dSurfaceFormat format;
|
||||
/*
|
||||
* If surfaceFlags has SVGA3D_SURFACE_CUBEMAP bit set, all SVGA3dSurfaceFace
|
||||
* structures must have the same value of numMipLevels field.
|
||||
* Otherwise, all but the first SVGA3dSurfaceFace structures must have the
|
||||
* numMipLevels set to 0.
|
||||
*/
|
||||
SVGA3dSurfaceFace face[SVGA3D_MAX_SURFACE_FACES];
|
||||
uint32 multisampleCount;
|
||||
SVGA3dTextureFilter autogenFilter;
|
||||
/*
|
||||
* Followed by an SVGA3dSize structure for each mip level in each face.
|
||||
*
|
||||
* A note on surface sizes: Sizes are always specified in pixels,
|
||||
* even if the true surface size is not a multiple of the minimum
|
||||
* block size of the surface's format. For example, a 3x3x1 DXT1
|
||||
* compressed texture would actually be stored as a 4x4x1 image in
|
||||
* memory.
|
||||
*/
|
||||
} SVGA3dCmdDefineSurface_v2; /* SVGA_3D_CMD_SURFACE_DEFINE_V2 */
|
||||
|
||||
typedef
|
||||
struct {
|
||||
uint32 sid;
|
||||
|
@ -1474,10 +1543,12 @@ struct {
|
|||
* SVGA3dCmdDrawPrimitives structure. In order,
|
||||
* they are:
|
||||
*
|
||||
* 1. SVGA3dVertexDecl, quantity 'numVertexDecls'
|
||||
* 2. SVGA3dPrimitiveRange, quantity 'numRanges'
|
||||
* 1. SVGA3dVertexDecl, quantity 'numVertexDecls', but no more than
|
||||
* SVGA3D_MAX_VERTEX_ARRAYS;
|
||||
* 2. SVGA3dPrimitiveRange, quantity 'numRanges', but no more than
|
||||
* SVGA3D_MAX_DRAW_PRIMITIVE_RANGES;
|
||||
* 3. Optionally, SVGA3dVertexDivisor, quantity 'numVertexDecls' (contains
|
||||
* the frequency divisor for this the corresponding vertex decl)
|
||||
* the frequency divisor for the corresponding vertex decl).
|
||||
*/
|
||||
} SVGA3dCmdDrawPrimitives; /* SVGA_3D_CMD_DRAWPRIMITIVES */
|
||||
|
||||
|
@ -1671,6 +1742,12 @@ struct {
|
|||
/* Clipping: zero or more SVGASignedRects follow */
|
||||
} SVGA3dCmdBlitSurfaceToScreen; /* SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN */
|
||||
|
||||
typedef
|
||||
struct {
|
||||
uint32 sid;
|
||||
SVGA3dTextureFilter filter;
|
||||
} SVGA3dCmdGenerateMipmaps; /* SVGA_3D_CMD_GENERATE_MIPMAPS */
|
||||
|
||||
|
||||
/*
|
||||
* Capability query index.
|
||||
|
@ -1774,6 +1851,32 @@ typedef enum {
|
|||
SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16 = 67,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_UYVY = 68,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_YUY2 = 69,
|
||||
SVGA3D_DEVCAP_MULTISAMPLE_NONMASKABLESAMPLES = 70,
|
||||
SVGA3D_DEVCAP_MULTISAMPLE_MASKABLESAMPLES = 71,
|
||||
SVGA3D_DEVCAP_ALPHATOCOVERAGE = 72,
|
||||
SVGA3D_DEVCAP_SUPERSAMPLE = 73,
|
||||
SVGA3D_DEVCAP_AUTOGENMIPMAPS = 74,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_NV12 = 75,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_AYUV = 76,
|
||||
|
||||
/*
|
||||
* This is the maximum number of SVGA context IDs that the guest
|
||||
* can define using SVGA_3D_CMD_CONTEXT_DEFINE.
|
||||
*/
|
||||
SVGA3D_DEVCAP_MAX_CONTEXT_IDS = 77,
|
||||
|
||||
/*
|
||||
* This is the maximum number of SVGA surface IDs that the guest
|
||||
* can define using SVGA_3D_CMD_SURFACE_DEFINE*.
|
||||
*/
|
||||
SVGA3D_DEVCAP_MAX_SURFACE_IDS = 78,
|
||||
|
||||
SVGA3D_DEVCAP_SURFACEFMT_Z_DF16 = 79,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_Z_DF24 = 80,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT = 81,
|
||||
|
||||
SVGA3D_DEVCAP_SURFACEFMT_BC4_UNORM = 82,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_BC5_UNORM = 83,
|
||||
|
||||
/*
|
||||
* Don't add new caps into the previous section; the values in this
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
*/
|
||||
|
||||
#define SVGA_ESCAPE_VMWARE_HINT 0x00030000
|
||||
#define SVGA_ESCAPE_VMWARE_HINT_FULLSCREEN 0x00030001 // Deprecated
|
||||
#define SVGA_ESCAPE_VMWARE_HINT_FULLSCREEN 0x00030001 /* Deprecated */
|
||||
|
||||
typedef
|
||||
struct {
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
* Video formats we support
|
||||
*/
|
||||
|
||||
#define VMWARE_FOURCC_YV12 0x32315659 // 'Y' 'V' '1' '2'
|
||||
#define VMWARE_FOURCC_YUY2 0x32595559 // 'Y' 'U' 'Y' '2'
|
||||
#define VMWARE_FOURCC_UYVY 0x59565955 // 'U' 'Y' 'V' 'Y'
|
||||
#define VMWARE_FOURCC_YV12 0x32315659 /* 'Y' 'V' '1' '2' */
|
||||
#define VMWARE_FOURCC_YUY2 0x32595559 /* 'Y' 'U' 'Y' '2' */
|
||||
#define VMWARE_FOURCC_UYVY 0x59565955 /* 'U' 'Y' 'V' 'Y' */
|
||||
|
||||
typedef enum {
|
||||
SVGA_OVERLAY_FORMAT_INVALID = 0,
|
||||
|
@ -68,7 +68,7 @@ struct SVGAEscapeVideoSetRegs {
|
|||
uint32 streamId;
|
||||
} header;
|
||||
|
||||
// May include zero or more items.
|
||||
/* May include zero or more items. */
|
||||
struct {
|
||||
uint32 registerId;
|
||||
uint32 value;
|
||||
|
@ -134,12 +134,12 @@ struct {
|
|||
*/
|
||||
|
||||
static inline bool
|
||||
VMwareVideoGetAttributes(const SVGAOverlayFormat format, // IN
|
||||
uint32 *width, // IN / OUT
|
||||
uint32 *height, // IN / OUT
|
||||
uint32 *size, // OUT
|
||||
uint32 *pitches, // OUT (optional)
|
||||
uint32 *offsets) // OUT (optional)
|
||||
VMwareVideoGetAttributes(const SVGAOverlayFormat format, /* IN */
|
||||
uint32 *width, /* IN / OUT */
|
||||
uint32 *height, /* IN / OUT */
|
||||
uint32 *size, /* OUT */
|
||||
uint32 *pitches, /* OUT (optional) */
|
||||
uint32 *offsets) /* OUT (optional) */
|
||||
{
|
||||
int tmp;
|
||||
|
||||
|
@ -198,4 +198,4 @@ VMwareVideoGetAttributes(const SVGAOverlayFormat format, // IN
|
|||
return true;
|
||||
}
|
||||
|
||||
#endif // _SVGA_OVERLAY_H_
|
||||
#endif /* _SVGA_OVERLAY_H_ */
|
||||
|
|
|
@ -276,7 +276,7 @@ enum {
|
|||
* possible.
|
||||
*/
|
||||
#define SVGA_GMR_NULL ((uint32) -1)
|
||||
#define SVGA_GMR_FRAMEBUFFER ((uint32) -2) // Guest Framebuffer (GFB)
|
||||
#define SVGA_GMR_FRAMEBUFFER ((uint32) -2) /* Guest Framebuffer (GFB) */
|
||||
|
||||
typedef
|
||||
struct SVGAGuestMemDescriptor {
|
||||
|
@ -317,13 +317,35 @@ struct SVGAGMRImageFormat {
|
|||
struct {
|
||||
uint32 bitsPerPixel : 8;
|
||||
uint32 colorDepth : 8;
|
||||
uint32 reserved : 16; // Must be zero
|
||||
uint32 reserved : 16; /* Must be zero */
|
||||
};
|
||||
|
||||
uint32 value;
|
||||
};
|
||||
} SVGAGMRImageFormat;
|
||||
|
||||
typedef
|
||||
struct SVGAGuestImage {
|
||||
SVGAGuestPtr ptr;
|
||||
|
||||
/*
|
||||
* A note on interpretation of pitch: This value of pitch is the
|
||||
* number of bytes between vertically adjacent image
|
||||
* blocks. Normally this is the number of bytes between the first
|
||||
* pixel of two adjacent scanlines. With compressed textures,
|
||||
* however, this may represent the number of bytes between
|
||||
* compression blocks rather than between rows of pixels.
|
||||
*
|
||||
* XXX: Compressed textures currently must be tightly packed in guest memory.
|
||||
*
|
||||
* If the image is 1-dimensional, pitch is ignored.
|
||||
*
|
||||
* If 'pitch' is zero, the SVGA3D device calculates a pitch value
|
||||
* assuming each row of blocks is tightly packed.
|
||||
*/
|
||||
uint32 pitch;
|
||||
} SVGAGuestImage;
|
||||
|
||||
/*
|
||||
* SVGAColorBGRX --
|
||||
*
|
||||
|
@ -339,7 +361,7 @@ struct SVGAColorBGRX {
|
|||
uint32 b : 8;
|
||||
uint32 g : 8;
|
||||
uint32 r : 8;
|
||||
uint32 x : 8; // Unused
|
||||
uint32 x : 8; /* Unused */
|
||||
};
|
||||
|
||||
uint32 value;
|
||||
|
@ -395,16 +417,16 @@ struct SVGASignedPoint {
|
|||
#define SVGA_CAP_NONE 0x00000000
|
||||
#define SVGA_CAP_RECT_COPY 0x00000002
|
||||
#define SVGA_CAP_CURSOR 0x00000020
|
||||
#define SVGA_CAP_CURSOR_BYPASS 0x00000040 // Legacy (Use Cursor Bypass 3 instead)
|
||||
#define SVGA_CAP_CURSOR_BYPASS_2 0x00000080 // Legacy (Use Cursor Bypass 3 instead)
|
||||
#define SVGA_CAP_CURSOR_BYPASS 0x00000040 /* Legacy (Use Cursor Bypass 3 instead) */
|
||||
#define SVGA_CAP_CURSOR_BYPASS_2 0x00000080 /* Legacy (Use Cursor Bypass 3 instead) */
|
||||
#define SVGA_CAP_8BIT_EMULATION 0x00000100
|
||||
#define SVGA_CAP_ALPHA_CURSOR 0x00000200
|
||||
#define SVGA_CAP_3D 0x00004000
|
||||
#define SVGA_CAP_EXTENDED_FIFO 0x00008000
|
||||
#define SVGA_CAP_MULTIMON 0x00010000 // Legacy multi-monitor support
|
||||
#define SVGA_CAP_MULTIMON 0x00010000 /* Legacy multi-monitor support */
|
||||
#define SVGA_CAP_PITCHLOCK 0x00020000
|
||||
#define SVGA_CAP_IRQMASK 0x00040000
|
||||
#define SVGA_CAP_DISPLAY_TOPOLOGY 0x00080000 // Legacy multi-monitor support
|
||||
#define SVGA_CAP_DISPLAY_TOPOLOGY 0x00080000 /* Legacy multi-monitor support */
|
||||
#define SVGA_CAP_GMR 0x00100000
|
||||
#define SVGA_CAP_TRACES 0x00200000
|
||||
#define SVGA_CAP_GMR2 0x00400000
|
||||
|
@ -453,7 +475,7 @@ enum {
|
|||
|
||||
SVGA_FIFO_CAPABILITIES = 4,
|
||||
SVGA_FIFO_FLAGS,
|
||||
// Valid with SVGA_FIFO_CAP_FENCE:
|
||||
/* Valid with SVGA_FIFO_CAP_FENCE: */
|
||||
SVGA_FIFO_FENCE,
|
||||
|
||||
/*
|
||||
|
@ -466,32 +488,46 @@ enum {
|
|||
* extended FIFO.
|
||||
*/
|
||||
|
||||
// Valid if exists (i.e. if extended FIFO enabled):
|
||||
/* Valid if exists (i.e. if extended FIFO enabled): */
|
||||
SVGA_FIFO_3D_HWVERSION, /* See SVGA3dHardwareVersion in svga3d_reg.h */
|
||||
// Valid with SVGA_FIFO_CAP_PITCHLOCK:
|
||||
/* Valid with SVGA_FIFO_CAP_PITCHLOCK: */
|
||||
SVGA_FIFO_PITCHLOCK,
|
||||
|
||||
// Valid with SVGA_FIFO_CAP_CURSOR_BYPASS_3:
|
||||
/* Valid with SVGA_FIFO_CAP_CURSOR_BYPASS_3: */
|
||||
SVGA_FIFO_CURSOR_ON, /* Cursor bypass 3 show/hide register */
|
||||
SVGA_FIFO_CURSOR_X, /* Cursor bypass 3 x register */
|
||||
SVGA_FIFO_CURSOR_Y, /* Cursor bypass 3 y register */
|
||||
SVGA_FIFO_CURSOR_COUNT, /* Incremented when any of the other 3 change */
|
||||
SVGA_FIFO_CURSOR_LAST_UPDATED,/* Last time the host updated the cursor */
|
||||
|
||||
// Valid with SVGA_FIFO_CAP_RESERVE:
|
||||
/* Valid with SVGA_FIFO_CAP_RESERVE: */
|
||||
SVGA_FIFO_RESERVED, /* Bytes past NEXT_CMD with real contents */
|
||||
|
||||
/*
|
||||
* Valid with SVGA_FIFO_CAP_SCREEN_OBJECT:
|
||||
* Valid with SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2:
|
||||
*
|
||||
* By default this is SVGA_ID_INVALID, to indicate that the cursor
|
||||
* coordinates are specified relative to the virtual root. If this
|
||||
* is set to a specific screen ID, cursor position is reinterpreted
|
||||
* as a signed offset relative to that screen's origin. This is the
|
||||
* only way to place the cursor on a non-rooted screen.
|
||||
* as a signed offset relative to that screen's origin.
|
||||
*/
|
||||
SVGA_FIFO_CURSOR_SCREEN_ID,
|
||||
|
||||
/*
|
||||
* Valid with SVGA_FIFO_CAP_DEAD
|
||||
*
|
||||
* An arbitrary value written by the host, drivers should not use it.
|
||||
*/
|
||||
SVGA_FIFO_DEAD,
|
||||
|
||||
/*
|
||||
* Valid with SVGA_FIFO_CAP_3D_HWVERSION_REVISED:
|
||||
*
|
||||
* Contains 3D HWVERSION (see SVGA3dHardwareVersion in svga3d_reg.h)
|
||||
* on platforms that can enforce graphics resource limits.
|
||||
*/
|
||||
SVGA_FIFO_3D_HWVERSION_REVISED,
|
||||
|
||||
/*
|
||||
* XXX: The gap here, up until SVGA_FIFO_3D_CAPS, can be used for new
|
||||
* registers, but this must be done carefully and with judicious use of
|
||||
|
@ -530,7 +566,7 @@ enum {
|
|||
* sets SVGA_FIFO_MIN high enough to leave room for them.
|
||||
*/
|
||||
|
||||
// Valid if register exists:
|
||||
/* Valid if register exists: */
|
||||
SVGA_FIFO_GUEST_3D_HWVERSION, /* Guest driver's 3D version */
|
||||
SVGA_FIFO_FENCE_GOAL, /* Matching target for SVGA_IRQFLAG_FENCE_GOAL */
|
||||
SVGA_FIFO_BUSY, /* See "FIFO Synchronization Registers" */
|
||||
|
@ -731,6 +767,37 @@ enum {
|
|||
*
|
||||
* - When a screen is resized, either using Screen Object commands or
|
||||
* legacy multimon registers, its contents are preserved.
|
||||
*
|
||||
* SVGA_FIFO_CAP_GMR2 --
|
||||
*
|
||||
* Provides new commands to define and remap guest memory regions (GMR).
|
||||
*
|
||||
* New 2D commands:
|
||||
* DEFINE_GMR2, REMAP_GMR2.
|
||||
*
|
||||
* SVGA_FIFO_CAP_3D_HWVERSION_REVISED --
|
||||
*
|
||||
* Indicates new register SVGA_FIFO_3D_HWVERSION_REVISED exists.
|
||||
* This register may replace SVGA_FIFO_3D_HWVERSION on platforms
|
||||
* that enforce graphics resource limits. This allows the platform
|
||||
* to clear SVGA_FIFO_3D_HWVERSION and disable 3D in legacy guest
|
||||
* drivers that do not limit their resources.
|
||||
*
|
||||
* Note this is an alias to SVGA_FIFO_CAP_GMR2 because these indicators
|
||||
* are codependent (and thus we use a single capability bit).
|
||||
*
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT_2 --
|
||||
*
|
||||
* Modifies the DEFINE_SCREEN command to include a guest provided
|
||||
* backing store in GMR memory and the bytesPerLine for the backing
|
||||
* store. This capability requires the use of a backing store when
|
||||
* creating screen objects. However if SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* is present then backing stores are optional.
|
||||
*
|
||||
* SVGA_FIFO_CAP_DEAD --
|
||||
*
|
||||
* Drivers should not use this cap bit. This cap bit can not be
|
||||
* reused since some hosts already expose it.
|
||||
*/
|
||||
|
||||
#define SVGA_FIFO_CAP_NONE 0
|
||||
|
@ -742,6 +809,10 @@ enum {
|
|||
#define SVGA_FIFO_CAP_ESCAPE (1<<5)
|
||||
#define SVGA_FIFO_CAP_RESERVE (1<<6)
|
||||
#define SVGA_FIFO_CAP_SCREEN_OBJECT (1<<7)
|
||||
#define SVGA_FIFO_CAP_GMR2 (1<<8)
|
||||
#define SVGA_FIFO_CAP_3D_HWVERSION_REVISED SVGA_FIFO_CAP_GMR2
|
||||
#define SVGA_FIFO_CAP_SCREEN_OBJECT_2 (1<<9)
|
||||
#define SVGA_FIFO_CAP_DEAD (1<<10)
|
||||
|
||||
|
||||
/*
|
||||
|
@ -752,7 +823,7 @@ enum {
|
|||
|
||||
#define SVGA_FIFO_FLAG_NONE 0
|
||||
#define SVGA_FIFO_FLAG_ACCELFRONT (1<<0)
|
||||
#define SVGA_FIFO_FLAG_RESERVED (1<<31) // Internal use only
|
||||
#define SVGA_FIFO_FLAG_RESERVED (1<<31) /* Internal use only */
|
||||
|
||||
/*
|
||||
* FIFO reservation sentinel value
|
||||
|
@ -785,22 +856,22 @@ enum {
|
|||
SVGA_VIDEO_DATA_OFFSET,
|
||||
SVGA_VIDEO_FORMAT,
|
||||
SVGA_VIDEO_COLORKEY,
|
||||
SVGA_VIDEO_SIZE, // Deprecated
|
||||
SVGA_VIDEO_SIZE, /* Deprecated */
|
||||
SVGA_VIDEO_WIDTH,
|
||||
SVGA_VIDEO_HEIGHT,
|
||||
SVGA_VIDEO_SRC_X,
|
||||
SVGA_VIDEO_SRC_Y,
|
||||
SVGA_VIDEO_SRC_WIDTH,
|
||||
SVGA_VIDEO_SRC_HEIGHT,
|
||||
SVGA_VIDEO_DST_X, // Signed int32
|
||||
SVGA_VIDEO_DST_Y, // Signed int32
|
||||
SVGA_VIDEO_DST_X, /* Signed int32 */
|
||||
SVGA_VIDEO_DST_Y, /* Signed int32 */
|
||||
SVGA_VIDEO_DST_WIDTH,
|
||||
SVGA_VIDEO_DST_HEIGHT,
|
||||
SVGA_VIDEO_PITCH_1,
|
||||
SVGA_VIDEO_PITCH_2,
|
||||
SVGA_VIDEO_PITCH_3,
|
||||
SVGA_VIDEO_DATA_GMRID, // Optional, defaults to SVGA_GMR_FRAMEBUFFER
|
||||
SVGA_VIDEO_DST_SCREEN_ID, // Optional, defaults to virtual coords (SVGA_ID_INVALID)
|
||||
SVGA_VIDEO_DATA_GMRID, /* Optional, defaults to SVGA_GMR_FRAMEBUFFER */
|
||||
SVGA_VIDEO_DST_SCREEN_ID, /* Optional, defaults to virtual coords (SVGA_ID_INVALID) */
|
||||
SVGA_VIDEO_NUM_REGS
|
||||
};
|
||||
|
||||
|
@ -851,15 +922,51 @@ typedef struct SVGAOverlayUnit {
|
|||
* compatibility. New flags can be added, and the struct may grow,
|
||||
* but existing fields must retain their meaning.
|
||||
*
|
||||
* Added with SVGA_FIFO_CAP_SCREEN_OBJECT_2 are required fields of
|
||||
* a SVGAGuestPtr that is used to back the screen contents. This
|
||||
* memory must come from the GFB. The guest is not allowed to
|
||||
* access the memory and doing so will have undefined results. The
|
||||
* backing store is required to be page aligned and the size is
|
||||
* padded to the next page boundry. The number of pages is:
|
||||
* (bytesPerLine * size.width * 4 + PAGE_SIZE - 1) / PAGE_SIZE
|
||||
*
|
||||
* The pitch in the backingStore is required to be at least large
|
||||
* enough to hold a 32bbp scanline. It is recommended that the
|
||||
* driver pad bytesPerLine for a potential performance win.
|
||||
*
|
||||
* The cloneCount field is treated as a hint from the guest that
|
||||
* the user wants this display to be cloned, countCount times. A
|
||||
* value of zero means no cloning should happen.
|
||||
*/
|
||||
|
||||
#define SVGA_SCREEN_HAS_ROOT (1 << 0) // Screen is present in the virtual coord space
|
||||
#define SVGA_SCREEN_IS_PRIMARY (1 << 1) // Guest considers this screen to be 'primary'
|
||||
#define SVGA_SCREEN_FULLSCREEN_HINT (1 << 2) // Guest is running a fullscreen app here
|
||||
#define SVGA_SCREEN_MUST_BE_SET (1 << 0) /* Must be set or results undefined */
|
||||
#define SVGA_SCREEN_HAS_ROOT SVGA_SCREEN_MUST_BE_SET /* Deprecated */
|
||||
#define SVGA_SCREEN_IS_PRIMARY (1 << 1) /* Guest considers this screen to be 'primary' */
|
||||
#define SVGA_SCREEN_FULLSCREEN_HINT (1 << 2) /* Guest is running a fullscreen app here */
|
||||
|
||||
/*
|
||||
* Added with SVGA_FIFO_CAP_SCREEN_OBJECT_2. When the screen is
|
||||
* deactivated the base layer is defined to lose all contents and
|
||||
* become black. When a screen is deactivated the backing store is
|
||||
* optional. When set backingPtr and bytesPerLine will be ignored.
|
||||
*/
|
||||
#define SVGA_SCREEN_DEACTIVATE (1 << 3)
|
||||
|
||||
/*
|
||||
* Added with SVGA_FIFO_CAP_SCREEN_OBJECT_2. When this flag is set
|
||||
* the screen contents will be outputted as all black to the user
|
||||
* though the base layer contents is preserved. The screen base layer
|
||||
* can still be read and written to like normal though the no visible
|
||||
* effect will be seen by the user. When the flag is changed the
|
||||
* screen will be blanked or redrawn to the current contents as needed
|
||||
* without any extra commands from the driver. This flag only has an
|
||||
* effect when the screen is not deactivated.
|
||||
*/
|
||||
#define SVGA_SCREEN_BLANKING (1 << 4)
|
||||
|
||||
typedef
|
||||
struct SVGAScreenObject {
|
||||
uint32 structSize; // sizeof(SVGAScreenObject)
|
||||
uint32 structSize; /* sizeof(SVGAScreenObject) */
|
||||
uint32 id;
|
||||
uint32 flags;
|
||||
struct {
|
||||
|
@ -869,7 +976,14 @@ struct SVGAScreenObject {
|
|||
struct {
|
||||
int32 x;
|
||||
int32 y;
|
||||
} root; // Only used if SVGA_SCREEN_HAS_ROOT is set.
|
||||
} root;
|
||||
|
||||
/*
|
||||
* Added and required by SVGA_FIFO_CAP_SCREEN_OBJECT_2, optional
|
||||
* with SVGA_FIFO_CAP_SCREEN_OBJECT.
|
||||
*/
|
||||
SVGAGuestImage backingStore;
|
||||
uint32 cloneCount;
|
||||
} SVGAScreenObject;
|
||||
|
||||
|
||||
|
@ -944,7 +1058,7 @@ typedef enum {
|
|||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
struct SVGAFifoCmdUpdate {
|
||||
uint32 x;
|
||||
uint32 y;
|
||||
uint32 width;
|
||||
|
@ -963,7 +1077,7 @@ struct {
|
|||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
struct SVGAFifoCmdRectCopy {
|
||||
uint32 srcX;
|
||||
uint32 srcY;
|
||||
uint32 destX;
|
||||
|
@ -987,14 +1101,14 @@ struct {
|
|||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
uint32 id; // Reserved, must be zero.
|
||||
struct SVGAFifoCmdDefineCursor {
|
||||
uint32 id; /* Reserved, must be zero. */
|
||||
uint32 hotspotX;
|
||||
uint32 hotspotY;
|
||||
uint32 width;
|
||||
uint32 height;
|
||||
uint32 andMaskDepth; // Value must be 1 or equal to BITS_PER_PIXEL
|
||||
uint32 xorMaskDepth; // Value must be 1 or equal to BITS_PER_PIXEL
|
||||
uint32 andMaskDepth; /* Value must be 1 or equal to BITS_PER_PIXEL */
|
||||
uint32 xorMaskDepth; /* Value must be 1 or equal to BITS_PER_PIXEL */
|
||||
/*
|
||||
* Followed by scanline data for AND mask, then XOR mask.
|
||||
* Each scanline is padded to a 32-bit boundary.
|
||||
|
@ -1016,8 +1130,8 @@ struct {
|
|||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
uint32 id; // Reserved, must be zero.
|
||||
struct SVGAFifoCmdDefineAlphaCursor {
|
||||
uint32 id; /* Reserved, must be zero. */
|
||||
uint32 hotspotX;
|
||||
uint32 hotspotY;
|
||||
uint32 width;
|
||||
|
@ -1039,7 +1153,7 @@ struct {
|
|||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
struct SVGAFifoCmdUpdateVerbose {
|
||||
uint32 x;
|
||||
uint32 y;
|
||||
uint32 width;
|
||||
|
@ -1064,13 +1178,13 @@ struct {
|
|||
#define SVGA_ROP_COPY 0x03
|
||||
|
||||
typedef
|
||||
struct {
|
||||
uint32 color; // In the same format as the GFB
|
||||
struct SVGAFifoCmdFrontRopFill {
|
||||
uint32 color; /* In the same format as the GFB */
|
||||
uint32 x;
|
||||
uint32 y;
|
||||
uint32 width;
|
||||
uint32 height;
|
||||
uint32 rop; // Must be SVGA_ROP_COPY
|
||||
uint32 rop; /* Must be SVGA_ROP_COPY */
|
||||
} SVGAFifoCmdFrontRopFill;
|
||||
|
||||
|
||||
|
@ -1107,7 +1221,7 @@ struct {
|
|||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
struct SVGAFifoCmdEscape {
|
||||
uint32 nsid;
|
||||
uint32 size;
|
||||
/* followed by 'size' bytes of data */
|
||||
|
@ -1137,12 +1251,12 @@ struct {
|
|||
* registers (SVGA_REG_NUM_GUEST_DISPLAYS, SVGA_REG_DISPLAY_*).
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
struct {
|
||||
SVGAScreenObject screen; // Variable-length according to version
|
||||
SVGAScreenObject screen; /* Variable-length according to version */
|
||||
} SVGAFifoCmdDefineScreen;
|
||||
|
||||
|
||||
|
@ -1153,7 +1267,7 @@ struct {
|
|||
* re-use.
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
|
@ -1206,7 +1320,7 @@ struct {
|
|||
* GMRFB.
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
|
@ -1243,7 +1357,7 @@ struct {
|
|||
* SVGA_CMD_ANNOTATION_* commands for details.
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
|
@ -1291,7 +1405,7 @@ struct {
|
|||
* the time any subsequent FENCE commands are reached.
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
|
@ -1326,7 +1440,7 @@ struct {
|
|||
* user's display is being remoted over a network connection.
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
|
@ -1358,7 +1472,7 @@ struct {
|
|||
* undefined.
|
||||
*
|
||||
* Availability:
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT
|
||||
* SVGA_FIFO_CAP_SCREEN_OBJECT or SVGA_FIFO_CAP_SCREEN_OBJECT_2
|
||||
*/
|
||||
|
||||
typedef
|
||||
|
@ -1381,8 +1495,7 @@ typedef
|
|||
struct {
|
||||
uint32 gmrId;
|
||||
uint32 numPages;
|
||||
}
|
||||
SVGAFifoCmdDefineGMR2;
|
||||
} SVGAFifoCmdDefineGMR2;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -1434,7 +1547,6 @@ struct {
|
|||
* (according to flag SVGA_REMAP_GMR2_PPN64) follows. If flag
|
||||
* SVGA_REMAP_GMR2_SINGLE_PPN is set, array contains a single entry.
|
||||
*/
|
||||
}
|
||||
SVGAFifoCmdRemapGMR2;
|
||||
} SVGAFifoCmdRemapGMR2;
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue