#15516 closed bug (fixed)
Misaligned and slow display on Intel Skylake GT2
Reported by: | Pintaio | Owned by: | rudolfc |
---|---|---|---|
Priority: | normal | Milestone: | R1/beta4 |
Component: | Drivers/Graphics/intel_extreme/skylake | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description (last modified by )
I'm running Haiku x86_64 hrev53612 My machine is Dell Latitude E5570 I5-6300U 8Gb RAM, graphics chip: Intel Skylake GT2 [HD Graphics 520]
In Legacy Mode (Vesa driver) everything works ok. If haiku loads Intel_extreme driver, painting screen is very slow everytime I open a folder, launch an app or clic something. Also, I have screen glitches: part of desktop right side is shown on left side of the screen.
Attachments (28)
Change History (71)
by , 5 years ago
Attachment: | syslog_latitude_e5570 added |
---|
by , 5 years ago
Attachment: | screen_glitches.jpg added |
---|
comment:1 by , 5 years ago
Component: | Drivers → Drivers/Graphics/intel_extreme/skylake |
---|---|
Description: | modified (diff) |
Keywords: | Intel Skylake removed |
Milestone: | R1/beta2 → Unscheduled |
Platform: | x86-64 → All |
Version: | R1/beta1 → R1/Development |
comment:2 by , 5 years ago
Summary: | Intel Skylake GT2 [HD Graphics 520], Dell Latitude E5570 → Misaligned and slow display on Intel Skylake GT2 |
---|
by , 5 years ago
comment:3 by , 3 years ago
Hi, could be that the misaligned screen is solved in a 32bit testversion of the driver, which you can download here:
https://discuss.haiku-os.org/t/graphics-on-dell-laptop-in-vesa-mode-only/10583/64
I'd be interested in the results of a quick test with it, both if it works and if it does not work..
comment:4 by , 3 years ago
I've tried driver (version 1 and 2), but my laptop boots everytime in vesa mode.
comment:6 by , 3 years ago
I've tested intel_extreme_x64_2021-10-16, haiku-master-hrev55599-x86_64-anyboot:
Haiku boots everytime in vesa mode, it ignores intel driver.
comment:7 by , 3 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Hi all, Since a week or two I have a skylake desktop system (uefi) at my disposal and I am testing the driver on it.
- (diver) the slow drawing was caused by the app_server waiting on the acceleration engine, but that does not work and so drawing is stalled bigtime. I think waiting for engine idle wouldn't need to be called by app_server since it does not use the engine anymore these days, but anyhow I have disabled that function internally in case of skylake. This slow drawing effect should be gone since it's already in git some time now.
- mode setting is not yet supported, apart from (now) setting colorspace and virtual size (BWindowScreen in example). You should be working with the same resolution as the system starts with during the icons screen, or it will not work yet. People reporting VESA remaining active are encouraged to let know the cardID, but also we need to update GART support driver, so the CPU memory interface chipset should be made known as well or it still won't work.
- If the ID is in the driver, and in the GART driver, and you are still using VESA (driver won't kick in with app_server), then please check (in terminal) ls /dev/graphics to see if the kernel driver is loaded, also syslog is interesting to see if GART works, and of course the devices list (in case it does not).
- unfortunately, app_server cannot use the accelerant if you are on a UEFI system, where it does not make one bit of a difference if you boot using UEFI or legacy BIOS emulation, and not even if you run 32 or 64bit Haiku: our loader loads the unpackaged hierarchy gfx driver too late for app_Server. So this is a bug outside of the driver, which really should be solved ASAP. Currently I can only test skylake on an 'unpackaged' system as I need to place the driver to test in the system hierarchy. I saw this exact same behaviour also on Microsoft Surface 3: same trouble there.
- As soon as I make more progress I'll report it back here, and things I fix I will place in git so the system driver will have this updated behaviour and so you get a chance to test.. if the IDs are in the driver that is ;-)
- Most skylake systems are not yet supported by the driver in that their ID is not added or commented out. I guess that's probably best since the driver is known to not be ready enough yet. That being said I guess I could probably add one ID for some testing.
comment:8 by , 3 years ago
Hi Pintaio, I just saw that your card has been disabled in the driver (ID 0x1916). If you are willing to do some testing I can re-enable it for you in git since since https://git.haiku-os.org/haiku/tag/?h=hrev55639 support for skylake has increased a lot.
Let me know, ok? Thanks!
comment:10 by , 3 years ago
Super :-) I just committed the enable. See: https://git.haiku-os.org/haiku/commit/?id=18bb9a28a6ea592b954809b01e6d47deec790eaa
Please test the driver without and with external screen (types) and upload syslogs along with your observations. Thanks in advance!
Oh, BTW, just grab the next nightly that has this modification, since your probably on UEFI BIOS which means it's impossible to run the driver from the unpackaged hierarchy.
by , 3 years ago
Attachment: | 1366x768.jpg added |
---|
by , 3 years ago
comment:11 by , 3 years ago
I have tested the driver on my Dell Latitude, using its own screen: If I choose native resolution (1920x1080) it works well, with 32, 16 or 8 bit color depth and whatever refresh rate. If I choose anothe resolution, 1366x768 for instance, it doesn't fit the screen well, as you can see in the file I've attached (1366x768.jpg). Changing color depth or refresh rate doesn't help.
comment:12 by , 3 years ago
Thank you. The syslog and photo are helpfull indeed :-) The driver does not detect your internal panel. I think I'll hardcode the driver for mobile DDI systems to assume a panel on eDP, as this is the probable setup on these generation laptops.
If I do that the driver will attempt to program the panel where it now skips that. The only things programmed at this time is colordepth and virtual size. Refresh also does not really get programmed at this point. I'll upload a patch to git asap and let you know here..
comment:13 by , 3 years ago
Ok, apart from what I mentioned before: -On the laptop screen, brightness control doesn't work at all -External screen is not working, I've tested HDMI and VGA. In both cases, hot plugging and booting the laptop with the cable connected
comment:14 by , 3 years ago
Well, if you did try HDMI and VGA I would love to see a syslog with that. If you do test, connect and disconnect only while powered down ( and test seperate and combined the two external displays as well), so the driver has 'known conditions' so to speak.
And:
- during those tests: did the internal panel remain working?
- what connectors do you have for displays exactly? so one analog VGA, and one HDMI?
- exact brand and type of the laptop?
- does it have another graphics card, so beside the Intel? Which one?
Hope I make sense. As you can see, I'm interested in every little detail you can share..
by , 3 years ago
Attachment: | syslog-hdmi added |
---|
by , 3 years ago
Attachment: | syslog-vga added |
---|
comment:15 by , 3 years ago
I only have one external screen: my tv
I've tested the driver again: while powered down, plug HDMI in: nothing happened, no image on external screen. Same with VGA, no change, Haiku ignores my external screen.
I've attached both sysinfo files.
-The internal panel was working all the time, no change.
-My laptop have only one HDMI and one VGA connectors.
-It is Dell Latitude E5570 I5-6300U 8Gb RAM, graphics chip: Intel Skylake GT2 [HD Graphics 520]
-It doesn't have any othe graphics card, only Intel
comment:16 by , 3 years ago
Thank you. Well, the VGA connection is not seen, but via HDMI your TV is recognized, you have a 4k TV apparantly. Nice! :-)
So, next questions:
- if you start the laptop with the TV connected: do you see BIOS messages on it?
- do you see the icons screen on it?
- if no: can you select the TV via a keyboard shortcut before boot and do you have a picture then?
- if no: can you enter the BIOS and select external screen as primary screen, do you have a picture on the TV then?
- Can you upload syslogs from boot tries in case you are able to get a picture on tv before or during boot?
It's interesting to look at the logs!
- looks like the BIOS does not init your TV via either connection, so I'd expect you to -not- see the BIOS messages and icons screen upto now on it (?)
Thanks for your efforts and info!
comment:17 by , 3 years ago
Hi, I just uploaded full PLL programming for skylake, so can you try the next nightly where hrev55666 is included please? It's perfect if you use the new one for the questions I posted in previous message.
Thank you!
(over here all screens work, also dualscreen works)
comment:18 by , 3 years ago
Hi, I'm testing hrev55667
-If I start laptop with the TV connected, I cannot see any BIOS messages on it, neither icons screen.
-I cannot select the TV via keyboard shortcut before boot, but I can do it from Haiku's boot loader options screen: I get Haiku boot icons on TV, but no desktop, just the TV lose the signal.
-I cannot see any option in my BIOS to select an external screen.
Nevertheless, I have other better news: I've got a real monitor with the same resolution as my laptop (1080). I've done the same test with it:
-If I start laptop with the external monitor connected, I cannot see any image on it (syslog-internal-external)
-If I select the monitor via keyboard shortcut from Haiku's boot loader screen, the external monitor works, althought no dual screen, only external screen and I cannot go back to the internal panel.
Using the external screen, I cannot change resolution. Screen preferences shows strange options, only one 16:9 (1920x1080), if I choose another one, I get a black screen. (syslog-external-resolutions) (external-screen-1080.png)
On the other hand, I still can't change the resolution on the internal panel, neither brightness (syslog-internal-resolutions).
by , 3 years ago
Attachment: | syslog-internal-external added |
---|
by , 3 years ago
Attachment: | syslog-external-resolutions added |
---|
by , 3 years ago
Attachment: | external-screen-1080.png added |
---|
by , 3 years ago
Attachment: | syslog-internal-resolutions added |
---|
comment:19 by , 3 years ago
Thanks!
For the external screen tests:
- So the syslog-external-resolutions shows that it is indeed possible to detect the external screen with the driver as it is (1920x1080 screen), so how did you do that exactly? via haiku's boot loader screen?
- you could try again to get the 1600x900 mode to work, maybe with another refreshrate: if I got the base frequency not right, chances are if you fiddle with the refreshrate, you -might- be able to get another resolution going.
- What happens if you keep the native mode, but only change resolution? Can you upload a syslog from such a try?
Anyhow, this method is succesfull as far as detection is concerned (DDI B).
- If you do the same procedure for the VGA connection, would that work? can you upload a syslog from such a try?
- the picture shows the normal resolutions list, as far as the intel_extreme driver is concerned.
- The internal panel is never detected, I think I need to update the driver for that to always fake-detect it (DDC E in the driver if all is right). I think I'll do that so you can test what happens with the internal screen, and also if you change refresh and/or resolution there.
- The screen pref's intensity slider will probably indeed never work, I have not looked at the code for that yet.
Anyhow, all in all we are a step further in the good direction from the looks of it indeed! Thanks again :-)
comment:20 by , 3 years ago
I cannot change the resolution on the Desktop anymore with hrev 55667
EDIT: Was working with hrev: 55648 (VESA MODE!)
by , 3 years ago
Attachment: | syslog 55648 added |
---|
by , 3 years ago
Attachment: | syslog 55648.2 added |
---|
comment:21 by , 3 years ago
Hi Bruno, actually that's a good sign. You were running with VESA mode, now with the intel_extreme driver. Can you upload a syslog from the current nightly please? You could also wait to the next nightly, maybe you can switch modes again then, I have added a patch that should help with laptop internal panels: hrev55668
Would be perfect if you could upload at least a syslog from the 55668 or later.
Thank you!
comment:22 by , 3 years ago
Oh BTW, same applies to Pintaio: please test with hrev55668 or later and upload a syslog :-) Thank you too!
by , 3 years ago
Attachment: | syslog 55667 added |
---|
by , 3 years ago
Attachment: | syslog 55668 added |
---|
comment:25 by , 3 years ago
Bruno, please upload a photo so I get an impression. Also I am wondering if your messages should have been on a separate ticket?
Thanks for your info!
by , 3 years ago
Attachment: | screenshot1.png added |
---|
comment:27 by , 3 years ago
Hi
-I select external screen via keyboard shortcut from Haiku's boot loader screen. After booting laptop, I pressed spacebar until Haiku's boot loader screen was loaded, and the I was able to select external screen. If I tried to do it before that screen, system freezed.
-I have tried again to change the resolution to 1600x900 in the external panel, and this time it works! (syslog-external-resolutions-2), but this external panel doesn't support other refresh rate than 60Hz
-Using internal panel, I still cannot change resolution, I upload a new syslog: (syslog-internal-resolutions-2)
-This monitor do not have VGA connection, only HDMI
by , 3 years ago
Attachment: | syslog-external-resolutions-2 added |
---|
by , 3 years ago
Attachment: | syslog-internal-resolutions-2 added |
---|
by , 3 years ago
Attachment: | hrev55667.jpg added |
---|
comment:28 by , 3 years ago
Now with hrev. 55668
I manually choose 1600 x 900 at bootscreen options. At start I got kind of a split screen with 1280 x 800 ...changed to 1600 x 900 in screen preferences.
This way I got my native resolution. When restarted it will be correct start with 1600 x900 If I change the resolution now, I got split screens with the other resolutions (1440 x 900)
by , 3 years ago
Attachment: | syslog 1600x900manual added |
---|
comment:29 by , 3 years ago
Hi Pintaio, the syslog internal resolutions is incomplete, I am missing the boot stuff which would be interesting to see. Anyhow, looks like your panel is still not seen. Did you upgrade to hrev55668 already? Since that's needed for the internal panel to be 'seen' and program it, though you will probably manually need to select it's native resolution still (via screenprefs)
- If you upgrade to the latest nightly, please try once more with the internal panel only connected and upload a syslog from that;
- The external screen works nicely then. You could probably also try i.e. 1280x1024@60Hz then on it I take it. Should probably work as well. Could you retry your TVset once more, selecting it the same way you did for the 1920x1080 external screen? Could you upload a syslog from that again if you indeed saw the icons screen on it?
Thanks for your time spent on this all!
comment:30 by , 3 years ago
Hi Bruno, That is correct behaviour if your screen is not yet detected. If you are on a UEFI BIOS system, no matter if you run 32 or 64 bit, can you test a fresh nightly of hrev55668? Just installing the driver is not going to work on these systems. It -must- be in the system hierarchy I'm afraid..
If you did test a fresh nightly already, then I'm at a loss currently seeing your syslog: in that case indeed create a new ticket and move your info there from here, best even remove it from this ticket. I think we need to (and can) focus better then.
Thank your for testing and your time as well!
comment:31 by , 3 years ago
Hi Pintaio, please check hrev55669 as soon as the nightly is there: I've added detection and scaling for internal laptop panels. If you test please see if it comes up in native mode by itself at first boot, and then if you can select other resolutions which will all be nicely scaled to the panel's full size..
Also please upload a syslog again from this test..
Thanks in advance!
comment:32 by , 3 years ago
Hi, I've tested hrev55671
-Internal panel works better, Haiku comes up in 1920x1080 and now I can change whatever resolution: 1366x768, 1024x768, 1600x900... colordepth 8 bits, 16 or 32, 60Hz, 70Hz, 85Hz... everything seems to work, but brightness (as usua). syslog-internal-3
-Extrenal panel works better too, Haiku also comes up in 1920x1080, Screen Preferences now shows more resolutions (and more adjusted to a 16:9 screen), now I can change it to 1366x768, 1600x900, 1024x768... colordepth 8, 16 or 32 bits. syslog-external-3
-TV panel via HDMI now works, but in a limited way: Haiku comes up in 1920x1080, but some seconds affer it boots, signal is lost. The laptop continues to work, but the signal to the external display is lost. syslog-tv-hdmi
-TV panel via VGA still doesn't work. TV shows Haiku booting icons but, after that, signal is lost and I cannot see the desktop, so no syslog, sorry.
by , 3 years ago
Attachment: | syslog-internal-3 added |
---|
by , 3 years ago
Attachment: | syslog-external-3 added |
---|
by , 3 years ago
Attachment: | syslog-tv-hdmi added |
---|
comment:33 by , 3 years ago
Hello Pintaio, well, that's a nice result indeed! A few questions I have again if you don't mind:
- with just the internal screen: did you test a fresh nightly? if so: did haiku come up in native resolution automatically? and where the booticons also in that native resolution, or lower?
- so with external 1920x1080 panel connected: did you have output on both that external screen and the internal panel simultaneously?
- from the TVPanel the syslog did not contain info. Would it be possible to reboot after such a try and grab the previous syslog? if you can reboot via the reset button (short press) or via <alt><ctl><Del> short, wait a bit, then 5 seconds pressed: this file should contain the info we want.
Just trying to learn as much as I can.
Thank you for your detailed reports!
comment:34 by , 3 years ago
Hi rudolfc
-I've tested fresh nightly, hrev55673, and Haiku comes up in native resolution (1920x1080) automatically, booticons and Desktop.
Testing hrev55678:
-Booting with external 1920x1080 panel connected, but I got output only on internal panel (syslog-55678-internal)
-Booting into external TV, I got output on the TV. Everything seemed to work ok, I tested playing music files and I didn't got any sound through HDMI, only trhough internal speakers. (syslog-55678-TV-HDMI-attempt1)
-Booting again into external TV and I got output only for a few seconds before signal was lost. I booted again into internal panel and got syslog.old (syslog.old-55678-TV-HDMI-attempt2)
-Booting into external 1920x1080 panel and I got no output when I choose external panel via keyboard shortcut from Haiku boot loader options screen. Although I didn't have any signal, I pressed Enter to boot Haiku and I was able to see boot icons on the external panel, but I lost the signal again when Desktop was loaded.(syslog.old-55678-external)
I've had similar problems with external panel in other revisions.
Internal panel is working ok, but HDMI/external panel, seems to be unstable.
by , 3 years ago
Attachment: | syslog-55678-internal added |
---|
by , 3 years ago
Attachment: | syslog-55678-TV-HDMI-attempt1 added |
---|
by , 3 years ago
Attachment: | syslog.old-55678-TV-HDMI-attempt2 added |
---|
by , 3 years ago
Attachment: | syslog.old-55678-external added |
---|
comment:35 by , 3 years ago
Works nice now and I can even choose bigger resolutions than native 1600 x 900 looks very ok for me now. syslog I will attach for examination... no problem so far! Great work, thanks a lot rudolf
P.S.: GLTeapot does not work,but I have a hardware cursor now!
by , 3 years ago
Attachment: | syslog Bruno 55684 added |
---|
comment:36 by , 3 years ago
Hello again Pintaio, Thank you for the additional info. You btw still did not tell me if you had simultaneous output on two screens (internal and external) when the TV had working output for instance: so did at the point where you had working TVoutput (attempt 1), you also have output on the internal panel? or did the internal panel shut off ? or garbage?
From the looks of attempt 1 and 2 the TV was programmed exactly the same, so indeed, something is flaky somehow, maybe order of programming things or the fact the DPMS portion of code isn't operational yet. I think we best leave it for now, as probably the best way of getting this all to work stable is having actual access to such a system. The fact you have no sound on TV is correct as afaik haiku has not yet audio drivers that output to display connectors: this would be a combination of a audio driver and the display driver (audio has to be included in the video transport signal by the graphics driver, and at least intel_extreme does not support that yet).
For now I'd just like to know if you have simultanous output during attempt 1 with the TV, the rest we have to leave for a bit later I fear. Anyhow, it's nice that the internal panel works decently and can be set to various modes now I think :-)
comment:37 by , 3 years ago
Hi Bruno, thanks for the feedback. Looking good as well :-) I am surprised at the hardware cursor though, best way to test is probably the stars demo app and see if they deteriorate the non-moving mouse pointer if it's hovering on it's output window..
I must admit however I did not yet look at the cursor hooks.
The teapot does not work because it waits for vertical retrace, which does not work yet either, Will try to fix that soon.
Scaling is indeed possible both ways: up and down. For instance it would be able to fit a 1920x1080 desktop onto a 1280x1024 connected screen by downscaling in the driver and graphics card hardware, though the aspect then of course is deviating.
Note though that normally you probably won't encounter the scale-down situation. Behaviour is a bit unpredictable since app_server isn't able to control multiple screens, and the net situation you get is depending on which screen's EDID gets relayed to app_server. That should in my opinion always be the lowest common spec screen, but on the intel_extreme driver such logic is not (yet) in the driver. For instance the nvidia driver does have this logic, as well as aspect logic.
Thanks guys for testing!
comment:38 by , 3 years ago
Hi rudolfc, I do not have simultaneous output on two screens in any case, neither with the tv, nor with the external screen. Only one panel at the same time, internal or external.
If I choose the internal panel, external one is completely off, no garbage, just off.
If I choose the external panel, internal one is completely off, no garbage, just off.
Internal panel is working great, Thanks a lot for your effort\\
As the reason for opening the ticket was that the panel did not work well with the driver, for my part at least, it can be closed and considered solved
Thanks again!
comment:39 by , 3 years ago
Milestone: | Unscheduled → R1/beta4 |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
Ok, thank you for your part of the efforts as well. These last remarks offer a starting point for even more improvements, that's why I asked.
Closing ticket.
comment:41 by , 3 years ago
Maybe leave that as it is for now, app_server does not support it anyway, and I think I'd better concentrate on getting more systems up and running ;-)
But at some later point, yes indeed.
comment:42 by , 3 years ago
Hello Rudolf, I just tried the stars demo (now called: "Charts") with the Mouse cursor and yes the stars will destroy my cursor on collision! So no Hardware-Curser unfortunatelly. What about 2D accelreation is there a chance to get it working?
Also I tried a external HDMI Monitor but it does not work at all?! Even at boot it is not recognized by the Laptop?! Maybe a converter problem with my cable? I use a HDMI to VGA converter-cable...
comment:43 by , 3 years ago
Ok, clear.
For the external screen you need to actively select it somewhere during boot. Bios, boot options or keyboard shortcut. The latter probably while the booticons screen is on.
Same problem