Improving the Intel Extreme Driver (Was: Graphics on Dell laptop in Vesa mode only)

Hi, so this is a generation 8 device from the wiki page. It’s not in the driver, and for now I would leave it that way (I did not specifically look at this generation yet, nor do I have the option to test on in yet).

Of course, you can for a test add the ID locally and see what happens for yourself. Don’t be disappointed if it doesn’t work though :wink:
One thing that is different is that the display port interface was replaced by digital display interface (DDI). There is some code in place for that, but as fas as I am aware of this hasn’t been tested yet.

There is a ticket with a chipset which also has DDI and over there connections on this port are still down at least.

So all in all: sure, there’s a chance, at least it’s the ‘next-up’ generation in line for testing and improving I’d say, but not yet today…

Hello kim1963! (sorry for the very late reply…)

You have a generation 9 system (Coffee Lake). I guess it will be a while before it can be supported I’m afraid…
Of course if I stumble upon such a system to test on, I will surely have a look… :wink:

OK: UPDATE for everyone:

(I cannot post a fourth reply, so I -have- to do it this way)

Hi everyone,

You’re encouraged to try hrev55189 (or later) to see what it does for your intel_extreme video!
I’ve changed the driver to follow BIOS setup for the pipes useage instead of trying to swith them actively.

Switching cannot be done (reliably) so this for now is the only way.

The result is:

  • you should have the same beaviour as before on a single screen, though if you did not have any picture you might be lucky now :wink:
  • if you have two screens connected, both should display the desktop now, provided you have set a compatible mode that both screens understand.
  • tested on G45 (Gen4) and IvyBridge (gen7) with all possible screen types single and combined, and I always have two (cloned) desktops (with two screens connected that is :slight_smile: )
  • Note though: if you have set your desktop resolution to the same resolution as the icons screen, you should also have a nice desktop on Display Port connected screens: but setting different resolutions is not going to work there yet. (I’m on it :wink: )

Please report back the results!
Also: I think it should be safe to add this modification to beta3. Please @PulkoMandy see if you have your laptop still in working order, and please include the update there if you are satisfied with the results…

Thanks!

8 Likes

OK

screenshot880

2 Likes

Hi,
Since apparantly no nightlies are built at this moment, I decided to upload binary versions of the driver here.
Get it at:
http://rudolfs-place.nl/Haiku/Downloads/Intel_extreme_drv_v5_hrev55189.zip

Thanks!

3 Likes

Hello rudolph,
here nothing new to see…
no dual mirror screen so far, still everything the same.

EDIT: I get mirror screen with 800 x 600

3 Likes

Hello,

I’ve got a new version to test with a few more general fixes: this might turn some more screens on at some systems outthere…

http://rudolfs-place.nl/Haiku/Downloads/Intel_extreme_drv_v6_hrev55200.zip

BTW: If someone encounters regressions, be sure to let me know about it! :slight_smile:

5 Likes

Hello again,
If you have a displayport connected monitor on i.e. G45, Sandy, or IvyBridge, you are encouraged to try hrev55203 to see if you can now set modes with that (and have a desktop). The mode is still as the BIOS pre-programmes it, but the driver now scales other resolutions to the resolution currently ‘on display’ on such a monitor.

I’ve tested succesfully on G45 and IvyBridge, if they are the only monitor connected. I’m also close to making it work that way when a second screen (other type) is there, but that requires a small structural change (again) in the driver. (Pipe and Transcoder are -not- the same in this case, but the driver assumes they -are- the same still).

I guess on Haiku first boot, when no EDID is found (which is the case still on displayport), Haiku uses the higest reported available mode from the cardBIOS. Which on my G45 is 1280x1024, and on Ivy 1920x1080: so these modes are currently also active with the driver in these monitors, and other resolutions are scaled to that.

So you can have a bit of influence on the behaviour by selecting a mode manually in the bootoptions (-not- failsafe videomode of course :wink: )

If you test, be sure to let know what happens (and I’d like a syslog from the attempt to learn from :slight_smile: )

12 Likes

I am so pleased you are doing this. Not being able to use a second (and larger) screen is one of the two things holding me back from making Haiku my default operating system.
The other thing is the state of available browsers, and we are led to expect improvements there too.

So keep it up! There are a lot of grateful people watching your progress.

9 Likes

thank you @Sebrof :slight_smile:
Update: The driver in git is updated again: it now supports dualhead clone mode on Sandy and Ivy bridge for displayport connected screens, including modeswitching (by scaling to bios preset mode).
My systems are now almost 100% OK, apart from the FDI lanes programming item (on analog screens)

On G45 (generation 4) I am currently also testing with displayport because I cannot set modes there yet if it’s alongside a second screen (only bootresolution works there), but from the looks of it that’s going to change as well. The setup differs somewhat from newer generations (no PCH for one)

I’m trying to program the link to the monitor which in principle already succeeded on Ivy (But it’s not included in the driver yet). This means more register definitions will be added to the driver as the data/ link M and N sits in another place in the generation 4 cards…

UPDATE:

YES! That works. I just saw a displayport link switch in refreshrate and resolution… So generation 4 will not scale to preset mode as Sandy and Ivy currently do in the driver, but it will -fully- set the mode.
Of course I just -got- to try this sequence on later cards as well… :slight_smile:

6 Likes

Hi @rudolfc I am getting a black screen with my Ivy Bridge on the latest nightly (55207). Device ID is 0166.
I have no other screens connected to the laptop.
I am gessing all your changes are not merged yet?

1 Like

You have a Sandy Bridge laptop. Did you have a screen before I worked on this? Yes, all my updates are committed. Laptops are a bit hard for me to do since I don’t have one here (I would need a system for each type of card to be able to test and understand all that’s happening).

Anywhow, did you open a ticket for this system? If not, best do so, add a description, upload a syslog (or previous syslog if you can’t get a picture) so we can see what the driver is doing…

1 Like

Oh, it’s probably wise for laptop owners to assume a secondary screen is likely to not work. You might be lucky, or you might not be lucky. I am testing on desktop systems (HP) sofar, doing my best to not break existing support. That seems to succeed sofar afaik… Though I have to admit that currently dualhead clone seems to not work on Sandy bridge desktop where I had it running some time ago.

That is interesting info for me as well, so I am going te doublecheck which part worked that I assumed -not- to, and update the driver again. But that will take a week or so, since I only occasionally have access to this system (it’s from a collegue of mine :wink: )

1 Like

I used to have a screen working before upgrading to the mentioned nightly.
I have opened ticket 17046.
Computer boots fine with framebuffer.

Ticket can be closed as invalid. Driver is working when booting from USB and from clean install. Somehow my install got corrupted. Sorry for the noise.

5 Likes

Hello as soon as I discovered that there was this thread that I read almost everything, taken by the enthusiasm I went to try the night-build that I downloaded a few days ago because I was going to see if the external montor works on the intel HD 4000 of my laptop.
Here is what i discovered:
it starts optimally at the native resolution of the internal monitor, but if i try to change resolution i always get black screen, the app to change resolution seems to recognize the GPU, but if i go to see on the devices, it seems that it says driver unknown, so I don’t know if the driver is started.
Of the external monitor, connected to the hdmi port there is no trace.
Here is the screenshot. (among the devices, I also have an nvidia Geforce GTX 1060 but it is connected as e-gpu via pci express, which obviously I have not tried to test, since in any case the laptop starts directly from the internal monitor and I don’t know how to force haiku to switch to nvidia, as long as it works.)

1 Like

Please try a 32bit build if possible and report how the driver behaves there. I suspect it will work there. I also saw that we suffer from black screen after mode sets on x64, same card. This is a regression introduced by beta3 approx, but -outside- of the driver. It worked correctly before and in the mean time I did zero updates to the driver…
Would be cool if we could pinpoint the offending commit to see how we can improve the driver’s robustness.

On a sidenote: the devices info is incorrect, while the screen prefs app shows correct info. You are using gen7, not gen3.

Apparantly the database behind devices is outdated or otherwise incorrect concerning Intel graphics.

5 Likes

I’ll try 32 bit

i don’t know, on the web they say my cpu i5-3210M is gen 3 , my laptop is a Vaio from 2012

(I also have an integrated Ati Radeon HD 7670, but I disabled it via bios because I have the e-gpu)

The card ID is 0x0166, see:

Maybe it’s wise if you create a ticket then, with all this info. Please upload a syslog there as well then so we can see what the driver makes of it.

1 Like

I haven’t created tickets for ten years, I don’t remember anything, not even where is the haiku sys-log, can you link some mini tutorial or doc to refresh my memory?
I haven’t seriously opened haiku in years. :sweat_smile:
(however i found that i have an account and created bugreports in the past that i had forgotten about :scream: :joy:)

3 Likes

You can find syslog files (previous_syslog, syslog, syslog.old) in folder /system/var/log

2 Likes