Poor performance Intel Arc B580 in Fedora

Hi, I changed my graphics card, im on Fedora 42 GNOME wayland.
I previously had an NVIDIA GTX 1050 2GB and switched to the Intel Arc B580. I’m noticing that the GNOME desktop environment is responding with very poor performance, as if it were using the integrated graphics instead of the dedicated one, which is very strange because in the BIOS I explicitly set it to use only the dedicated GPU.
I understand that Fedora includes everything necessary for Intel graphics to work — what could be missing? It feels like some library or driver is missing.
Thanks.

Hello and welcome!

Could you provide the output of running inxi -Fzxx (you may need to install to install the package first)?

This will provide information on the graphics adapters installed and which drivers are being used.

Thanks!

Sure!

inxi -Fzxxx:

System:
  Kernel: 6.14.4-300.fc42.x86_64 arch: x86_64 bits: 64 compiler: gcc v: 15.0.1
    clocksource: tsc
  Desktop: GNOME v: 48.1 tk: GTK v: 3.24.49 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 48.0 Distro: Fedora Linux 42
    (Workstation Edition)
Machine:
  Type: Desktop Mobo: Micro-Star model: H310M PRO-VH (MS-7B33) v: 1.0
    serial: <superuser required> UEFI: American Megatrends v: 1.E0
    date: 07/10/2024
CPU:
  Info: 6-core model: Intel Core i5-9600K bits: 64 type: MCP
    smt: <unsupported> arch: Coffee Lake rev: C cache: L1: 384 KiB L2: 1.5 MiB
    L3: 9 MiB
  Speed (MHz): avg: 800 min/max: 800/4600 cores: 1: 800 2: 800 3: 800 4: 800
    5: 800 6: 800 bogomips: 44398
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel Battlemage G21 [Arc B580] vendor: ASRock driver: xe
    v: kernel arch: Xe2 pcie: speed: 2.5 GT/s lanes: 1 ports: active: HDMI-A-3
    empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-4 bus-ID: 03:00.0
    chip-ID: 8086:e20b class-ID: 0300
  Device-2: Razer USA Gaming Webcam [Kiyo] driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 1-8:3 chip-ID: 1532:0e03
    class-ID: 0102
  Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
    compositor: gnome-shell driver: X: loaded: nvidia unloaded: modesetting
    alternate: fbdev,nouveau,nv,vesa gpu: xe display-ID: 0
  Monitor-1: HDMI-A-3 model: Philips PHL 241V8 serial: <filter>
    res: 1920x1080 dpi: 93 size: 527x296mm (20.75x11.65") diag: 604mm (23.8")
    modes: max: 1920x1080 min: 720x400
  API: OpenGL v: 4.6 vendor: intel mesa v: 25.0.4 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: Mesa Intel Graphics (BMG G21)
    device-ID: 8086:e20b display-ID: :0.0
  API: Vulkan v: 1.4.309 layers: 1 surfaces: xcb,xlib,wayland device: 0
    type: discrete-gpu driver: mesa intel device-ID: 8086:e20b device: 1
    type: cpu driver: mesa llvmpipe device-ID: 10005:0000
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
  Info: Tools: api: glxinfo,vulkaninfo x11: xdriinfo, xdpyinfo, xprop,
    xrandr
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Micro-Star MSI
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a348
    class-ID: 0403
  Device-2: Intel vendor: ASRock driver: snd_hda_intel v: kernel pcie:
    speed: Unknown lanes: 63 bus-ID: 04:00.0 chip-ID: 8086:e2f7 class-ID: 0403
  Device-3: Razer USA Gaming Webcam [Kiyo] driver: snd-usb-audio,uvcvideo
    type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 1-8:3 chip-ID: 1532:0e03
    class-ID: 0102
  API: ALSA v: k6.14.4-300.fc42.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.4.2 status: active (process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin 4: pw-jack type: plugin
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: Micro-Star MSI driver: r8169 v: kernel pcie: speed: 2.5 GT/s
    lanes: 1 port: 3000 bus-ID: 05:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth:
  Device-1: Realtek Bluetooth Radio driver: btusb v: 0.8 type: USB rev: 1.1
    speed: 12 Mb/s lanes: 1 bus-ID: 1-1:2 chip-ID: 0bda:8771 class-ID: e001
    serial: <filter>
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.1
    lmp-v: 10 class-ID: 7c0104
Drives:
  Local Storage: total: 894.25 GiB used: 94.68 GiB (10.6%)
  ID-1: /dev/sda vendor: Kingston model: SA400S37960G size: 894.25 GiB
    speed: 6.0 Gb/s tech: SSD serial: <filter> fw-rev: 62C3 temp: 29 C
    scheme: GPT
Partition:
  ID-1: / size: 232.67 GiB used: 94.29 GiB (40.5%) fs: btrfs dev: /dev/sda3
  ID-2: /boot size: 973.4 MiB used: 350.3 MiB (36.0%) fs: ext4
    dev: /dev/sda2
  ID-3: /boot/efi size: 598.8 MiB used: 53.3 MiB (8.9%) fs: vfat
    dev: /dev/sda1
  ID-4: /home size: 232.67 GiB used: 94.29 GiB (40.5%) fs: btrfs
    dev: /dev/sda3
Swap:
  ID-1: swap-1 type: partition size: 8 GiB used: 0 KiB (0.0%) priority: 10
    dev: /dev/sda7
Sensors:
  System Temperatures: cpu: 30.0 C pch: 53.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 8 GiB available: 7.68 GiB used: 2.58 GiB (33.6%)
  Processes: 380 Power: uptime: 5m states: freeze,mem,disk suspend: deep
    wakeups: 0 hibernate: platform Init: systemd v: 257 target: graphical (5)
    default: graphical
  Packages: pm: rpm pkgs: N/A note: see --rpm pm: flatpak pkgs: 26
    Compilers: gcc: 15.1.1 Shell: Bash v: 5.2.37 running-in: gnome-terminal
    inxi: 3.3.38

Thanks for providing that information! It looks like it is using the xe driver.

It is also reporting that the video card is only connected using a single PCIe at 2.5 GT/s, which is PCIe Gen 1. I wonder if running sudo lspci -vv -d 03:00.0 reports anything different.

If it’s reporting the same, iIs the graphics card installed in the full-sized x16 slot? There might be an issue with PCIe speed and link negotiation.

Did you enable Re-Size BAR Support

Yes. Im using garuda xfce for gaming in dual boot with no problem.

Ok, here the out:
sudo lspci -vv -d 03:00.0

lspci: -d: Invalid device ID

Sorry for the delay, I really appreciate your help.

You can run lspci and use the device ID that’s listed for the GPU instead. The output you provided earlier seemed to show 03:00.0, but I may have misinterpreted that.

1 Like

sudo lspci -vv -s 03:00.0

03:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Arc B580] (prog-if 00 [VGA controller])
	Subsystem: ASRock Incorporation Device 6021
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin ? routed to IRQ 124
	Region 0: Memory at 90000000 (64-bit, non-prefetchable) [size=16M]
	Region 2: Memory at 4000000000 (64-bit, prefetchable) [size=16G]
	Expansion ROM at 91000000 [disabled] [size=2M]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1
			TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
			 AtomicOpsCtl: ReqEn-
			 IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
		Address: 00000000fee02000  Data: 0021
		Masking: 00000000  Pending: 00000000
	Capabilities: [d0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 0
		ARICtl:	MFVC- ACS-, Function Group: 0
	Capabilities: [110 v1] Null
	Capabilities: [200 v1] Address Translation Service (ATS)
		ATSCap:	Invalidate Queue Depth: 00
		ATSCtl:	Enable-, Smallest Translation Unit: 00
	Capabilities: [420 v1] Physical Resizable BAR
		BAR 2: current size: 16GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
	Capabilities: [400 v1] Latency Tolerance Reporting
		Max snoop latency: 71680ns
		Max no snoop latency: 71680ns
	Kernel driver in use: xe
	Kernel modules: xe

I’ve looked at the specs of the H310M PRO-VH motherboard that’s listed in inxi and the full x16 slot is capable of Gen 3. If the card is installed in that slot, then we would see a Speed of 8 GT/s and a width of x8 (Intel ARC GPUs only use 8 lanes).

Indeed, it is installed in the only x16 slot — perhaps not in the best possible way — but even so, I don’t think that’s what’s causing the poor performance in GNOME Wayland.

Just wondering what motherboard are you using and what processor? I am on an I9-12900 processor and a MSI Pro z690-A Wifi Motherboard. I also had similar issues until I enabled resizable bar in the bios. Do you have that option in your bios?

-Edit
After finding your motherboard it seems that it doesn’t support resizable bar. Which is needed for the B580 to work most efficiently. I don’t see any bios updates that enable that option that I have found. Might be time to update your motherboard and processor if you are able to do so.

As far as Fedora 42 support of the B580 the only issue I am finding is Unreal Engine 5 and DX12 support in the drivers. Still looking into it. Also AI support isn’t really available if you are into that at all. Hopefully this gives you an idea on options.

In a BIOS update, Resizable BAR was added — it doesn’t explicitly say so in the update notes, but it definitely has it, and I have it enabled.
MSI H310M PRO-VH: https://latam.msi.com/Motherboard/H310M-PRO-VH/Specification

On the other hand, what I’m not 100% sure about is the processor, because it’s a 9th generation one (i5-9600k).

Do you have the ARC B580? Could you share a ‘sudo lspci -vv -s 03:00.0’ so I can see if you have the same ‘problem’ with the 2.5GT/s link speed? I’ve seen several people report that it works fine for them but still shows a generation 1 speed.

Does the link speed increase if you run some graphics apps to increase load? eg: glxgears

Ok cool glad they added it. Now about the I5-9600k since that is a 9th gen I want to say that it doesn’t have the thru put to keep up with the B580. Lots of people running tests on the Ytubes. As far as what you asked me for.

03:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Arc B580] (prog-if 00 [VGA controller])
Subsystem: Intel Corporation Device 1100
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin ? routed to IRQ 211
Region 0: Memory at 81000000 (64-bit, non-prefetchable) [size=16M]
Region 2: Memory at 6000000000 (64-bit, prefetchable) [size=16G]
Expansion ROM at 82000000 [disabled] [size=2M]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, LnkDisable- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1
TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
AtomicOpsCtl: ReqEn-
IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq-
10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
Address: 00000000fee00d98 Data: 0000
Masking: 00000000 Pending: 00000000
Capabilities: [d0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
ARICap: MFVC- ACS-, Next Function: 0
ARICtl: MFVC- ACS-, Function Group: 0
Capabilities: [110 v1] Null
Capabilities: [200 v1] Address Translation Service (ATS)
ATSCap: Invalidate Queue Depth: 00
ATSCtl: Enable-, Smallest Translation Unit: 00
Capabilities: [420 v1] Physical Resizable BAR
BAR 2: current size: 16GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
Capabilities: [400 v1] Latency Tolerance Reporting
Max snoop latency: 15728640ns
Max no snoop latency: 15728640ns
Kernel driver in use: xe
Kernel modules: xe

1 Like

I do realize you were not talking to be but I have done 2 different tests. I was running without a game running then with a game running (Bendy and the Ink Machine.) The link speed does not increase on my system so I don’t think it will on his either. The only difference when running the non-game vs game is:

Non-game Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-

Game: Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-

That is the only changes when running the ‘sudo lspci -vv -s 03:00.0’ command. Same result when running glxgears also.

I think the LnkCap is the line that will provide both the current PCIe link speed and link width.

Indeed it does. I was just showing that the link speed is not changing between running a non graphic intensive process and then a game running. The question was the link speed changing. In my test the link speed didn’t change. I would have thought that it would have while running something more demanding.

same than @judges79 , no changes, gen 1 constantly

Apparently it’s something already reported and seen by Intel https://www.intel.com/content/www/us/en/support/articles/000094587/graphics.html