Test Intel Arc A310 ECO 4GB dGPU
I bought an Intel Arc A310 ECO with 4GB of VRAM, to see if it would run like the A750 and B580 I've been testing recently.
I will follow the same bringup I've done with the other Arc cards with the Xe driver, for example:
Weird... the card is currently not showing up with lspci:
$ lspci
0001:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 30)
0002:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 30)
0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
Also, card is on the site here: https://pipci.jeffgeerling.com/cards_gpu/intel-arc-a310.html
Tried on a completely fresh Pi OS install, so I didn't have the updated driver work / kernel getting in the way, and I just get:
$ lspci
0002:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 30)
0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0 South Bridge
Not sure why the card won't appear. Hopefully I don't have a dud!
Going to test on an x86 PC instead, to see what happens there.
Check the kernel log for the "link down" message that you normally get if there is nothing connected to the PCIe interface. I saw a similar thing with the A380 that lspci didn't show it (or the root complex), but I also didn't get the "link down" message, so it was as if it was trying to negotiate a link and never established it.
@6by9 - Here's the kernel log for a boot:
$ dmesg | grep pci
[ 0.000000] Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave nvme.max_host_mem_size_mb=0 numa=fake=8 system_heap.max_order=0 smsc95xx.macaddr=2C:CF:67:F9:1A:84 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=e9a321fc-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=US
[ 0.262906] brcm-pcie 1000110000.pcie: host bridge /axi/pcie@1000110000 ranges:
[ 0.262911] brcm-pcie 1000110000.pcie: No bus range found for /axi/pcie@1000110000, using [bus 00-ff]
[ 0.262919] brcm-pcie 1000110000.pcie: MEM 0x1b80000000..0x1bffffffff -> 0x0080000000
[ 0.262923] brcm-pcie 1000110000.pcie: MEM 0x1800000000..0x1b7fffffff -> 0x0400000000
[ 0.262928] brcm-pcie 1000110000.pcie: IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[ 0.262932] brcm-pcie 1000110000.pcie: IB MEM 0x1000131000..0x1000131fff -> 0xfffffff000
[ 0.264263] brcm-pcie 1000110000.pcie: PCI host bridge to bus 0001:00
[ 0.264267] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 0.264270] pci_bus 0001:00: root bus resource [mem 0x1b80000000-0x1bffffffff] (bus address [0x80000000-0xffffffff])
[ 0.264272] pci_bus 0001:00: root bus resource [mem 0x1800000000-0x1b7fffffff pref] (bus address [0x400000000-0x77fffffff])
[ 0.264283] pci 0001:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
[ 0.264289] pci 0001:00:00.0: PCI bridge to [bus 00]
[ 0.264291] pci 0001:00:00.0: bridge window [mem 0x1b80000000-0x1bbfffffff]
[ 0.264308] pci 0001:00:00.0: PME# supported from D0 D3hot
[ 0.264875] pci 0001:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 0.368571] brcm-pcie 1000110000.pcie: clkreq-mode set to safe
[ 0.368574] brcm-pcie 1000110000.pcie: link up, 5.0 GT/s PCIe x1 (!SSC)
[ 1.468568] pci 0001:01:00.0: not ready after 1023ms; waiting
[ 2.524568] pci 0001:01:00.0: not ready after 2047ms; waiting
[ 4.828568] pci 0001:01:00.0: not ready after 4095ms; waiting
[ 9.180572] pci 0001:01:00.0: not ready after 8191ms; waiting
[ 17.628568] pci 0001:01:00.0: not ready after 16383ms; waiting
[ 35.804569] pci 0001:01:00.0: not ready after 32767ms; waiting
[ 70.620571] pci 0001:01:00.0: not ready after 65535ms; giving up
[ 70.620636] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[ 70.620646] pci 0001:00:00.0: PCI bridge to [bus 01]
[ 70.620652] pci_bus 0001:00: resource 4 [mem 0x1b80000000-0x1bffffffff]
[ 70.620655] pci_bus 0001:00: resource 5 [mem 0x1800000000-0x1b7fffffff pref]
[ 70.620661] pci 0001:00:00.0: Max Payload Size set to 512/ 512 (was 128), Max Read Rq 512
[ 70.620788] pcieport 0001:00:00.0: PME: Signaling with IRQ 38
[ 70.620866] pcieport 0001:00:00.0: AER: enabled with IRQ 38
[ 70.620972] brcm-pcie 1000120000.pcie: host bridge /axi/pcie@1000120000 ranges:
[ 70.620977] brcm-pcie 1000120000.pcie: No bus range found for /axi/pcie@1000120000, using [bus 00-ff]
[ 70.620987] brcm-pcie 1000120000.pcie: MEM 0x1f00000000..0x1ffffffffb -> 0x0000000000
[ 70.620993] brcm-pcie 1000120000.pcie: MEM 0x1c00000000..0x1effffffff -> 0x0400000000
[ 70.621001] brcm-pcie 1000120000.pcie: IB MEM 0x1f00000000..0x1f003fffff -> 0x0000000000
[ 70.621008] brcm-pcie 1000120000.pcie: IB MEM 0x0000000000..0x0fffffffff -> 0x1000000000
[ 70.621013] brcm-pcie 1000120000.pcie: IB MEM 0x1000130000..0x1000130fff -> 0xfffffff000
[ 70.622179] brcm-pcie 1000120000.pcie: PCI host bridge to bus 0002:00
[ 70.622184] pci_bus 0002:00: root bus resource [bus 00-ff]
[ 70.622188] pci_bus 0002:00: root bus resource [mem 0x1f00000000-0x1ffffffffb] (bus address [0x00000000-0xfffffffb])
[ 70.622192] pci_bus 0002:00: root bus resource [mem 0x1c00000000-0x1effffffff pref] (bus address [0x400000000-0x6ffffffff])
[ 70.622203] pci 0002:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
[ 70.622211] pci 0002:00:00.0: PCI bridge to [bus 00]
[ 70.622215] pci 0002:00:00.0: bridge window [mem 0x1f80000000-0x1fbfffffff]
[ 70.622236] pci 0002:00:00.0: PME# supported from D0 D3hot
[ 70.623089] pci 0002:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 70.724572] brcm-pcie 1000120000.pcie: clkreq-mode set to default
[ 70.724575] brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
[ 70.724599] pci 0002:01:00.0: [1de4:0001] type 00 class 0x020000 PCIe Endpoint
[ 70.724614] pci 0002:01:00.0: BAR 0 [mem 0xffffc000-0xffffffff]
[ 70.724622] pci 0002:01:00.0: BAR 1 [mem 0xffc00000-0xffffffff]
[ 70.724629] pci 0002:01:00.0: BAR 2 [mem 0xffff0000-0xffffffff]
[ 70.724700] pci 0002:01:00.0: supports D1
[ 70.724702] pci 0002:01:00.0: PME# supported from D0 D1 D3hot D3cold
[ 70.732596] pci_bus 0002:01: busn_res: [bus 01-ff] end is updated to 01
[ 70.732605] pci 0002:00:00.0: bridge window [mem 0x1f00000000-0x1f005fffff]: assigned
[ 70.732609] pci 0002:01:00.0: BAR 1 [mem 0x1f00000000-0x1f003fffff]: assigned
[ 70.732615] pci 0002:01:00.0: BAR 2 [mem 0x1f00400000-0x1f0040ffff]: assigned
[ 70.732620] pci 0002:01:00.0: BAR 0 [mem 0x1f00410000-0x1f00413fff]: assigned
[ 70.732625] pci 0002:00:00.0: PCI bridge to [bus 01]
[ 70.732628] pci 0002:00:00.0: bridge window [mem 0x1f00000000-0x1f005fffff]
[ 70.732632] pci_bus 0002:00: resource 4 [mem 0x1f00000000-0x1ffffffffb]
[ 70.732635] pci_bus 0002:00: resource 5 [mem 0x1c00000000-0x1effffffff pref]
[ 70.732638] pci_bus 0002:01: resource 1 [mem 0x1f00000000-0x1f005fffff]
[ 70.732642] pci 0002:00:00.0: Max Payload Size set to 256/ 512 (was 128), Max Read Rq 512
[ 70.732650] pci 0002:01:00.0: Max Payload Size set to 256/ 256 (was 128), Max Read Rq 512
[ 70.732716] pcieport 0002:00:00.0: enabling device (0000 -> 0002)
[ 70.732744] pcieport 0002:00:00.0: PME: Signaling with IRQ 39
[ 70.732804] pcieport 0002:00:00.0: AER: enabled with IRQ 39
Also tried grepping dmesg for "down" and there was no instance. Not sure what's going on there, maybe A310 ECO is too ECO for the Pi? I need to rule out the card itself though, so need to set up a PC, heh. I have my streaming PC but that thing's a big ball of mess, probably quickest to grab my old motherboard and cobble a system together.
From my Ubuntu PC, lspci gives me:
05:00.0 PCI bridge: Intel Corporation Device 4fa1 (rev 01)
06:01.0 PCI bridge: Intel Corporation Device 4fa4
06:04.0 PCI bridge: Intel Corporation Device 4fa4
07:00.0 VGA compatible controller: Intel Corporation Device 56a6 (rev 05)
08:00.0 Audio device: Intel Corporation Device 4f92
@6by9 - Is there anything I can grab off Ubuntu on my x86 PC that can help debug why it's not enumerating on the Pi? It seems to be loading the i915 module fine, as well (this is on an older Ubuntu 22.04 install... I really should upgrade!).
If I force a PCIe rescan (as root, echo 1 > /sys/bus/pci/rescan), I see:
[ 151.984005] pci 0001:01:00.0: not ready after 1023ms; waiting
[ 153.040024] pci 0001:01:00.0: not ready after 2047ms; waiting
[ 155.279926] pci 0001:01:00.0: not ready after 4095ms; waiting
[ 159.631792] pci 0001:01:00.0: not ready after 8191ms; waiting
[ 168.079613] pci 0001:01:00.0: not ready after 16383ms; waiting
[ 185.487365] pci 0001:01:00.0: not ready after 32767ms; waiting
[ 220.303577] pci 0001:01:00.0: not ready after 65535ms; giving up
Ah... now if I set dtparam=pciex1_gen=3 in config.txt during boot, I am seeing it do the same delay while booting:
...
[ 0.428998] pci 0001:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[ 0.529765] brcm-pcie 1000110000.pcie: clkreq-mode set to safe
[ 0.529768] brcm-pcie 1000110000.pcie: link up, 8.0 GT/s PCIe x1 (!SSC)
[ 1.629754] pci 0001:01:00.0: not ready after 1023ms; waiting
[ 2.685754] pci 0001:01:00.0: not ready after 2047ms; waiting
[ 4.829754] pci 0001:01:00.0: not ready after 4095ms; waiting
[ 9.181755] pci 0001:01:00.0: not ready after 8191ms; waiting
[ 17.629754] pci 0001:01:00.0: not ready after 16383ms; waiting
[ 35.805753] pci 0001:01:00.0: not ready after 32767ms; waiting
[ 70.621755] pci 0001:01:00.0: not ready after 65535ms; giving up
[ 70.621827] pci_bus 0001:01: busn_res: [bus 01-ff] end is updated to 01
[ 70.621838] pci 0001:00:00.0: PCI bridge to [bus 01]
[ 70.621844] pci_bus 0001:00: resource 4 [mem 0x1b80000000-0x1bffffffff]
[ 70.621847] pci_bus 0001:00: resource 5 [mem 0x1800000000-0x1b7fffffff pref]
[ 70.621853] pci 0001:00:00.0: Max Payload Size set to 512/ 512 (was 128), Max Read Rq 512
...
Note the 1m gap in there? It was just sitting on the blinking cursor during that time on the Pi's iGPU output.
If I reboot commenting out the iGPU support in /boot/firmware/config.txt, same thing. Any other way I can try to get the card to enumerate? I have been messing with the CLK and PERST DELAY options on the eGPU dock as well, to see if giving it 4s or 8s instead of 2 for the retime would help, but that seemed to have no effect :(
I also downgraded the PCIe link to Gen 1, but that didn't make a difference. Still get the not ready messages, something is not happy between the A310 and the Pi's bus!
Good news! Even at PCIe Gen 3, if I use an M.2 to Oculink adapter with a ReDriver (this one, suggested by @nicholasaiello - thanks Nick!), the A310 works! Looks like it's a signal issue, and even the JMT dock didn't like it without a stronger signal.
With defaults, here's what I'm getting:
[ 109.547689] xe 0001:03:00.0: [drm] Failed to resize BAR2 to 4096M (-ENOSPC). Consider enabling 'Resizable BAR' support in your BIOS
So I've tweaked my Resizeable BAR setup for my Pi to offer a 4GB BAR (id 12 in my boot script, and xe.vram_bar_size=8192 in cmdline.txt).
Doing that, I get:
[ 6.168586] Setting dangerous option force_probe - tainting kernel
[ 6.169893] xe 0001:03:00.0: enabling device (0000 -> 0002)
[ 6.170113] xe 0001:03:00.0: [drm] unbounded parent pci bridge, device won't support any PM support.
[ 6.170276] xe 0001:03:00.0: [drm] Found dg2/g11 (device ID 56a6) discrete display version 13.00 stepping C0
[ 6.171043] xe 0001:03:00.0: [drm] Attempting to resize bar from 256MiB -> 4096MiB
[ 6.171062] xe 0001:03:00.0: BAR 2 [mem 0x1800000000-0x180fffffff 64bit pref]: releasing
[ 6.171088] pci 0001:02:01.0: bridge window [mem 0x1800000000-0x180fffffff 64bit pref]: releasing
[ 6.171095] pci 0001:01:00.0: bridge window [mem 0x1800000000-0x180fffffff 64bit pref]: releasing
[ 6.171100] pci 0001:01:00.0: BAR 0 [mem 0x1810000000-0x18107fffff 64bit pref]: releasing
[ 6.171105] pcieport 0001:00:00.0: bridge window [mem 0x1800000000-0x1817ffffff 64bit pref]: releasing
[ 6.171119] pcieport 0001:00:00.0: bridge window [mem 0x1800000000-0x197fffffff 64bit pref]: assigned
[ 6.171127] pci 0001:01:00.0: bridge window [mem 0x1800000000-0x18ffffffff 64bit pref]: assigned
[ 6.171132] pci 0001:01:00.0: BAR 0 [mem 0x1900000000-0x19007fffff 64bit pref]: assigned
[ 6.171145] pci 0001:02:01.0: bridge window [mem 0x1800000000-0x18ffffffff 64bit pref]: assigned
[ 6.171150] xe 0001:03:00.0: BAR 2 [mem 0x1800000000-0x18ffffffff 64bit pref]: assigned
[ 6.171165] pcieport 0001:00:00.0: PCI bridge to [bus 01-04]
[ 6.171171] pcieport 0001:00:00.0: bridge window [mem 0x1b80000000-0x1b82ffffff]
[ 6.171176] pcieport 0001:00:00.0: bridge window [mem 0x1800000000-0x197fffffff 64bit pref]
[ 6.171180] pci 0001:01:00.0: PCI bridge to [bus 02-04]
[ 6.171187] pci 0001:01:00.0: bridge window [mem 0x1b80000000-0x1b82ffffff]
[ 6.171194] pci 0001:01:00.0: bridge window [mem 0x1800000000-0x18ffffffff 64bit pref]
[ 6.171202] pci 0001:02:01.0: PCI bridge to [bus 03]
[ 6.171210] pci 0001:02:01.0: bridge window [mem 0x1b80000000-0x1b81ffffff]
[ 6.171217] pci 0001:02:01.0: bridge window [mem 0x1800000000-0x18ffffffff 64bit pref]
[ 6.171228] xe 0001:03:00.0: [drm] BAR2 resized to 4096M
[ 6.171245] xe 0001:03:00.0: [drm] VISIBLE VRAM: 0x0000001800000000, 0x0000000100000000
[ 6.171645] xe 0001:03:00.0: [drm] VRAM[0, 0]: Actual physical size 0x0000000100000000, usable size exclude stolen 0x00000000fd000000, CPU accessible size 0x00000000fd000000
[ 6.171652] xe 0001:03:00.0: [drm] VRAM[0, 0]: DPA range: [0x0000000000000000-100000000], io range: [0x0000001800000000-18fd000000]
[ 6.171657] xe 0001:03:00.0: [drm] Total VRAM: 0x0000001800000000, 0x0000000100000000
[ 6.171662] xe 0001:03:00.0: [drm] Available VRAM: 0x0000001800000000, 0x00000000fd000000
[ 6.192981] xe 0001:03:00.0: [drm] Finished loading DMC firmware i915/dg2_dmc_ver2_08.bin (v2.8)
[ 6.198368] xe 0001:03:00.0: [drm] GT0: Using GuC firmware from i915/dg2_guc_70.bin version 70.49.4
[ 6.321484] xe 0001:03:00.0: [drm] GT0: vcs1 fused off
[ 6.321498] xe 0001:03:00.0: [drm] GT0: vcs3 fused off
[ 6.321506] xe 0001:03:00.0: [drm] GT0: vcs4 fused off
[ 6.321510] xe 0001:03:00.0: [drm] GT0: vcs5 fused off
[ 6.321514] xe 0001:03:00.0: [drm] GT0: vcs6 fused off
[ 6.321517] xe 0001:03:00.0: [drm] GT0: vcs7 fused off
[ 6.321521] xe 0001:03:00.0: [drm] GT0: vecs2 fused off
[ 6.321525] xe 0001:03:00.0: [drm] GT0: vecs3 fused off
[ 6.321529] xe 0001:03:00.0: [drm] GT0: ccs0 fused off
[ 6.321532] xe 0001:03:00.0: [drm] GT0: ccs2 fused off
[ 6.321536] xe 0001:03:00.0: [drm] GT0: ccs3 fused off
[ 6.369989] [drm] Initialized xe 1.1.0 for 0001:03:00.0 on minor 0
[ 6.606518] Console: switching to colour frame buffer device 480x135
[ 6.606555] xe 0001:03:00.0: [drm] fb0: xedrmfb frame buffer device
[ 6.628914] xe 0001:03:00.0: [drm] Using register for power limits
[ 6.628996] xe 0001:03:00.0: [drm] PL1 is supported on channel 1
[ 6.650867] xe 0001:03:00.0: [drm] not enough stolen space for compressed buffer (need 35389440 more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.
And the full desktop is working! Yay!
The card gets quite loud running benchmarks. I'll have results for vkmark, glmark2, and GravityMark soon...
AI/LLM benchmarks here: https://github.com/geerlingguy/ai-benchmarks/issues/29
Some simple benchmarks:
- glmark2-es2-wayland: 4984
- vkmark: 10885
- GravityMark: 7447
glmark2-es2-wayland output:
$ DISPLAY=:0 glmark2-es2-wayland
MESA: warning: Support for this platform is experimental with Xe KMD, bug reports may be ignored.
=======================================================
glmark2 2023.01
=======================================================
OpenGL Information
GL_VENDOR: Intel
GL_RENDERER: Mesa Intel(R) Arc(tm) A310 Graphics (DG2)
GL_VERSION: OpenGL ES 3.2 Mesa 25.0.7 (git-742a20f48c)
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 1200 FrameTime: 0.834 ms
[build] use-vbo=true: FPS: 6221 FrameTime: 0.161 ms
[texture] texture-filter=nearest: FPS: 6097 FrameTime: 0.164 ms
[texture] texture-filter=linear: FPS: 6109 FrameTime: 0.164 ms
[texture] texture-filter=mipmap: FPS: 6061 FrameTime: 0.165 ms
[shading] shading=gouraud: FPS: 5783 FrameTime: 0.173 ms
[shading] shading=blinn-phong-inf: FPS: 5833 FrameTime: 0.171 ms
[shading] shading=phong: FPS: 5663 FrameTime: 0.177 ms
[shading] shading=cel: FPS: 5682 FrameTime: 0.176 ms
[bump] bump-render=high-poly: FPS: 6940 FrameTime: 0.144 ms
[bump] bump-render=normals: FPS: 6620 FrameTime: 0.151 ms
[bump] bump-render=height: FPS: 6162 FrameTime: 0.162 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 6341 FrameTime: 0.158 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 6336 FrameTime: 0.158 ms
[pulsar] light=false:quads=5:texture=false: FPS: 6555 FrameTime: 0.153 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 3353 FrameTime: 0.298 ms
[desktop] effect=shadow:windows=4: FPS: 4229 FrameTime: 0.237 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 489 FrameTime: 2.048 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 635 FrameTime: 1.576 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 548 FrameTime: 1.827 ms
[ideas] speed=duration: FPS: 2368 FrameTime: 0.422 ms
[jellyfish] <default>: FPS: 5325 FrameTime: 0.188 ms
[terrain] <default>: FPS: 691 FrameTime: 1.448 ms
[shadow] <default>: FPS: 5458 FrameTime: 0.183 ms
[refract] <default>: FPS: 2043 FrameTime: 0.490 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 6699 FrameTime: 0.149 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 6666 FrameTime: 0.150 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 6578 FrameTime: 0.152 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 6429 FrameTime: 0.156 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 6426 FrameTime: 0.156 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 6405 FrameTime: 0.156 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 6301 FrameTime: 0.159 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 6267 FrameTime: 0.160 ms
=======================================================
glmark2 Score: 4984
=======================================================
vkmark output:
$ DISPLAY=:0 vkmark
MESA: warning: Support for this platform is experimental with Xe KMD, bug reports may be ignored.
MESA: warning: Support for this platform is experimental with Xe KMD, bug reports may be ignored.
=======================================================
vkmark 2025.01
=======================================================
Vendor ID: 0x8086
Device ID: 0x56A6
Device Name: Intel(R) Arc(tm) A310 Graphics (DG2)
Driver Version: 104857607
Device UUID: ea58448a456595c8983bb78fd2b5f315
=======================================================
[vertex] device-local=true: FPS: 12057 FrameTime: 0.083 ms
[vertex] device-local=false: FPS: 1188 FrameTime: 0.842 ms
[texture] anisotropy=0: FPS: 12274 FrameTime: 0.081 ms
[texture] anisotropy=16: FPS: 12474 FrameTime: 0.080 ms
[shading] shading=gouraud: FPS: 12687 FrameTime: 0.079 ms
[shading] shading=blinn-phong-inf: FPS: 12435 FrameTime: 0.080 ms
[shading] shading=phong: FPS: 12283 FrameTime: 0.081 ms
[shading] shading=cel: FPS: 12274 FrameTime: 0.081 ms
[effect2d] kernel=edge: FPS: 13459 FrameTime: 0.074 ms
[effect2d] kernel=blur: FPS: 7600 FrameTime: 0.132 ms
[desktop] <default>: FPS: 12569 FrameTime: 0.080 ms
[cube] <default>: FPS: 12201 FrameTime: 0.082 ms
[clear] <default>: FPS: 8010 FrameTime: 0.125 ms
=======================================================
vkmark Score: 10885
=======================================================
vkmark showed some model corruption, likely related to the same memory issues with the display rendering, where some things are distorted on the top portion (it's like the GPU 'catches up' to the memory it's being given or something. Same as on the other Intel cards I've tested, Alchemist or Battlemage.
Is this one also showing the corruptions as in https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/695#issuecomment-3382664214 ? I think that's the only real thing holding back the Intel cards.
@6by9 - Yes; and hopefully we can get the ear of someone at Intel (especially if that PR gets merged into Pi OS), maybe we can get a little time from one of the driver engineers :D
Here's a quick video showing how the graphics corruption seems to behave on all the Intel cards (identical behavior, even at 4K 120 Hz, and doesn't seem to cause any system instability):
https://github.com/user-attachments/assets/4b5f2c74-3770-4c64-a9d9-e4596225df69
~~More than anything else it kinda looks like either framebuffer or texture upload corruption? If it was texture corruption then I don't know why the artifacts would disappear when you hover over the images...~~ Nope it's absolutely not a texture buffer issue.
~~I actually just had an idea- could you guys potentially get a pcap of the PCIe bus traffic on both the Pi and an x64 system? I want to see what commands both are sending at the physical layer.... but then at the same time if it's a physical layer issue the pcap won't show us anything. But, if it's a driver issue (and if you even can get a pcap of the PCIe bus traffic), then we should see potentially corrupt bytes for the same commands...~~
It is extremely odd to me that all of the corrupted pixels are black. Like if we were seeing corrupted textures, then I would expect to see garbled pixel colors. But there's not. I don't know what's going on here, but it's not in the texture upload stage. The depth buffer might be discarding fragments it shouldn't be but I don't know why.
Running some OpenGL application through RenderDoc might be a good idea to see what exactly it is the card is doing.
Running some OpenGL application through RenderDoc might be a good idea to see what exactly it is the card is doing.
Note that OpenGL (like glmark2) seems to run perfectly smooth, with no artifacts. Maybe a Mesa issue? This is running on latest Mesa build from last week.
@6by9 Do you know what the parameters for glClearColor on the desktop environment redraw are? If the desktop environment is clearing the framebuffer to black before it composites the frame then I think we have a better idea of what our issue could be.
@geerlingguy You should try testing a different desktop environment like KDE or GNOME to see if the issues are reproduced there.
Maybe a Mesa issue?
Possibly, but I would expect to see it affecting far more than just the desktop environment renderer. Have you tried running STK on it and some lighter steam games to see what happens?
@RSC-Games - I've tried KDE Plasma:
sudo apt install -y kde-plasma-desktop
I switched to sddm as the default when prompted, and rebooted. Same issues with the same kind of rendered corruption in KDE Plasma as in the default wm:
https://github.com/user-attachments/assets/0511e745-a415-4989-90c2-cfd80f0afae0
Oh I meant actually switch to plasma. That's just using the plasma gtk theme in labwc. You'll have to click the gear or something in sddm and then click plasma Wayland, then log in.
@RSC-Games - If anything that's worse, but at least it's slightly different. Now it seems like many letters of the alphabet won't show. e seems to be the most reliable to render haha
https://github.com/user-attachments/assets/2cdb6684-c1fc-42ca-ad61-523264e57d03
Interesting... I'm going to need a while to figure this out. Does it affect other applications too?