OpenGL rendering missing some triangles, why and how to fix

I'm using Ubuntu 20.10 in dual boot PC alongside Windows 7(32bit), just installed Ubuntu several weeks ago after RAM upgrade to 16GB. Everything works fine (after messy install) until several days ago, something happened... I see something wrong with the graphics, first noticed it in Minecraft, but then I found the issue in other applications too. This did not happen 2 weeks ago, and I don't remember what change I did that could mess with graphics drivers. Attached image is glxgears screenshot, which shows missing triangles.

enter image description here

This glitch also shows up in Blender, not seen with simple shapes like cylinders and cubes but visible in complex shapes like the monkey head. So I guess it is openGL issue.

In Windows, everything is normal.

What I have tried (and not working/found solution):

  • Google for "openGL missing triangles"
  • purge-ppa from ppa:oibaf/graphics-drivers then reinstall latest update from that ppa

This is the output from "lshw -c video":

 *-display                 
       description: VGA compatible controller
       product: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:27 memory:f7800000-f7bfffff memory:e0000000-efffffff ioport:f000(size=64) memory:c0000-dffff

This is the output from "glxinfo -B":

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) HD Graphics 2500 (IVB GT1) (0x152)
    Version: 21.2.0
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.2
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 2500 (IVB GT1)
OpenGL core profile version string: 4.2 (Core Profile) Mesa 21.2.0-devel (git-a165385 2021-04-17 groovy-oibaf-ppa)
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 21.2.0-devel (git-a165385 2021-04-17 groovy-oibaf-ppa)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 21.2.0-devel (git-a165385 2021-04-17 groovy-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

The glitch even appears when I'm writing this question, see the image:

enter image description here

What happened here, and how to fix it? I would prefer not to fresh-install Ubuntu, since it was messy with the boot settings and downloading again all the apps.


Solution 1:

I have the same symptoms (documented them on the Ubuntu forums). The best answer I've found (from here) is that it's an issue with Intel integrated graphics (often HD 2500) and kernels between 5.8.0-49 and 5.12.5. Installing a newer kernel or rolling back to an older one has worked for a few people (see another example in my forum post). I haven't dared try it yet: the bug is a minor cosmetic annoyance (on my system at least), so I'm waiting a while to see if Ubuntu backports the fix or provides a new enough kernel before too long.