Opened 8 years ago

Last modified 2 years ago

#7751 assigned bug

Workspaces change resolution

Reported by: DaaT Owned by: nobody
Priority: normal Milestone: R1
Component: Servers/app_server Version: R1/alpha3
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

I need for now to use VESA with my laptop. I installed Alpha 3 and when booting I set the resolution to my laptop's native 1366x768. Haiku booted fine in a nice shiny res. But it was only set for the first workspace. Any other workspace was set still to 1024x768. Then, when switching back to the first workspace, it had change the resolution by itself also to 1024x768.

I looked for the VESA config file in boot/home/config/settings/kernel/drivers/vesa but couldn't find it.

Attachments (2)

syslog.zip (26.4 KB) - added by DaaT 8 years ago.
vesa_debug_syslog.zip (30.5 KB) - added by DaaT 8 years ago.

Download all attachments as: .zip

Change History (26)

comment:1 Changed 8 years ago by axeld

Component: Audio & VideoServers/app_server
Owner: changed from nobody to axeld

It isn't entirely clear to me what you do:

  • does your system boot automatically in VESA, or did you select the fail-safe video mode setting?
  • if you can select a nice resolution on boot (via the boot loader, I guess), why don't you simply set the resolution via the Screen preferences application?
  • just create the file with the contents mode 1366 768 32 in case you want to have the boot logo appear in the correct solution (if supported by the BIOS).
  • also, could you please attach a syslog?

comment:2 Changed 8 years ago by DaaT

Hi Axel. Sorry about that, I'll try to be more informative this time :)

  • Haiku boots automatically in VESA
  • The max res I can select from the Screen prefs is 1024x768, not the native 1366x768, don't know why, since it's available in the fail-safe video mode menu at boot
  • I created a file named "vesa" with that single line but upon rebooting Haiku came back up still at 1024x768
  • I'll get the syslog and attach it ASAP

Cheers.

comment:3 Changed 8 years ago by DaaT

Here's the information from the syslog, when I change from workspace 1 (native resolution) to workspace 2 (1024x768) and back to workspace 1 (now back to 1024x768):

KERN: set MTRRs to:
break KERN: mtrr: 0: base: 0x0, size: 0x1000, type: 0
break KERN: mtrr: 1: base: 0xdee80000, size: 0x80000, type: 0
break KERN: mtrr: 2: base: 0xdef00000, size: 0x100000, type: 0
break KERN: mtrr: 3: base: 0xf0000000, size: 0x10000000, type: 0
break KERN: mtrr: 4: base: 0xe0000000, size: 0x20000000, type: 1
break KERN: remove_memory_type_range(92368, 0x0, 0x1000, 0)
break KERN: set MTRRs to:
break KERN: mtrr: 0: base: 0xdee80000, size: 0x80000, type: 0
break KERN: mtrr: 1: base: 0xdef00000, size: 0x100000, type: 0
break KERN: mtrr: 2: base: 0xf0000000, size: 0x10000000, type: 0
break KERN: mtrr: 3: base: 0xe0000000, size: 0x20000000, type: 1
break KERN: add_memory_type_range(92369, 0xa0000, 0x60000, 0)
break KERN: set MTRRs to:
break KERN: mtrr: 0: base: 0xa0000, size: 0x20000, type: 0
break KERN: mtrr: 1: base: 0xc0000, size: 0x40000, type: 0
break KERN: mtrr: 2: base: 0xdee80000, size: 0x80000, type: 0
break KERN: mtrr: 3: base: 0xdef00000, size: 0x100000, type: 0
break KERN: mtrr: 4: base: 0xf0000000, size: 0x10000000, type: 0
break KERN: mtrr: 5: base: 0xe0000000, size: 0x20000000, type: 1
break KERN: remove_memory_type_range(92369, 0xa0000, 0x60000, 0)
break KERN: set MTRRs to:
break KERN: mtrr: 0: base: 0xdee80000, size: 0x80000, type: 0
break KERN: mtrr: 1: base: 0xdef00000, size: 0x100000, type: 0
break KERN: mtrr: 2: base: 0xf0000000, size: 0x10000000, type: 0
break KERN: mtrr: 3: base: 0xe0000000, size: 0x20000000, type: 1
break

Hope this helps. By the way, when still in native resolution (in workspace 1), if I go to the screen preflet and try to set that resolution to all workspaces, I get the error "unknown mode".

comment:4 Changed 8 years ago by ttcoder

Reminds me of another ticket -- the bootloader's Display Mode List differs from that of the Screen prefs on my setup, maybe it differs on yours too.. Usually that kind of thing would be easy to track down but here it seems to be a regression that occured between 418xx and 42211-Alpha3 despite there being no changes in the bootloader's video.cpp file (not listed in the source browser I mean), so it could be one of those "non-deterministic" gremlins..

comment:5 Changed 8 years ago by axeld

Thanks, but that doesn't really help - an actual syslog would still be helpful, though, especially the beginning, where the VESA and EDID information is listed.

comment:6 Changed 8 years ago by DaaT

Will do.

Changed 8 years ago by DaaT

Attachment: syslog.zip added

comment:7 Changed 8 years ago by DaaT

Just attached the syslog.

comment:8 Changed 8 years ago by ttcoder

I've seen it mentionned previously that a "raw" syslog is better as it can be seen inline rather than requiring a download like zipped up ones.. So I took the liberty of extracting some stuff from the .zip, hoping it helps.. Here goes -- the VESA chunk at beginning of syslog does list a lot of modes, up to 1920x1240. However things are more odd for the EDID chunk -- it looks weird compared to what I've seen on other tickets, it's 3 lines long only! :

KERN: VESA version = 3.0, capabilities 1
KERN: OEM string: ATI ATOMBIOS
KERN:  0x100: 640 x 400 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x101: 640 x 480 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x103: 800 x 600 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x105: 1024 x 768 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x107: 1280 x 1024 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x110: 640 x 480 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 10 g: 5 5 b: 5 0 dcmi: 0
KERN:  0x111: 640 x 480 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x113: 800 x 600 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 10 g: 5 5 b: 5 0 dcmi: 0
KERN:  0x114: 800 x 600 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x116: 1024 x 768 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 10 g: 5 5 b: 5 0 dcmi: 0
KERN:  0x117: 1024 x 768 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x119: 1280 x 1024 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 10 g: 5 5 b: 5 0 dcmi: 0
KERN:  0x11a: 1280 x 1024 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x10d: 320 x 200 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 10 g: 5 5 b: 5 0 dcmi: 0
KERN:  0x10e: 320 x 200 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x120: 320 x 200 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x193: 320 x 240 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x195: 320 x 240 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x196: 320 x 240 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x1b3: 512 x 384 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x1b5: 512 x 384 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x1b6: 512 x 384 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x1c3: 640 x 350 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x1c5: 640 x 350 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x1c6: 640 x 350 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x133: 720 x 400 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x135: 720 x 400 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x136: 720 x 400 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x153: 1152 x 864 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x155: 1152 x 864 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x156: 1152 x 864 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x163: 1280 x 960 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x165: 1280 x 960 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x166: 1280 x 960 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x121: 640 x 480 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x122: 800 x 600 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x123: 1024 x 768 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x124: 1280 x 1024 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x143: 1400 x 1050 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x145: 1400 x 1050 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x146: 1400 x 1050 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x173: 1600 x 1200 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x175: 1600 x 1200 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x176: 1600 x 1200 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x183: 1792 x 1344 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x185: 1792 x 1344 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x186: 1792 x 1344 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x1d3: 1856 x 1392 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x1d5: 1856 x 1392 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x1d6: 1856 x 1392 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x1e3: 1920 x 1440 x 8 (a = 186, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x1e5: 1920 x 1440 x 16 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x1e6: 1920 x 1440 x 32 (a = 186, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN:  0x1ee: 1366 x 768 x 8 (a = 187, mem = 4, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 0 0 g: 0 0 b: 0 0 dcmi: 0
KERN:  0x1ef: 1366 x 768 x 16 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 5 11 g: 6 5 b: 5 0 dcmi: 0
KERN:  0x1f0: 1366 x 768 x 32 (a = 187, mem = 6, phy = e0000000, p = 1, b = 1)
KERN: 	mask: r: 8 16 g: 8 8 b: 8 0 dcmi: 0
KERN: Using mode 0x123
KERN: VESA compatible graphics!
KERN: EDID1: 4f
KERN: EDID2: ebx 102
KERN: EDID3: 34f
KERN: Welcome to the Haiku boot loader!
KERN: number of drives: 2
KERN: add_partitions_for(0x00105290, mountFS = no)

And later down the syslog..

KERN: 0x00106bf0 Partition::~Partition
KERN: user_menu: enter
KERN: user_menu: leave
KERN: load kernel...
KERN: video mode: 1366x768x32
KERN: smp: found 4 cpus
KERN: smp: apic_phys = 0xfee00000

I'm helping out on this one as there's a chance that axel fixing your ticket might actually end up also fixing my ticket ;-)

comment:9 Changed 8 years ago by DaaT

Feel free to help :)

The last bit has the native resolution because I selected it from the safe menu at boot. And it is strange that while VESA gives out all those resolutions, when at the screen preflet that highest I can use is 1024x768.

comment:10 Changed 8 years ago by axeld

Thanks for the syslog. Since hrev42421, one of your problems should be gone, namely, the 1366x768 mode should now be available from the Screen preferences. Since your monitor obviously does not deliver any EDID data, you'll have to set that mode manually, though.

I'll keep this ticket open in any case, since the second problem (ie. app_server ignoring the safe mode on Workspace switch) is still valid. Not sure how to handle this, though, and if the current practice isn't really what would be the preferred way, though (it provides a way to start the system in a preselected resolution, but let's you change it afterwards, resp. falls back to the modes you stored). Opinions welcome.

comment:11 Changed 8 years ago by DaaT

I downloaded the 42421 nightly and installed it, same problem still, no 1366x768 resolution available from the screen preflet and if I choose it at boot time and go to the preflet, when clicking the resolution button I get the "no mode" error (or similar, can't remember the exact msg atm, sorry).

Maybe your 42427 commit helps?

comment:12 Changed 8 years ago by axeld

Hm, that's rather strange. Are you sure you actually tested hrev42421 or later? Could you run a version of the vesa.accelerant with extra debugging output, and attach a syslog from that run here? I can mail you the accelerant privately.

hrev42427 does not affect you, since your system doesn't have EDID support.

comment:13 Changed 8 years ago by DaaT

Yes, it was 42421 I tested, it's still the latest nightly actually. I can download the next one and try it as well.

In the meantime if you want to e-mail me that specific vesa.accelerant, send it over to daat . teixeira @ gmail . com. Anything in particular I need to do once I have it, or will all the debug info be in the syslog?

comment:14 Changed 8 years ago by ttcoder

That 'debug' vesa accelerant might be useful for me too if it logs/TRACE()s its initialization (for my other problem with monitor turning blank when kernel loads up in 640x480x32 and staying blank/switched-off even after app_server starts). If it's not then ignore this comment.. Otherwise my provider is spamcop.net and my email login is degea.

Changed 8 years ago by DaaT

Attachment: vesa_debug_syslog.zip added

comment:15 Changed 8 years ago by DaaT

Attached the syslog while using the debug version of the VESA accelerant.

comment:16 Changed 8 years ago by ttcoder

Don't zip up the syslog ;-)

@devs: the mode DaaT needs is present in first two lists but not in the last one:

KERN: vesa: vesa_init() completed successfully!
KERN: vesa: acc: vesa.accelerant
KERN: VESA Initial modes:
KERN:   640 x 350 @ 8
KERN:   640 x 350 @ 16
(..)
KERN:   1366 x 768 @ 8
KERN:   1366 x 768 @ 16
KERN:   1366 x 768 @ 32
KERN: VESA Add mode: 16727 kHz, (640, 640, 704, 768), (350, 351, 354, 363)
KERN: Last message repeated 2 times.
KERN: VESA Add mode: 19521 kHz, (640, 648, 712, 784), (400, 401, 404, 415)
(..)
KERN: VESA Add mode: 85860 kHz, (1368, 1440, 1584, 1800), (768, 769, 772, 795)
KERN: Last message repeated 2 times.
KERN: VESA Final mode list:
KERN: VESA Final mode: 16727 kHz, (640, 640, 704, 768), (350, 351, 354, 363)
KERN: VESA Final mode: 25175 kHz, (640, 656, 752, 800), (350, 387, 389, 449)
(..)
KERN: VESA Final mode: 64108 kHz, (1024, 1080, 1184, 1344), (768, 769, 772, 795)
KERN: VESA Final mode: 75000 kHz, (1024, 1048, 1184, 1328), (768, 771, 777, 806)
KERN: VESA Final mode: 78750 kHz, (1024, 1040, 1136, 1312), (768, 769, 772, 800)
KERN: atheroswifi: init_driver(0x81b048e0)
KERN: VESA Final mode: 94500 kHz, (1024, 1072, 1168, 1376), (768, 769, 772, 808)

comment:17 Changed 8 years ago by ttcoder

A wag (wild ass guess): maybe 1366 gets filtered out by is_mode_supported() because it differs by 2 from "1368", yet this filter requires an exact match...?

comment:18 Changed 8 years ago by axeld

Good catch actually, that's indeed the problem here; the timing is different from the actual size. Not sure if that is a good idea in general, and I remember a similar issue with that resolution on some other monitor.

comment:19 Changed 8 years ago by axeld

Please retry with hrev42454. This time your resolution should be finally available :-)

comment:20 Changed 8 years ago by DaaT

Great news! That one did the trick Axel, native resolution available and changing workspaces don't mess it up either! Thanks.

comment:21 Changed 8 years ago by anevilyak

Resolution: fixed
Status: newclosed

Thanks for reporting back!

comment:22 Changed 8 years ago by axeld

Resolution: fixed
Status: closedreopened

Thanks, but the original problem (Workspaces change resolution) is still present, ie. the app_server does not honor the safe mode settings on workspace switch anymore.

So until we decide how this should be solved (if at all), I would like to keep the ticket open.

comment:23 Changed 8 years ago by anevilyak

My mistake, sorry.

comment:24 Changed 2 years ago by axeld

Owner: changed from axeld to nobody
Status: reopenedassigned
Note: See TracTickets for help on using tickets.