• Mesa 20 arrives– good news for Intel graphics users on Linux

    Home » Forums » AskWoody support » Linux for the Home user » Linux – all distros » Mesa 20 arrives– good news for Intel graphics users on Linux

    Author
    Topic
    #2163834

    It’s probably nice for AMD graphics users too, but I haven’t seen that, so I know very little about it.  Intel graphics, though, I do have a bit of experience with, as my Swift and my G3 (Dell) both use it.  The G3 also has an nVidia dGPU (discrete GPU), which uses Optimus (Windows) or Prime (Linux) technology to deliver rendered frames across the PCIE bus to be displayed by the Intel iGPU (integrated GPU).  This is the usual configuration for nVidia laptops while using the laptop display.  For devices that are plugged into the laptop’s HDMI or other graphics port, those may be connected directly to the dGPU without going through the Intel iGPU.

    For Intel graphics users, the situation can be confusing.  There is a lot of misinformation out there about the various driver bits.  With a closed-source driver like the ones offered by nVidia, everything is included in the downloadable driver package.  With Intel, there are no closed source drivers… all of the work Intel does to create drivers is open source, and I think that has been true of AMD (graphics) as well for a while too.  It’s nVidia that continues to plow ahead with closed source everything, refusing to cooperate with open-source devs, making the nVidia open drivers pretty close to unusable for many GPUs.  This led to the famous image of Linus Torvalds giving a gesture of an avian variety to nVidia as a whole.

    I’ve tried to learn what the real deal is with the many different Intel driver bits that are around.  A graphics driver such that nVidia releases actually has a bunch of different drivers within it, not just one.  It’s the same with Intel, but the users are more exposed to the inner workings since it’s not a secret.  If you don’t want to tweak anything, you can just use what the distro provides, but you also have the choice to try other things!

    The kernel driver for Intel hardware is called i915.  It’s distributed with the kernel, and is used by all Intel Linux setups.

    Older Linux distros used to come with the “Intel” Xserver driver.  This driver is known as xserver-xorg-video-intel in the Ubuntu repo.  This driver works with the i915 kernel module to enable the X server, which previously handled all of the video output as well as user input in Linux.  It’s still in use on many, probably most, Linux desktops now (mine included), but it’s showing its age, and the goal is for it to be replaced by Wayland, the next generation graphics subsystem.  Some people use it now, but it’s a work in progress.

    The “Intel” X driver uses its own acceleration methods, with the most advanced being SNA, for Sandy Bridge’s New Acceleration (showing how old it is), and forms the graphic stack along with the X server and OpenGL (which is a free software equivalent of Direct3d in Windows).

    Newer Ubuntu-based distros do not come with the “Intel” X driver installed on newer hardware, though it is still available in the repo.  For newer hardware, the preferred X driver is the “modesetting” driver, which is built into the kernel itself.  Like the “Intel” X driver, it uses the i915 kernel module.  It also uses another open-source Intel driver for Mesa, the open-source graphics library that handles things like OpenGL and Vulkan.  That driver has long been the i965 driver that is included as part of Mesa.  What this means is that if you are using the “modesetting” driver for Intel graphics, you are actually using the i915 driver for the kernel end, the modesetting driver (that is part of the kernel) for X or Wayland, and the i965 driver for Mesa, which implements the graphics APIs like OpenGL.

    Some writers for various sites clearly have the idea that i915 is the Intel Xorg driver, but it’s not.  The i915 driver is used with the Intel Xorg driver, as well as its alternative, the modesetting Xorg driver.  If you see someone talking about using either the modesetting or i915 driver, they really mean the modesetting or the Intel X driver.

    On top of that, there’s the VAAPI i965 driver, which allows the Mesa library to do video decoding in hardware.  VAAPI stands for Video Acceleration API, and is the standard Linux way of handling video acceleration– for everyone but nVidia, who instead uses VDPAU (and this split is one of the reasons that browsers have not implemented video decoding in hardware in Linux).

    It’s several different interlocking drivers for the same graphics chip, and you can see where it gets confusing.

    The i965 driver is inefficient in a number of ways, and the Intel developers who work on it began a rewrite named Iris, which is somewhat confusingly also the name of the highest-end graphics hardware available from Intel.  Iris has been in Mesa for a while, but it was turned off by default, as Intel wanted to get it to a good and stable state before making it the default.  I’ve had Iris switched on for the last month or so, and it’s been quite good, performing at least as well as the i965 driver, and sometimes better.  I haven’t seen one particular rendering error I used to get on Thunderbird and Waterfox while using Iris, which is nice.

    Now, Mesa 20.0 has arrived, and Iris is the default Mesa driver for Intel graphics in that version.  If you’re using the modesetting X driver, you’re using Mesa also, and if you’re using Mesa 20, Iris will be the driver for that instead of i965 (and the kernel driver is still i915) by default.  You can still enable the i965 driver instead of Iris if you want to on that version of Mesa.

    Mesa 20 isn’t in any Ubuntu distro yet, but it will be in Ubuntu 20.04, the next LTS version to come out (targeted for April).  You can get it now, though, on Ubuntu and its offspring (including Mint), from the Kisak PPA.  It’s run by one of the Valve devs.

    As with any PPA, if you wish to remove the PPA and return to the standard distro packages, you can use ppa-purge.

    Dell XPS 13/9310, i5-1135G7/16GB, KDE Neon 6.2
    XPG Xenia 15, i7-9750H/32GB & GTX1660ti, Kubuntu 24.04
    Acer Swift Go 14, i5-1335U/16GB, Kubuntu 24.04 (and Win 11)

    1 user thanked author for this post.
    Viewing 4 reply threads
    Author
    Replies
    • #2167055

      For those who don’t know, Mesa is a 3d Graphics Library.
      https://www.mesa3d.org/

      cheers, Paul

      2 users thanked author for this post.
    • #2169290

      BTW, I think the most correct name for the i915 driver is the direct rendering manager driver, or DRM driver.

      Dell XPS 13/9310, i5-1135G7/16GB, KDE Neon 6.2
      XPG Xenia 15, i7-9750H/32GB & GTX1660ti, Kubuntu 24.04
      Acer Swift Go 14, i5-1335U/16GB, Kubuntu 24.04 (and Win 11)

    • #2169323

      Ascaris
      Well enough acronyms and such to give me a head ache.. I still don’t know why Mesa is a good thing. Maybe many of us could benefit from a Video driver tutorial or FAQ. TIA 😁

      🍻

      Just because you don't know where you are going doesn't mean any road will get you there.
    • #2169364

      For rendering in 3-D the shapes of satellites to calculate certain forces acting on them, I have had someone test “Blender”, that is open source, freeware and available for Windows, macOS and Linux. I wonder if the product discussed here, that I have not heard about until reading the comments here, might not be a better one. https://www.blender.org/

      Ex-Windows user (Win. 98, XP, 7); since mid-2017 using also macOS. Presently on Monterey 12.15 & sometimes running also Linux (Mint).

      MacBook Pro circa mid-2015, 15" display, with 16GB 1600 GHz DDR3 RAM, 1 TB SSD, a Haswell architecture Intel CPU with 4 Cores and 8 Threads model i7-4870HQ @ 2.50GHz.
      Intel Iris Pro GPU with Built-in Bus, VRAM 1.5 GB, Display 2880 x 1800 Retina, 24-Bit color.
      macOS Monterey; browsers: Waterfox "Current", Vivaldi and (now and then) Chrome; security apps. Intego AV

    • #2169568

      The whole group of programs that handle the graphics duties is called the graphics stack.  You can think of it as a stack of different drivers and libraries, each doing a part of the job.  With a proprietary driver like nVidia’s, the whole stack is implemented within that driver package, which is really a bunch of different drivers in one package.  In the open-source world, we get to see a lot of the stuff that goes on inside the development process, and the different bits of the graphics stack are handled by different teams.

      Mesa implements the 3d rendering for Linux if you’re using recent AMD or Intel GPUs, or if you are using the open-source Nouveau driver for nVidia (which is not very good, since nVidia does not provide a lot of the things they would need to make Nouveau work well).

      Without Mesa or another 3d graphic library, there would not be any 3d acceleration ability, so it would be like not having Direct3d (the video component of DirectX) in Windows.  If you need an up-to-date, open source 3d library, that’s Mesa!  It’s an important part of the graphics stack, and if you’re using a recent Intel or AMD GPU on Linux, you’re probably already using it.  It’s been around for a while (as you can tell by its version number, which is now 20!), but this new version brings a lot of new improvements, like the new Iris driver for Intel graphics.

      The Mesa library operates as part of the graphics stack, which is itself (mostly) part of the operating system, while applications like Blender operate in userspace.  If you use Blender on Linux, and you have one of the recent AMD or Intel GPUs, you would be using Mesa at the same time.

      For newer Intel GPUs with Mesa 20, the stack would look something like this:

      i915 (direct rendering manager driver, kernel module)
      
          modesetting driver (X or Wayland driver, built into the kernel)
      
              X or Wayland subsystem
      
          Iris (Intel driver for Mesa, built into the Mesa package)
      
              Mesa 20 (the 3d rendering library)
      

      This isn’t anything you would normally need to worry about.  If you install an Ubuntu-based distro, it will install the drivers and packages you need for it to work.  If you install the coming Ubuntu 20.04 on a reasonably newish PC with Intel graphics, you will get the stack above without doing anything.  Mesa 20, Iris, the X subsystem, the modesetting driver, and the i915 DRM driver will all be part of the package, no muss and no fuss.

      On earlier distros, like those based on Ubuntu 18.04 (including Mint 19.x and the distro I use, KDE Neon), it would use instead Mesa 19.2.8, and instead of Iris, you would get the i965 Mesa driver.  It works pretty well too, but Iris is a ground-up rewrite designed to fix the various limitations that are built into i965.  If you wanted to get Mesa 20 early rather than wait for Ubuntu 20.04, you could enable the Kisak PPA and let the updater do its thing, and it would automatically give you Mesa 20 in all its glory.

      Just remember, you don’t have to think about any of this if you don’t want to.  The distros release upgrades in versions of various libraries all the time, and you can just let the distro handle it.  If you do want to tweak and play with things, though, you have that option too!

      Dell XPS 13/9310, i5-1135G7/16GB, KDE Neon 6.2
      XPG Xenia 15, i7-9750H/32GB & GTX1660ti, Kubuntu 24.04
      Acer Swift Go 14, i5-1335U/16GB, Kubuntu 24.04 (and Win 11)

      • #2172267

        I’ve got an HP Probook 4540s that’s running an Intel Ivy Bridge core 17 3632QM and a Discrete Mobile AMD Radeon 7650M(Terascale GPU Micro-Architecture) GPU. And I’m hoping that MESA 20 and Linux Mint 19.3/later will work out better under Blender 2.8/later under Linux than it’s working out  under Windows 7 Pro where I can get the Intel CPU’s integrated graphics to mostly work under Blender 3D 2.8’s new edit mode work-spaces except one work-space where Blender 2.8 crashes under Windows 7.

        I’m reading on the Blender developers Blog that Blender 3D 2.8 support for Ivy Bridge Intel CPUs/Integrated graphics is not assured under Windows because of lack of newer OpenGL/driver support under Windows 7/8/8.1 but that Under Linux that support for older hardware is always ongoing whereas it’s been nonexistent under 7/8/8.1 for more than 3 years.

        So I’m going to try Linux Mint 19.3 with the HP probook and dual booting that with Windows 7 and hopefully the Linux OpenGL/Driver support will enable me to at least do Blender 3D editing work on the Integrated Graphics or the discrete mobile 7650M as I’ve always had to use the CPU rendering mode for Cycles rendering on my Intel Ivy Bridge/earlier based Intel core i series CPU based laptops.

        And the Older Sandy Bridge and Arrandale(Mobile Westmere) based Intel core i series based laptops are probably going to be forced to remain using Blender 3D 2.7b as Blender 2.8/later has hardware requirements that make that older hardware obsolete on Blender 2.8/Later, at least as far as Windows is concerned but maybe not Linux if that support from the community continues.

        I have purchased a new AMD based laptop, Ryzen 5 3550H/Vega integrated graphics and Radeon RX 560X Dsicrete Moble GPU. So that works fine for Blender 2.81 with no issues currently and I can also now use Blender Cycles rendering on the GPUs, both the APU’s Vega integrated graphics and the discrete mobile Radeon RX 560X.

        I do have to research OpenCL support on Intel’s CPUs, but If I’m not mistaken, that support for OpenCL did not begin until Intel’s Ivy Bridge core i series generation(1). But I’ve never heard of any Blender GPU Cycles rendering support on Intel’s integrated graphics. On most of my older laptops running Blender 3D 2.7b and earlier I’ve always used Blender Render(CPU) or Blender’s CPU cycles rendering mode that uses the CPU to render if no qualified GPU/Graphics support can be available for Blender’s GPU Cycles rendering mode.

        But as far as Intel’s newer/older generations of core i series processors that some good news from the Mesa developers. and I hope that they continue to look towards that older hardware for newer feature level support being plumbed in as my 3 oldest laptops appear to all be  doing fine dual booting Linux Mint 19.3 and Windows 7. The HP Probook is next in line to get Mint 19.3 installed alongside Windows 7(Pro) and maybe that laptop will be somewhat usable for Blender 2.8/later usage as well.

        (1)

        “Intel Graphics Technology”

        https://en.wikipedia.org/wiki/Intel_Graphics_Technology

        • #2323147

          I just got that Laptop(ASUS Tuf FX505DY) “AMD based laptop, Ryzen 5 3550H/Vega integrated graphics and Radeon RX 560X Dsicrete Moble GPU” running Linux Mint 20 and oh what a Pain that was, but that’s another story. But it appears that the Open Source MESA 20 Drivers do not support Blender 2.82a’s OpenCL Cycles rendering on the laptop’s GPUs(Integrated Vega  or Discrete Polaris) and I’ll have to install the AMD Pro graphics drivers to get Blender 2.82a to recognize both the Integrated Vega and the Discrete Mobile RX 560X GPU as OpenCL ready devices under Mint 20 for Blender 3D 2.82a GPU Cycles Rendering!

          So I’m currently back to having to render on the CPU cores for the CPU based Cycles rendering code path and that’s not why I purchased the new laptop. Next up the Pro AMD drivers but I’m not running Kernel 5.4 which normally is what’s offered through the normal update manager channel as I’ve gone into Mint 20’s update manager under the view Linux Kernels and installed Kernel 5.8 to get my laptop’s Fan control properly supported on that ASUS Laptop and that requires a Linux Kernel that’s 5.6 or later(Kernel 5.8 in my case). I do not want the Laptop overheating because the fans do not ramp properly under load.

          I do have the Laptop Dual Booting Linux Mint 20 with Windows 10 1909/Home and that GPU Based Blender 3D Cycles rendering works there just fine. But I’ll want to see about that working properly under Linux Mint 20.

    Viewing 4 reply threads
    Reply To: Mesa 20 arrives– good news for Intel graphics users on Linux

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: