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

I managed to get working B_MOVE_DISPLAY on radeon_hd: VideoStreams: Media Kit-like 3D hardware acceleration kit for Haiku - #37 by X512.

8 Likes

Ok, looking good apart from register access. I will have a look for these in docs, maybe you could try them then?

Update: Looks like the registers should be the same adresses and content.
I would expect DISPLAY_A or B to be in use, but also a C exists, maybe you could add that to see if it does something:
0x7219C = Primary C base adress, PRI_SURF_C, I think that’s INTEL_DISPLAY_A_SURFACE;
0x72188 = primary stride C adress;
0x721A4 = Primary offset C adress.

The other option to test is check if in mode.cpp, function ‘set_frame_buffer_registers’ executes the top part of the ‘if’ statement, or the ‘else’ part. Looks like it should be the upper part, if that works if forced, an extra check for your chipset series should be added there.

That’s about it what I can find quickly…

1 Like

Where documentation is available?

2 Likes

Documentation for intel GPUs: Hardware Specification - PRMs | 01.org

2 Likes

@X512 yours:

specifically:

See page 724 and a few beyond. Personally I compare this stuff often to the Ivy version to see for probable changes needed.

5 Likes

I made it working! Register PRI_OFFSET (0x701a4) works with formula h_display_start + v_display_start << 16.

20 Likes

I’d say we should update that in the driver then :smile:

14 Likes

Hi, I am hoping someone can give me a little guidance. I have a laptop with Intel HD Graphics 620.
device/type 0x3
device/subtype 0
device/interface 0
device/vendor 0x8086
device/id 0x5916

I am trying to determine if this device is just not supported by our driver or if I have a bug to be reported. I have tried to determine this myself, but I’m just lost.

Thanks

Donald

1 Like

I just tried hrev55421 64 bit
I don’t know if it is related, but with webpositive, on my laptop with intel hd 4000 (card ID 0x0166), I see some progress, finally I see accelerated and smooth 1080p movies, this one here in particular with lion cubs on Rumble. I can set some videos at this resolution and they go great, (same other videos dont play but I think it depends on some codec that is missing on HAIKU. On Rumble web+ works a little better, I can change the resolution of the videos, while on Youtube I can’t)

That problem persists, but I tried to do other tests, I change the number of colors and it works, only when I change the resolution I get blackscreen.

4 Likes

your Id’ are not in there (5916)
driver.cpp\intel_extreme\graphics\drivers\kernel\add-ons\src - haiku - Haiku’s main repository (haiku-os.org)

Your chip are from the Kaby Lake family

1 Like

@modeenf

Thanks for checking. I was really hoping it would be supported. :frowning:

2 Likes

My newest build is i5-10600k (Comet Lake) which uses UHD630 built in graphics. It could be a while before it is supported! :sweat_smile:

2 Likes

So i’ve updated the driver just now in git: hrev55436. If all is right it should now work without the patch @X512. If not, please let me know what’s needed extra and/or different… Thanks!

9 Likes

For the record, I created a ticket, but it has not much info yet:
https://dev.haiku-os.org/ticket/17264

Hope this will help getting it solved at some point :slight_smile:

3 Likes

I also have problem that app_server start freeze and load CPU after running accelerant test. Maybe retrace semaphore problem.

Accelerant cloning unfortunately not working. It returns error when attempting to clone. Cloning accelerant should perform better and cause less conflicts when app_server is running.

2 Likes

Also is it hard to implement hardware alpha blitting support? Software alpha blitting is slow because it use slow video memory reading.

2 Likes

Sorry, don’t know. I never looked at intel’s acceleration engine yet.
I am testing BWindowScreen atm on the intel driver and it seems to fail, so I’ll fix that if possible. Cloning I did not test yet (normally I am testing with a video consumer node which does that and displays video on a secondary graphics card: don’t even know if I can activate a second card alongside intel atm, and besides I don’t know if video overlay is supported on the intel driver, which the node needs (or scaled_filtered_blit)

I can imagine that the retrace semaphore isn’t working on your card since a lot does not work there yet (setting modes).

1 Like

It works for Intel graphics. At least GLTeapot shows 60 FPS. I also made BDirectWindow tearing tests with retrace semaphore.

2 Likes

ah ok, then there’s another problem there. Maybe the DPMS thing again?

Matrix channel user reported screen with artifacts. Any Ideas why this can happen?

20210925_211445