public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fix widescreen resolution issues (v2)
@ 2008-02-22  2:11 Andreas Winkelbauer
  2008-02-22  3:39 ` Leslie Mann
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Andreas Winkelbauer @ 2008-02-22  2:11 UTC (permalink / raw)
  To: Avi Kivity, arne.brutschy; +Cc: kvm-devel

[-- Attachment #1: Type: text/plain, Size: 574 bytes --]

hi,

I found out what crashed kvm when I increased VGA_RAM_SIZE in pc.h. The 
crash was caused by a really _dirty_ hack in a kvm specific part of 
vga.c (it took me at least an hour to find this amazing piece of code... 
at least the "HACK ALERT" was a good hint ;-) ).

I've attached the patch. It works for me (tested with windows xp as 
guest os @ 1680x1050). As always, please test the patch. I'd highly 
appreciate it if somebody could test it with linux as guest os.

@Arne: Could you please test the patch with your setup? I hope it works 
this time...

cheers,
Andi

[-- Attachment #2: widescreen-fix.patch --]
[-- Type: text/x-patch, Size: 3041 bytes --]

--- kvm-61.orig/qemu/hw/vga.c	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/qemu/hw/vga.c	2008-02-22 02:43:08.000000000 +0100
@@ -1438,7 +1438,7 @@
     long page0, page1, page_min, page_max;
     vga_draw_line_func *vga_draw_line;
     /* HACK ALERT */
-#define VGA_BITMAP_SIZE ((8*1024*1024) / 4096 / 8 / sizeof(long))
+#define VGA_BITMAP_SIZE ((VGA_RAM_SIZE) / 4096 / 8 / sizeof(long))
     unsigned long bitmap[VGA_BITMAP_SIZE];
 #ifndef TARGET_IA64
     int r;

--- kvm-61.orig/qemu/hw/vga_int.h	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/qemu/hw/vga_int.h	2008-02-20 19:25:35.000000000 +0100
@@ -30,8 +30,8 @@
 /* bochs VBE support */
 #define CONFIG_BOCHS_VBE
 
-#define VBE_DISPI_MAX_XRES              1600
-#define VBE_DISPI_MAX_YRES              1200
+#define VBE_DISPI_MAX_XRES              2560
+#define VBE_DISPI_MAX_YRES              1600
 #define VBE_DISPI_MAX_BPP               32
 
 #define VBE_DISPI_INDEX_ID              0x0

--- kvm-61.orig/vgabios/vbetables-gen.c	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/vgabios/vbetables-gen.c	2008-02-20 19:22:48.000000000 +0100
@@ -2,7 +2,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 8
+#define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 16
 
 typedef struct {
     int width;
@@ -55,18 +55,27 @@
 { 1152, 864, 16                      , 0x14a},
 { 1152, 864, 24                      , 0x14b},
 { 1152, 864, 32                      , 0x14c},
-{ 1280, 800, 24                      , 0x178},
-{ 1280, 800, 32                      , 0x179},
-{ 1280, 960, 24                      , 0x180},
-{ 1280, 960, 32                      , 0x181},
-{ 1280, 960, 24                      , 0x182},
-{ 1280, 960, 32                      , 0x183},
-{ 1440, 900, 24                      , 0x184},
-{ 1440, 900, 32                      , 0x185},
-{ 1400, 1050, 24                     , 0x186},
-{ 1400, 1050, 32                     , 0x187},
-{ 1680, 1050, 24                     , 0x188},
-{ 1680, 1050, 32                     , 0x189},
+{ 1280, 800, 16                      , 0x178},
+{ 1280, 800, 24                      , 0x179},
+{ 1280, 800, 32                      , 0x17a},
+{ 1280, 960, 16                      , 0x17b},
+{ 1280, 960, 24                      , 0x17c},
+{ 1280, 960, 32                      , 0x17d},
+{ 1440, 900, 16                      , 0x17e},
+{ 1440, 900, 24                      , 0x17f},
+{ 1440, 900, 32                      , 0x180},
+{ 1400, 1050, 16                     , 0x181},
+{ 1400, 1050, 24                     , 0x182},
+{ 1400, 1050, 32                     , 0x183},
+{ 1680, 1050, 16                     , 0x184},
+{ 1680, 1050, 24                     , 0x185},
+{ 1680, 1050, 32                     , 0x186},
+{ 1920, 1200, 16                     , 0x187},
+{ 1920, 1200, 24                     , 0x188},
+{ 1920, 1200, 32                     , 0x189},
+{ 2560, 1600, 16                     , 0x18a},
+{ 2560, 1600, 24                     , 0x18b},
+{ 2560, 1600, 32                     , 0x18c},
 { 0, },
 };


[-- Attachment #3: Type: text/plain, Size: 228 bytes --]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

[-- Attachment #4: Type: text/plain, Size: 158 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fix widescreen resolution issues (v2)
  2008-02-22  2:11 [PATCH] fix widescreen resolution issues (v2) Andreas Winkelbauer
@ 2008-02-22  3:39 ` Leslie Mann
  2008-02-22  7:45 ` Avi Kivity
  2008-02-22  9:17 ` Arne Brutschy
  2 siblings, 0 replies; 6+ messages in thread
From: Leslie Mann @ 2008-02-22  3:39 UTC (permalink / raw)
  To: kvm-devel

Andreas Winkelbauer <andreas.winkelbauer <at> gmx.at> writes:

> 
> hi,
> 
> I found out what crashed kvm when I increased VGA_RAM_SIZE in pc.h. The 
> crash was caused by a really _dirty_ hack in a kvm specific part of 
> vga.c (it took me at least an hour to find this amazing piece of code... 
> at least the "HACK ALERT" was a good hint  ).
> 
> I've attached the patch. It works for me (tested with windows xp as 
> guest os @ 1680x1050). As always, please test the patch. I'd highly 
> appreciate it if somebody could test it with linux as guest os.
> 

Patches get me running up to 1920 x 1200 using WinXP guest!

Now that I can run higher resolutions I am seeing a screen corruption issue on
resolutions greater than 1600x1200.  Property dialogs are the easiest way to 
see the issue, a set of thin horizontal bands through the dialog with the 
desktop visible.  On certain areas of the screen the mouse pointer will also
show banding. 

Les


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fix widescreen resolution issues (v2)
  2008-02-22  2:11 [PATCH] fix widescreen resolution issues (v2) Andreas Winkelbauer
  2008-02-22  3:39 ` Leslie Mann
@ 2008-02-22  7:45 ` Avi Kivity
  2008-02-22  9:17 ` Arne Brutschy
  2 siblings, 0 replies; 6+ messages in thread
From: Avi Kivity @ 2008-02-22  7:45 UTC (permalink / raw)
  To: Andreas Winkelbauer; +Cc: kvm-devel, arne.brutschy

Andreas Winkelbauer wrote:
> hi,
>
> I found out what crashed kvm when I increased VGA_RAM_SIZE in pc.h. 
> The crash was caused by a really _dirty_ hack in a kvm specific part 
> of vga.c (it took me at least an hour to find this amazing piece of 
> code... at least the "HACK ALERT" was a good hint ;-) ).
>
> I've attached the patch. It works for me (tested with windows xp as 
> guest os @ 1680x1050). As always, please test the patch. I'd highly 
> appreciate it if somebody could test it with linux as guest os.
>
> @Arne: Could you please test the patch with your setup? I hope it 
> works this time...
>

The patch doesn't include the change to VGA_RAM_SIZE!  How can this work?

Please send separate patches for the bios and qemu.

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fix widescreen resolution issues (v2)
  2008-02-22  2:11 [PATCH] fix widescreen resolution issues (v2) Andreas Winkelbauer
  2008-02-22  3:39 ` Leslie Mann
  2008-02-22  7:45 ` Avi Kivity
@ 2008-02-22  9:17 ` Arne Brutschy
  2008-02-22 12:44   ` Andreas Winkelbauer
  2008-02-22 12:55   ` Leslie Mann
  2 siblings, 2 replies; 6+ messages in thread
From: Arne Brutschy @ 2008-02-22  9:17 UTC (permalink / raw)
  To: Andreas Winkelbauer; +Cc: kvm-devel, Avi Kivity, Leslie Mann

[-- Attachment #1: Type: text/plain, Size: 1102 bytes --]

Hi all,

On Fr, 2008-02-22 at 03:11 +0100, Andreas Winkelbauer wrote:
> I found out what crashed kvm when I increased VGA_RAM_SIZE in pc.h. The 
> crash was caused by a really _dirty_ hack in a kvm specific part of 
> vga.c (it took me at least an hour to find this amazing piece of code... 
> at least the "HACK ALERT" was a good hint ;-) ).
Ow, that really does qualify as a dirty hack. :) Thanks for finding
that! I currently don't have the time to skim through pages of code, so
sorry for my non-involvement on this issue...

> @Arne: Could you please test the patch with your setup? I hope it works 
> this time...
Yesno. It does (at least kvm does not crash), but it shows the same
dialog problems as reported by Leslie:

> I've attached the patch. It works for me (tested with windows xp as 
> guest os @ 1680x1050). As always, please test the patch. I'd highly 
> appreciate it if somebody could test it with linux as guest os.

BTW, Leslie: Which patch did you use? I attached a second patch as
Andreas forgot to include the changes in hw/pc.h.

Cheers & Good morning to the europeans ;)
Arne

[-- Attachment #2: qemu-widescreen.patch --]
[-- Type: text/x-patch, Size: 7072 bytes --]

diff -Naur kvm-61.orig/qemu/hw/pc.h kvm-61/qemu/hw/pc.h
--- kvm-61.orig/qemu/hw/pc.h	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/qemu/hw/pc.h	2008-02-21 11:52:36.000000000 +0100
@@ -108,9 +108,9 @@
 /* vga.c */
 
 #ifndef TARGET_SPARC
-#define VGA_RAM_SIZE (8192 * 1024)
+#define VGA_RAM_SIZE (16 * 1024 * 1024)
 #else
-#define VGA_RAM_SIZE (9 * 1024 * 1024)
+#define VGA_RAM_SIZE (17 * 1024 * 1024)
 #endif
 
 int isa_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
diff -Naur kvm-61.orig/qemu/hw/vga.c kvm-61/qemu/hw/vga.c
--- kvm-61.orig/qemu/hw/vga.c	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/qemu/hw/vga.c	2008-02-22 10:07:14.000000000 +0100
@@ -1438,7 +1438,7 @@
     long page0, page1, page_min, page_max;
     vga_draw_line_func *vga_draw_line;
     /* HACK ALERT */
-#define VGA_BITMAP_SIZE ((8*1024*1024) / 4096 / 8 / sizeof(long))
+#define VGA_BITMAP_SIZE ((VGA_RAM_SIZE) / 4096 / 8 / sizeof(long))
     unsigned long bitmap[VGA_BITMAP_SIZE];
 #ifndef TARGET_IA64
     int r;
diff -Naur kvm-61.orig/qemu/hw/vga_int.h kvm-61/qemu/hw/vga_int.h
--- kvm-61.orig/qemu/hw/vga_int.h	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/qemu/hw/vga_int.h	2008-02-21 10:54:48.000000000 +0100
@@ -30,8 +30,8 @@
 /* bochs VBE support */
 #define CONFIG_BOCHS_VBE
 
-#define VBE_DISPI_MAX_XRES              1600
-#define VBE_DISPI_MAX_YRES              1200
+#define VBE_DISPI_MAX_XRES              2560
+#define VBE_DISPI_MAX_YRES              1600
 #define VBE_DISPI_MAX_BPP               32
 
 #define VBE_DISPI_INDEX_ID              0x0
diff -Naur kvm-61.orig/vgabios/vbetables-gen.c kvm-61/vgabios/vbetables-gen.c
--- kvm-61.orig/vgabios/vbetables-gen.c	2008-02-19 15:58:28.000000000 +0100
+++ kvm-61/vgabios/vbetables-gen.c	2008-02-21 10:54:48.000000000 +0100
@@ -2,7 +2,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 8
+#define VBE_DISPI_TOTAL_VIDEO_MEMORY_MB 16
 
 typedef struct {
     int width;
@@ -13,60 +13,69 @@
 
 ModeInfo modes[] = {
     /* standard VESA modes */
-{ 640, 400, 8                          , 0x100},
-{ 640, 480, 8                          , 0x101},
-{ 800, 600, 4                          , 0x102},
-{ 800, 600, 8                          , 0x103},
-{ 1024, 768, 4                         , 0x104},
-{ 1024, 768, 8                         , 0x105},
-{ 1280, 1024, 4                        , 0x106},
-{ 1280, 1024, 8                        , 0x107},
+{ 640, 400, 8                        , 0x100},
+{ 640, 480, 8                        , 0x101},
+{ 800, 600, 4                        , 0x102},
+{ 800, 600, 8                        , 0x103},
+{ 1024, 768, 4                       , 0x104},
+{ 1024, 768, 8                       , 0x105},
+{ 1280, 1024, 4                      , 0x106},
+{ 1280, 1024, 8                      , 0x107},
 { 320, 200, 15                       , 0x10D},
-{ 320, 200, 16                        , 0x10E},
-{ 320, 200, 24                        , 0x10F},
+{ 320, 200, 16                       , 0x10E},
+{ 320, 200, 24                       , 0x10F},
 { 640, 480, 15                       , 0x110},
-{ 640, 480, 16                        , 0x111},
-{ 640, 480, 24                        , 0x112},
+{ 640, 480, 16                       , 0x111},
+{ 640, 480, 24                       , 0x112},
 { 800, 600, 15                       , 0x113},
-{ 800, 600, 16                        , 0x114},
-{ 800, 600, 24                        , 0x115},
+{ 800, 600, 16                       , 0x114},
+{ 800, 600, 24                       , 0x115},
 { 1024, 768, 15                      , 0x116},
-{ 1024, 768, 16                       , 0x117},
-{ 1024, 768, 24                       , 0x118},
+{ 1024, 768, 16                      , 0x117},
+{ 1024, 768, 24                      , 0x118},
 { 1280, 1024, 15                     , 0x119},
-{ 1280, 1024, 16                      , 0x11A},
-{ 1280, 1024, 24                      , 0x11B},
-{ 1600, 1200, 8                        , 0x11C},
+{ 1280, 1024, 16                     , 0x11A},
+{ 1280, 1024, 24                     , 0x11B},
+{ 1600, 1200, 8                      , 0x11C},
 { 1600, 1200, 15                     , 0x11D},
-{ 1600, 1200, 16                      , 0x11E},
-{ 1600, 1200, 24                      , 0x11F},
+{ 1600, 1200, 16                     , 0x11E},
+{ 1600, 1200, 24                     , 0x11F},
 
       /* BOCHS/PLE, 86 'own' mode numbers */
-{ 320, 200, 32                        , 0x140},
-{ 640, 400, 32                        , 0x141},
-{ 640, 480, 32                        , 0x142},
-{ 800, 600, 32                        , 0x143},
-{ 1024, 768, 32                       , 0x144},
-{ 1280, 1024, 32                      , 0x145},
-{ 320, 200, 8                           , 0x146},
-{ 1600, 1200, 32                      , 0x147},
-{ 1152, 864, 8                      , 0x148},
+{ 320, 200, 32                       , 0x140},
+{ 640, 400, 32                       , 0x141},
+{ 640, 480, 32                       , 0x142},
+{ 800, 600, 32                       , 0x143},
+{ 1024, 768, 32                      , 0x144},
+{ 1280, 1024, 32                     , 0x145},
+{ 320, 200, 8                        , 0x146},
+{ 1600, 1200, 32                     , 0x147},
+{ 1152, 864, 8                       , 0x148},
 { 1152, 864, 15                      , 0x149},
 { 1152, 864, 16                      , 0x14a},
 { 1152, 864, 24                      , 0x14b},
 { 1152, 864, 32                      , 0x14c},
-{ 1280, 800, 24                      , 0x178},
-{ 1280, 800, 32                      , 0x179},
-{ 1280, 960, 24                      , 0x180},
-{ 1280, 960, 32                      , 0x181},
-{ 1280, 960, 24                      , 0x182},
-{ 1280, 960, 32                      , 0x183},
-{ 1440, 900, 24                      , 0x184},
-{ 1440, 900, 32                      , 0x185},
-{ 1400, 1050, 24                     , 0x186},
-{ 1400, 1050, 32                     , 0x187},
-{ 1680, 1050, 24                     , 0x188},
-{ 1680, 1050, 32                     , 0x189},
+{ 1280, 800, 16                      , 0x178},
+{ 1280, 800, 24                      , 0x179},
+{ 1280, 800, 32                      , 0x17a},
+{ 1280, 960, 16                      , 0x17b},
+{ 1280, 960, 24                      , 0x17c},
+{ 1280, 960, 32                      , 0x17d},
+{ 1440, 900, 16                      , 0x17e},
+{ 1440, 900, 24                      , 0x17f},
+{ 1440, 900, 32                      , 0x180},
+{ 1400, 1050, 16                     , 0x181},
+{ 1400, 1050, 24                     , 0x182},
+{ 1400, 1050, 32                     , 0x183},
+{ 1680, 1050, 16                     , 0x184},
+{ 1680, 1050, 24                     , 0x185},
+{ 1680, 1050, 32                     , 0x186},
+{ 1920, 1200, 16                     , 0x187},
+{ 1920, 1200, 24                     , 0x188},
+{ 1920, 1200, 32                     , 0x189},
+{ 2560, 1600, 16                     , 0x18a},
+{ 2560, 1600, 24                     , 0x18b},
+{ 2560, 1600, 32                     , 0x18c},
 { 0, },
 };
 

[-- Attachment #3: Type: text/plain, Size: 228 bytes --]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

[-- Attachment #4: Type: text/plain, Size: 158 bytes --]

_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fix widescreen resolution issues (v2)
  2008-02-22  9:17 ` Arne Brutschy
@ 2008-02-22 12:44   ` Andreas Winkelbauer
  2008-02-22 12:55   ` Leslie Mann
  1 sibling, 0 replies; 6+ messages in thread
From: Andreas Winkelbauer @ 2008-02-22 12:44 UTC (permalink / raw)
  To: arne.brutschy; +Cc: kvm-devel

hi,

>> @Arne: Could you please test the patch with your setup? I hope it works 
>> this time...
> Yesno. It does (at least kvm does not crash), but it shows the same
> dialog problems as reported by Leslie:

I'm quite sure that this issue isn't related to the widescreen fixes. 
This "visual bug" seems to be around since kvm-60 or so and has been 
verified by some guys (including me) also at lower resolutions like 
1400x1050.

See this post:
http://article.gmane.org/gmane.comp.emulators.kvm.devel/13409

You could try using -no-kvm or an older kvm release for testing.

cheers,
Andi

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] fix widescreen resolution issues (v2)
  2008-02-22  9:17 ` Arne Brutschy
  2008-02-22 12:44   ` Andreas Winkelbauer
@ 2008-02-22 12:55   ` Leslie Mann
  1 sibling, 0 replies; 6+ messages in thread
From: Leslie Mann @ 2008-02-22 12:55 UTC (permalink / raw)
  To: kvm-devel

Arne Brutschy <arne.brutschy <at> ulb.ac.be> writes:

> 
> BTW, Leslie: Which patch did you use? I attached a second patch as
> Andreas forgot to include the changes in hw/pc.h.
> 

All provided along with an edit to hw/pc.h, same as your second patch.

Les




-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-02-22 12:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-22  2:11 [PATCH] fix widescreen resolution issues (v2) Andreas Winkelbauer
2008-02-22  3:39 ` Leslie Mann
2008-02-22  7:45 ` Avi Kivity
2008-02-22  9:17 ` Arne Brutschy
2008-02-22 12:44   ` Andreas Winkelbauer
2008-02-22 12:55   ` Leslie Mann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox