[Spice-devel] [PATCH] Add support for resolution 800x600

Yuri Benditovich yuri.benditovich at daynix.com
Mon Feb 19 13:18:18 UTC 2018


https://bugzilla.redhat.com/show_bug.cgi?id=1477492
https://docs.microsoft.com/en-us/windows-hardware/design/minimum/minimum-hardware-requirements-overview
requires 800x600 to be supported.

Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
---
 qxldod/QxlDod.cpp | 28 ++++++++++++++--------------
 qxldod/QxlDod.h   |  6 ++++--
 2 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index 4f508bd..ee97b09 100755
--- a/qxldod/QxlDod.cpp
+++ b/qxldod/QxlDod.cpp
@@ -2572,15 +2572,15 @@ NTSTATUS VgaDevice::GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo)
 
         DbgPrint(TRACE_LEVEL_INFORMATION, ("ModeTemp = 0x%X %dx%d@%d\n", ModeTemp, tmpModeInfo.XResolution, tmpModeInfo.YResolution, tmpModeInfo.BitsPerPixel));
 
-        if (tmpModeInfo.XResolution >= MIN_WIDTH_SIZE &&
-            tmpModeInfo.YResolution >= MIN_HEIGHT_SIZE &&
+        if (tmpModeInfo.XResolution >= MINIMAL_WIDTH &&
+            tmpModeInfo.YResolution >= MINIMAL_HEIGHT &&
             tmpModeInfo.BitsPerPixel == BitsPerPixel &&
             tmpModeInfo.PhysBasePtr != 0)
         {
             m_ModeNumbers[SuitableModeCount] = ModeTemp;
             SetVideoModeInfo(SuitableModeCount, &tmpModeInfo);
-            if (tmpModeInfo.XResolution == MIN_WIDTH_SIZE &&
-                tmpModeInfo.YResolution == MIN_HEIGHT_SIZE)
+            if (tmpModeInfo.XResolution == INITIAL_WIDTH &&
+                tmpModeInfo.YResolution == INITIAL_HEIGHT)
             {
                 m_CurrentMode = (USHORT)SuitableModeCount;
             }
@@ -3186,8 +3186,8 @@ NTSTATUS QxlDevice::GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo)
     UINT BitsPerPixel = BPPFromPixelFormat(pDispInfo->ColorFormat);
     if (Width == 0 || Height == 0 || BitsPerPixel != QXL_BPP)
     {
-        Width = MIN_WIDTH_SIZE;
-        Height = MIN_HEIGHT_SIZE;
+        Width = MINIMAL_WIDTH;
+        Height = MINIMAL_HEIGHT;
         BitsPerPixel = QXL_BPP;
     }
 
@@ -3200,14 +3200,14 @@ NTSTATUS QxlDevice::GetModeList(DXGK_DISPLAY_INFORMATION* pDispInfo)
 
         DbgPrint(TRACE_LEVEL_INFORMATION, ("%s: modes[%d] x_res = %d, y_res = %d, bits = %d BitsPerPixel = %d\n", __FUNCTION__, CurrentMode, tmpModeInfo->x_res, tmpModeInfo->y_res, tmpModeInfo->bits, BitsPerPixel));
 
-        if (tmpModeInfo->x_res >= MIN_WIDTH_SIZE &&
-            tmpModeInfo->y_res >= MIN_HEIGHT_SIZE &&
+        if (tmpModeInfo->x_res >= MINIMAL_WIDTH &&
+            tmpModeInfo->y_res >= MINIMAL_HEIGHT &&
             tmpModeInfo->bits == QXL_BPP)
         {
             m_ModeNumbers[SuitableModeCount] = SuitableModeCount;
             SetVideoModeInfo(SuitableModeCount, tmpModeInfo);
-            if (tmpModeInfo->x_res == MIN_WIDTH_SIZE &&
-                tmpModeInfo->y_res == MIN_HEIGHT_SIZE)
+            if (tmpModeInfo->x_res == INITIAL_WIDTH &&
+                tmpModeInfo->y_res == INITIAL_HEIGHT)
             {
                 m_CurrentMode = SuitableModeCount;
             }
@@ -4883,9 +4883,9 @@ NTSTATUS QxlDevice::SetCustomDisplay(QXLEscapeSetCustomDisplay* custom_display)
     UINT yres = custom_display->yres;
     UINT bpp = QXL_BPP;
     DbgPrint(TRACE_LEVEL_WARNING, ("%s - %d (%dx%d#%d)\n", __FUNCTION__, m_Id, xres, yres, bpp));
-    if (xres < MIN_WIDTH_SIZE || yres < MIN_HEIGHT_SIZE) {
+    if (xres < MINIMAL_WIDTH || yres < MINIMAL_HEIGHT) {
         DbgPrint(TRACE_LEVEL_VERBOSE, ("%s: (%dx%d#%d) less than (%dx%d)\n", __FUNCTION__,
-            xres, yres, bpp, MIN_WIDTH_SIZE, MIN_HEIGHT_SIZE));
+            xres, yres, bpp, MINIMAL_WIDTH, MINIMAL_HEIGHT));
     }
     m_CustomMode =(USHORT) ((m_CustomMode == m_ModeCount-1)?  m_ModeCount - 2 : m_ModeCount - 1);
 
@@ -5147,8 +5147,8 @@ NTSTATUS HwDeviceInterface::AcquireDisplayInfo(DXGK_DISPLAY_INFORMATION& DispInf
     if (DispInfo.Width == 0)
     {
         DispInfo.ColorFormat = D3DDDIFMT_A8R8G8B8;
-        DispInfo.Width = MIN_WIDTH_SIZE;
-        DispInfo.Height = MIN_HEIGHT_SIZE;
+        DispInfo.Width = INITIAL_WIDTH;
+        DispInfo.Height = INITIAL_HEIGHT;
         DispInfo.Pitch = DispInfo.Width * BPPFromPixelFormat(DispInfo.ColorFormat) / BITS_PER_BYTE;
         DispInfo.TargetId = 0;
     }
diff --git a/qxldod/QxlDod.h b/qxldod/QxlDod.h
index 695b83a..ba7e6a7 100755
--- a/qxldod/QxlDod.h
+++ b/qxldod/QxlDod.h
@@ -19,8 +19,10 @@
 #define BITS_PER_BYTE              8
 
 #define POINTER_SIZE               64
-#define MIN_WIDTH_SIZE             1024
-#define MIN_HEIGHT_SIZE            768
+#define MINIMAL_WIDTH              800
+#define MINIMAL_HEIGHT             600
+#define INITIAL_WIDTH              1024
+#define INITIAL_HEIGHT             768
 #define QXL_BPP                    32
 #define VGA_BPP                    24
 
-- 
2.7.0.windows.1



More information about the Spice-devel mailing list