How might I enable graphics acceleration for Intel HD 630 on Gnome on X11

Yesterday, I configured my motherboard to pass output from the built in Intel HD 630 through my graphics card.

Running gnome on wayland, I had the expected result. Graphics was accelerated by the built in intel gpu. However, running gnome on X11 resulted in software rendering.

Does anyone know how I might get intel assisted rendering on gnome with X11?

@oxwrongagain perhaps clarify on what you did, also can you show the output from inxi -GSaz

Hello @malcolmlewis ,

First, I uninstalled the nvidia proprietary drivers. The nouveau drivers were not installed to begin with … and are not installed now.

Second, I enabled mult-monitor support in the system bios, which allows the built-in intel hd 630 graphics rendering to pass through my nvidia card.

So now I am running gnome on wayland using the built in intel for rendering.

ox@orca$ inxi -GSaz
System:
  Kernel: 6.4.0-150600.23.14-default arch: x86_64 bits: 64 compiler: gcc
    v: 7.5.0 parameters: BOOT_IMAGE=/vmlinuz-6.4.0-150600.23.14-default
    root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 splash=silent preempt=full
    quiet acpi_enforce_resources=lax noresume mitigations=auto
    security=apparmor
  Desktop: GNOME v: 45.3 tk: GTK v: 3.24.39 wm: gnome-shell dm: GDM
    v: 45.0.1 Distro: openSUSE Leap 15.6
Graphics:
  Device-1: Intel HD Graphics 630 vendor: ASUSTeK driver: i915 v: kernel
    arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: none
    empty: HDMI-A-2,HDMI-A-3 bus-ID: 00:02.0 chip-ID: 8086:5912 class-ID: 0380
  Device-2: NVIDIA GP108 [GeForce GT 1030] vendor: eVga.com. driver: nouveau
    v: kernel non-free: 530.xx+ status: current (as of 2023-05) arch: Pascal
    code: GP10x process: TSMC 16nm built: 2016-21 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 4 link-max: gen: 3 speed: 8 GT/s ports: active: HDMI-A-1
    empty: DVI-D-1 bus-ID: 01:00.0 chip-ID: 10de:1d01 class-ID: 0300
    temp: 48.0 C
  Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.4
    compositor: gnome-shell driver: X: loaded: intel,modesetting
    unloaded: fbdev,vesa alternate: nouveau,nv,nvidia dri: iris
    gpu: i915,nouveau display-ID: 0
  Monitor-1: HDMI-1 res: 2560x1440 size: N/A modes: N/A
  API: OpenGL v: 4.6 Mesa 23.3.4 renderer: Mesa Intel HD Graphics 630 (KBL
    GT2) direct-render: Yes

Not the best performance choice for my rig, but I would like to test video playback on gnome+x11 without the nvidia gpu confusing things. However, when I try to run gnome on x11, it falls back to “software rendering”.

Thanks for the reply!

@oxwrongagain correct, you need to plug your monitor into HDMI-A-2 on the Intel GPU, you have it connected to the HDMI-A-1 port on the Nvidia GPU.

Now since your running GNOME, then if you use switcherooctl to use the Intel gpu to start your application, then that should work.

Hello @malcolmlewis ,

Thanks!

Sometimes there is nothing harder than the obvious! Until a few minutes ago, I didn’t realize there was an HDMI port on the motherboard. I’ve only ever noticed the DVI connector, which is much larger. Had I known, I would have tried that first :smile: .

@oxwrongagain I would leave it plugged in there and use the Nvidia GPU for Prime Render Offload with switcherooctl…

Hello again @malcolmlewis ,

Against my better judgement, I decided to try it out. Another golden opportunity to avoid doing what I should be doing … :slight_smile:

On x11, it sorta kinda works. I can offload mpv to the nvidia gpu, no problem, but I can’t offload either firefox or chrome.

It works much better on wayland.

Like all things gnome in 15.6, each possible configuration breaks something different. Using the built in intel graphics and hdmi port, tracker-extract-3.service dumps core and thus the database never updates. How or why tracker would be affected by the graphics regime is beyond my imagination.

Go figure!

@oxwrongagain so is your system loading guc/huc for the Intel GPU for offload?
For example (I’m on Tumbleweed), it’s automatic for me and the ARC gpu;

journalctl -b --no-hostname | grep -E "guc|huc"
Aug 06 11:25:32 kernel: i915 0000:05:00.0: [drm] GT0: GuC firmware i915/dg2_guc_70.bin version 70.20.0
Aug 06 11:25:32 kernel: i915 0000:05:00.0: [drm] GT0: HuC firmware i915/dg2_huc_gsc.bin version 7.10.15

Ref: https://www.intel.com/content/www/us/en/content-details/609249/enabling-the-guc-huc-firmware-for-linux-on-new-intel-gpu-platforms.html

1 Like

Wow!

Never heard of this, but worth a try.

The bin files appear to be where they are supposed to be:

root@orca# ls /lib/firmware/i915/kbl_*
/lib/firmware/i915/kbl_dmc_ver1.bin.xz     /lib/firmware/i915/kbl_guc_49.0.1.bin.xz   /lib/firmware/i915/kbl_guc_ver9_39.bin.xz
/lib/firmware/i915/kbl_dmc_ver1_01.bin.xz  /lib/firmware/i915/kbl_guc_62.0.0.bin.xz   /lib/firmware/i915/kbl_huc_4.0.0.bin.xz
/lib/firmware/i915/kbl_dmc_ver1_04.bin.xz  /lib/firmware/i915/kbl_guc_69.0.3.bin.xz   /lib/firmware/i915/kbl_huc_ver02_00_1810.bin.xz
/lib/firmware/i915/kbl_guc_32.0.3.bin.xz   /lib/firmware/i915/kbl_guc_70.1.1.bin.xz
/lib/firmware/i915/kbl_guc_33.0.0.bin.xz   /lib/firmware/i915/kbl_guc_ver9_14.bin.xz

but it seems I have to manually add them as boot option to grub: “i915.enable_guc=2”.

We’ll see how it goes!

1 Like

The guc/huc muck appears to load,

root@orca# journalctl -b --no-hostname | grep -E "guc|huc"
Aug 06 14:56:30 kernel: Command line: BOOT_IMAGE=/vmlinuz-6.4.0-150600.23.14-default root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 splash=silent preempt=full quiet acpi_enforce_resources=lax i915.enable_guc=2 noresume security=apparmor mitigations=auto
Aug 06 14:56:30 kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-6.4.0-150600.23.14-default root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 splash=silent preempt=full quiet acpi_enforce_resources=lax i915.enable_guc=2 noresume security=apparmor mitigations=auto
Aug 06 14:56:30 dracut-cmdline[225]: Using kernel command line parameters:  rd.luks.uuid=luks-a1a3ed09-0180-4eaa-a092-2496310d37a3 rd.md.uuid=7d9bf302:77a6cd4e:bcaac7fa:90234561  rd.md.uuid=75bc155b:2d581b35:d72bbc81:b6293536  rd.md.uuid=c91b8c15:6dfc4b6e:104b05a7:e59c1523 root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 rootfstype=ext4 rootflags=rw,relatime   BOOT_IMAGE=/vmlinuz-6.4.0-150600.23.14-default root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 splash=silent preempt=full quiet acpi_enforce_resources=lax i915.enable_guc=2 noresume security=apparmor mitigations=auto
Aug 06 14:56:31 plymouthd[560]: 00:00:02.011 ply-utils.c:959:ply_get_kernel_command_line                   : Kernel command line is: 'BOOT_IMAGE=/vmlinuz-6.4.0-150600.23.14-default root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 splash=silent preempt=full quiet acpi_enforce_resources=lax i915.enable_guc=2 noresume security=apparmor mitigations=auto
Aug 06 14:57:02 kernel: Setting dangerous option enable_guc - tainting kernel
Aug 06 14:57:03 kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/kbl_guc_70.1.1.bin version 70.1.1
Aug 06 14:57:03 kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/kbl_huc_4.0.0.bin version 4.0.0
Aug 06 14:57:03 plymouthd[2046]: 00:00:33.240 ply-utils.c:959:ply_get_kernel_command_line                   : Kernel command line is: 'BOOT_IMAGE=/vmlinuz-6.4.0-150600.23.14-default root=UUID=f9ad0342-a904-43d2-a6d2-e60fe1696d68 splash=silent preempt=full quiet acpi_enforce_resources=lax i915.enable_guc=2 noresume security=apparmor mitigations=auto

but tracker is still dumping core.

Aug 06 14:59:44 tracker-extract-3[5725]: Disallowed syscall "getsockopt" caught in sandbox
Aug 06 14:59:44 systemd[1]: Started Process Core Dump (PID 5777/UID 0).
Aug 06 14:59:44 gnome-software[4747]: g_task_return_pointer: assertion 'G_IS_TASK (task)' failed
Aug 06 14:59:44 systemd-coredump[5778]: [🡕] Process 5725 (tracker-extract) of user 1000 dumped core.
                                        
                                        Stack trace of thread 5772:
                                        #0  0x00007fec4fc57989 __restore_rt (libc.so.6 + 0x57989)
                                        ELF object binary architecture: AMD x86-64

Urg!

Other than the tracker problem, the offload is working GREAT with wayland. I would really like to keep this setup, in spite of my initial skepticism.

@oxwrongagain The Intel offload, or Nvidia Prime Render Offload?

Might want to try a reset of tracker?

tracker3 reset --filesystem
rm -rf ~/.cache/tracker

Logout/login

Interesting, for me on a i7-9700 it is not loaded automatically, just like for @oxwrongagain. I did add the kernel option i915.enable_guc=2 via Yast bootloader and rebooted and see:

> sudo journalctl -b --no-hostname | grep -E "guc|huc"
Aug 13 07:05:27 kernel: Setting dangerous option enable_guc - tainting kernel
Aug 13 07:05:30 kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/kbl_guc_70.1.1.bin version 70.1.1
Aug 13 07:05:30 kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/kbl_huc_4.0.0.bin version 4.0.0

That “dangerous” is probably the reason why it is not enabled by default, is that maybe not he case with an ARC GPU?

@marel It’s not dangerous, it taints the kernel, so in a nutshell not supported if you have an issue…

Gen12.n cpus/gpus were the first to get full kernel/driver support AFAIK…

Yes, I had a look at Intel graphics and it looks to me that for Gen 9 it is only “Offloading some media decoding functionality from the CPU to the HEVC/H.265 micro (µ) Controller” while for Gen 12 it is used for “scheduling, context submission, and power management”

I think I do not need this video acceleration so I think I will disable it again.

But driver: nouveau hints on another stance:

Also

IRL mobo has 2 HDMI ports, one with HDMI connector, another - with DVI (single link).

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.