Dual AMD GPU on laptop

​Hi,
​I recently installed Haiku on an old HP TPN-F115 laptop and I’m amazed by how fast and responsive the system feels!
​This machine features a dual-AMD graphics configuration:
​Integrated: AMD Radeon HD 8330 (part of the Kabini APU)
​Dedicated: AMD Radeon HD 8550M

​Right now, Haiku boots fine and the desktop UI runs smoothly at native resolution using the radeon_hd driver, which seems to default to the integrated HD 8330.
​I believe I understand that modern hybrid graphics switching isn’t fully supported yet, but I was wondering: is there any known workaround, boot option, or driver_settings tweak to force Haiku to initialize and use the dedicated GPU instead of the integrated one? (e.g. blacklisting a specific PCI ID or forcing the driver to bind to the secondary card).

​Has anyone successfully dealt with a similar AMD/AMD dual-GPU setup?

Thanks for any insights

I am not sure if you can change the GPUs, I don’t have a Haiku laptop with multiple GPUs. But, you are best sticking with the 8330 anyways. 8550M is the Mars/Sun family which I do not think is supported by Haiku’s driver.

If you can open terminal and run the “listdev” command and share the output that will show the exact device ID for the 8550M and we can see if it’s supported.

This is the result of listdev:

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1536: Family 16h Processor Root Complex

device Display controller (VGA compatible controller, VGA controller) [3|0|0]
  vendor 1002: Advanced Micro Devices, Inc. [AMD/ATI]
  device 9832: Kabini [Radeon HD 8330]

device Multimedia controller (Audio device) [4|3|0]
  vendor 1002: Advanced Micro Devices, Inc. [AMD/ATI]
  device 9840: Kabini HDMI/DP Audio

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1538: Family 16h Processor Function 0

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1439: Family 16h Processor Functions 5:1

device Display controller [3|80|0]
  vendor 1002: Advanced Micro Devices, Inc. [AMD/ATI]
  device 666f: Sun LE [Radeon HD 8550M / R5 M230]

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1439: Family 16h Processor Functions 5:1

device (Unknown) (255:0:0) [ff|0|0]
  vendor 10ec: Realtek Semiconductor Co., Ltd.
  device 5229: RTS5229 PCI Express Card Reader

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1439: Family 16h Processor Functions 5:1

device Network controller (Ethernet controller) [2|0|0]
  vendor 10ec: Realtek Semiconductor Co., Ltd.
  device 8136: RTL810xE PCI Express Fast Ethernet controller

device Bridge (PCI bridge, Normal decode) [6|4|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1439: Family 16h Processor Functions 5:1

device Network controller [2|80|0]
  vendor 10ec: Realtek Semiconductor Co., Ltd.
  device 8179: RTL8188EE Wireless Network Adapter

device Serial bus controller (USB controller, XHCI) [c|3|30]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 7814: FCH USB XHCI Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

device Mass storage controller (SATA controller, AHCI 1.0) [1|6|1]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 7804: FCH SATA Controller [AHCI mode]

device Serial bus controller (USB controller, OHCI) [c|3|10]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 7807: FCH USB OHCI Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

      device Human Interface Device (Boot Interface Subclass, Mouse) [3|1|2]
        vendor 03f0: HP, Inc
        device a407: Wireless Optical Comfort Mouse

device Serial bus controller (USB controller, EHCI) [c|3|20]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 7808: FCH USB EHCI Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

      device Video (Video Streaming) [e|2|0]
        vendor 064e: Suyin Corp.
        device c342: Unknown

device Serial bus controller (USB controller, OHCI) [c|3|10]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 7807: FCH USB OHCI Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

device Serial bus controller (USB controller, EHCI) [c|3|20]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 7808: FCH USB EHCI Controller

   device Hub (Unused, Full speed (or root) hub) [9|0|0]
     vendor 0000: Unknown
     device 0000: Unknown

device Serial bus controller (SMBus) [c|5|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 780b: FCH SMBus Controller

device Multimedia controller (Audio device) [4|3|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 780d: FCH Azalia Controller

device Bridge (ISA bridge) [6|1|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 780e: FCH LPC Bridge

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1530: Family 16h Processor Function 0

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1531: Family 16h Processor Function 1

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1532: Family 16h Processor Function 2

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1533: Family 16h Processor Function 3

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1534: Family 16h Processor Function 4

device Bridge (Host bridge) [6|0|0]
  vendor 1022: Advanced Micro Devices, Inc. [AMD]
  device 1535: Family 16h Processor Function 5

using lspci:

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Root Complex
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kabini [Radeon HD 8330]
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 0
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:02.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:02.5 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 01)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 39)
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 39)
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI Controller (rev 39)
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 39)
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 3a)
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 11)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Function 5
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun LE [Radeon HD 8550M / R5 M230]
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 07)
04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188EE Wireless Network Adapter (rev 01)

Thanks for the support

That PCI ID 1002:666f is not in the radeon_hd support list, and even if it was I don’t think Haiku would handle it correctly anyways. It sounds the the 8550M is used as a separate rendering engine so to speak, but doesn’t really register as an entire separate GPU, and passes the results back to the 8330 APU. I’m not seeing anything in the Haiku code that would support that. This is why I don’t think you can just select the 8550M.

I also don’t think you are missing anything by using the 8330. The 8550M seems weird… it’s actually an older display engine/video decoder/shader architecture than the 8330, though it does have dedicate memory and a higher clockspeed.

Long story short… I think the 8330 is fine. From a Haiku perspective, I don’t think you’d see any noticeable difference in performance anyways.

1 Like

sorry if this is slightly off-topic, but I have a doubt regarding a strange mouse behavior inside web browser windows. I’m continuing the discussion here because I suspect it might be connected to the GPU driver topic we were talking about earlier.

Here is what’s happening: whenever I move the mouse pointer inside a browser window, some black squares (visual artifacts) appear right next to the cursor, as if that area isn’t refreshing properly.

I have already tested multiple browsers and the issue persists across all of them. Interestingly, the problem is strictly limited to the inside of the browser window; as soon as the pointer moves outside of it, everything looks and works perfectly normal.

Could this be caused by the GPU drivers? If so, is there any workaround or setting I can tweak to prevent this unpleasant behavior?

Any help or insight would be highly appreciated

This is caused by the use of BDirectwindow together with a driver that doesn’t support hardware cursors. We have been discussing this in another GPU driver thread: My adventure writing a display adapter driver

It’s not particularly related to web browsers, but I guess the ones you’ve tried are all GTK based, and currently the GTK backend for Haiku goes through a Wayland emulation that uses BDirectwindow.

1 Like

Since the browsers I’ve tried are all GTK-based, are there any alternative browsers available that don’t suffer from this specific issue? Alternatively, is there any workaround I could apply to fix this right now, or perhaps some manual changes/patches I could apply if I compiled a browser myself?

​Thanks again for the help and for pointing me to that driver thread!

I get this too. It happens in IceWeasel pretty much all the time, and in LibreWolf if the laptop has been up for more that 36 hours or so?

Since this issue only affects wayland based ports you can try:

Our own WebPositive;
Lightweight browsers: Links2 and netsurf;

aswell as falkon (a qt browser)

And if you just want to watch youtube videos qmplay2 is an excelent video player providing this.

1 Like

The issue primarily affects Wayland-based ports because there is some bug somewhere in the Wayland layer where incremental redraws on subwindows (IIRC) don’t work right, so instead there is a workaround forcing the entire window to be redrawn so at least updates work. If that bug was fixed, a lot of these mouse cursor redraw problems would go away, I think.

2 Likes

Thanks a lot! Using Falkon actually fixed the artifact problem completely.

The only issue now is that this forum says my browser is not supported. I tried changing the User Agent in the settings, but it didn’t work. I’ll do some more testing to see if I can get around it.

Thank you again for the help!