VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/DevVGASavedState.h

Last change on this file was 102520, checked in by vboxsync, 5 months ago

Devices/Graphics: planar textures; video commands. bugref:10529

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 KB
Line 
1/* $Id: DevVGASavedState.h 102520 2023-12-07 12:06:26Z vboxsync $ */
2/** @file
3 * DevVGA - Saved state versions.
4 *
5 * @remarks HGSMI needs this but doesn't want to deal with DevVGA.h, thus this
6 * dedicated header.
7 */
8
9/*
10 * Copyright (C) 2006-2023 Oracle and/or its affiliates.
11 *
12 * This file is part of VirtualBox base platform packages, as
13 * available from https://www.virtualbox.org.
14 *
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation, in version 3 of the
18 * License.
19 *
20 * This program is distributed in the hope that it will be useful, but
21 * WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License
26 * along with this program; if not, see <https://www.gnu.org/licenses>.
27 *
28 * SPDX-License-Identifier: GPL-3.0-only
29 */
30
31#ifndef VBOX_INCLUDED_SRC_Graphics_DevVGASavedState_h
32#define VBOX_INCLUDED_SRC_Graphics_DevVGASavedState_h
33#ifndef RT_WITHOUT_PRAGMA_ONCE
34# pragma once
35#endif
36
37/** Creates an eyecatching marker in the VGA saved state ("<uSub>Marker\n"). */
38#define VGA_SAVED_STATE_MAKE_MARKER(uSub) (UINT64_C(0x0a72656b72614d30) + (uint64_t)(uSub))
39
40/** Puts a marker. Status code is not checked. */
41#define VGA_SAVED_STATE_PUT_MARKER(pSSM, uSub) \
42 do { pHlp->pfnSSMPutU64(pSSM, VGA_SAVED_STATE_MAKE_MARKER(uSub)); } while (0)
43
44/** Retrieves a VGA saved state marker and checks that it matches, if it
45 * doesn't assert/LogRel and return. */
46#define VGA_SAVED_STATE_GET_MARKER_RETURN_ON_MISMATCH(pSSM, uVersion, uSub) \
47 do { \
48 if (uVersion >= VGA_SAVEDSTATE_VERSION_MARKERS) \
49 { \
50 uint64_t uMarker; \
51 int rcMarker = pHlp->pfnSSMGetU64(pSSM, &uMarker); \
52 AssertLogRelRCReturn(rcMarker, rcMarker); \
53 AssertLogRelMsgReturn(uMarker == VGA_SAVED_STATE_MAKE_MARKER(uSub), \
54 ("Bad VGA marker: expected %llx, got %llx\n", VGA_SAVED_STATE_MAKE_MARKER(uSub), uMarker), \
55 VERR_SSM_DATA_UNIT_FORMAT_CHANGED); \
56 } \
57 } while (0)
58
59#define VGA_SAVEDSTATE_VERSION 29
60#define VGA_SAVEDSTATE_VERSION_VMSVGA_VIDEO 29 /* Video decoding and processing (new COTables). */
61#define VGA_SAVEDSTATE_VERSION_VMSVGA_SVGA3 28 /* SVGA 3 interface. */
62#define VGA_SAVEDSTATE_VERSION_VMSVGA_REG_CAP2 27 /* SVGA_REG_CAP2. */
63#define VGA_SAVEDSTATE_VERSION_VMSVGA_DX_SFLAGS 26 /* SVGA3dSurfaceAllFlags. */
64#define VGA_SAVEDSTATE_VERSION_VMSVGA_DX_CMDBUF 25 /* Command buffers capability is not tied to VGPU10 setting. */
65#define VGA_SAVEDSTATE_VERSION_VMSVGA_DX 24 /* VGPU10. */
66#define VGA_SAVEDSTATE_VERSION_VMSVGA_MIPLEVELS 23 /* Surface struct with number of miplevels. */
67#define VGA_SAVEDSTATE_VERSION_VMSVGA_CURSOR 22 /* Legacy cursor registers. */
68#define VGA_SAVEDSTATE_VERSION_VMSVGA_SCREENS 21 /* Screen objects. */
69#define VGA_SAVEDSTATE_VERSION_VMSVGA 20 /* Multiple updates and fixes for VMSVGA saved state. */
70#define VGA_SAVEDSTATE_VERSION_VMSVGA_TEX_STAGES 19
71#define VGA_SAVEDSTATE_VERSION_VMSVGA_GMR_COUNT 18
72#define VGA_SAVEDSTATE_VERSION_VMSVGA_VGA_FB_FIX 17
73#define VGA_SAVEDSTATE_VERSION_MARKERS 16
74#define VGA_SAVEDSTATE_VERSION_MODE_HINTS 15
75#define VGA_SAVEDSTATE_VERSION_FIXED_PENDVHWA 14
76#define VGA_SAVEDSTATE_VERSION_3D 13
77#define VGA_SAVEDSTATE_VERSION_HGSMIMA 12 /* HGSMI memory allocator. */
78#define VGA_SAVEDSTATE_VERSION_VMSVGA_2D 10 /* <- internal build with 2d state only */
79#define VGA_SAVEDSTATE_VERSION_WITH_PENDVHWA 10
80#define VGA_SAVEDSTATE_VERSION_INV_GCMDFIFO 8 /* <- states upto and including this version may contain invalid completed Guest Commands fifo entries */
81#define VGA_SAVEDSTATE_VERSION_INV_VHEIGHT 8 /* <- states upto and including this version may contain invalid vbe_regs[VBE_DISPI_INDEX_VIRT_HEIGHT] value */
82#define VGA_SAVEDSTATE_VERSION_WDDM 7
83#define VGA_SAVEDSTATE_VERSION_PRE_WDDM 6
84#define VGA_SAVEDSTATE_VERSION_HOST_HEAP 5
85#define VGA_SAVEDSTATE_VERSION_WITH_CONFIG 4
86#define VGA_SAVEDSTATE_VERSION_HGSMI 3
87#define VGA_SAVEDSTATE_VERSION_PRE_HGSMI 2
88#define VGA_SAVEDSTATE_VERSION_ANCIENT 1
89
90#endif /* !VBOX_INCLUDED_SRC_Graphics_DevVGASavedState_h */
91
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use