Add support for all high-definition and quad extended graphics array
resolutions as listed on Wikipedia. Additionally, eliminate any color
depths that are less than 32-bits for resolutions greater than Full HD.

https://en.wikipedia.org/wiki/Graphics_display_resolution

Signed-off-by: Elliot Killick <elliotkill...@zohomail.eu>
---
 vgasrc/svgamodes.c | 45 +++++++++++++++++++++++++++++++++------------
 1 file changed, 33 insertions(+), 12 deletions(-)

diff --git a/vgasrc/svgamodes.c b/vgasrc/svgamodes.c
index 6e494c7..3420d2b 100644
--- a/vgasrc/svgamodes.c
+++ b/vgasrc/svgamodes.c
@@ -72,25 +72,46 @@ struct generic_svga_mode svga_modes[] VAR16 = {
     { 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } },
     { 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } },
     { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
-    { 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } },
-    { 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } },
     { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
-    { 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } },
-    { 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } },
-    { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
     { 0x18d, { MM_DIRECT, 1280, 720,  16, 8, 16, SEG_GRAPH } },
     { 0x18e, { MM_DIRECT, 1280, 720,  24, 8, 16, SEG_GRAPH } },
     { 0x18f, { MM_DIRECT, 1280, 720,  32, 8, 16, SEG_GRAPH } },
     { 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } },
     { 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } },
     { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x193, { MM_DIRECT, 1600, 900,  16, 8, 16, SEG_GRAPH } },
+    { 0x194, { MM_DIRECT, 1600, 900,  24, 8, 16, SEG_GRAPH } },
+    { 0x195, { MM_DIRECT, 1600, 900,  32, 8, 16, SEG_GRAPH } },
+    { 0x196, { MM_DIRECT, 960,  540,  16, 8, 16, SEG_GRAPH } },
+    { 0x197, { MM_DIRECT, 960,  540,  24, 8, 16, SEG_GRAPH } },
+    { 0x198, { MM_DIRECT, 960,  540,  32, 8, 16, SEG_GRAPH } },
+    { 0x199, { MM_DIRECT, 1280, 1080, 16, 8, 16, SEG_GRAPH } },
+    { 0x19a, { MM_DIRECT, 1280, 1080, 24, 8, 16, SEG_GRAPH } },
+    { 0x19b, { MM_DIRECT, 1280, 1080, 32, 8, 16, SEG_GRAPH } },
 
-    /* custom resolutions for 16:9 displays */
-    { 0x193, { MM_DIRECT, 1600,  900, 16, 8, 16, SEG_GRAPH } },
-    { 0x194, { MM_DIRECT, 1600,  900, 24, 8, 16, SEG_GRAPH } },
-    { 0x195, { MM_DIRECT, 1600,  900, 32, 8, 16, SEG_GRAPH } },
-    { 0x196, { MM_DIRECT, 2560, 1440, 16, 8, 16, SEG_GRAPH } },
-    { 0x197, { MM_DIRECT, 2560, 1440, 24, 8, 16, SEG_GRAPH } },
-    { 0x198, { MM_DIRECT, 2560, 1440, 32, 8, 16, SEG_GRAPH } },
+    /* other high-definition resolutions */
+    { 0x19c, { MM_DIRECT, 2048,  1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x19d, { MM_DIRECT, 2160,  1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x19e, { MM_DIRECT, 2560,  1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x19f, { MM_DIRECT, 2560,  1440, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a0, { MM_DIRECT, 3200,  1800, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a1, { MM_DIRECT, 3440,  1440, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a2, { MM_DIRECT, 3840,  1080, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a3, { MM_DIRECT, 3840,  1600, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a4, { MM_DIRECT, 3840,  2160, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a5, { MM_DIRECT, 4096,  2160, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a6, { MM_DIRECT, 5120,  2160, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a7, { MM_DIRECT, 5120,  2880, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a8, { MM_DIRECT, 7680,  4320, 32, 8, 16, SEG_GRAPH } },
+    { 0x1a9, { MM_DIRECT, 17280, 4320, 32, 8, 16, SEG_GRAPH } },
+
+    /* quad extended graphics array resolutions */
+    { 0x1aa, { MM_DIRECT, 2048,  1152, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ab, { MM_DIRECT, 2048,  1536, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ac, { MM_DIRECT, 2560,  1600, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ad, { MM_DIRECT, 2560,  2048, 32, 8, 16, SEG_GRAPH } },
+    { 0x1ae, { MM_DIRECT, 3200,  2048, 32, 8, 16, SEG_GRAPH } },
+    { 0x1af, { MM_DIRECT, 3200,  2400, 32, 8, 16, SEG_GRAPH } },
+    { 0x1b0, { MM_DIRECT, 3840,  2400, 32, 8, 16, SEG_GRAPH } },
 };
 unsigned int svga_mcount VAR16 = ARRAY_SIZE(svga_modes);
-- 
2.30.0


_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to