← Back to team overview

ubuntu-sdk-bugs team mailing list archive

[Bug 1749472] [NEW] mesa 18.0.0 will cause rendering errors in Qt applications

 

Public bug reported:

From: https://bugreports.qt.io/browse/QTBUG-66348

** extract **

The `QOpenGLShaderProgram` class in Qt can be used to compile and link
OpenGL shaders. If the `GL_ARB_get_program_binary` OpenGL extension is
available, it can cache those shaders on disk (~/.cache/qtshadercache).
The i965 driver in Mesa supports this extension since version 18.0.0.

When the shader is loaded using the `glProgramBinary` function, OpenGL
can refuse it if for example some hardware or software component
changed. Mesa refuses binaries that were created by any other build of
Mesa (using among other things the build_id of the library).

If the shader is refused, Qt should fallback to compiling it from
sources, but it incorrectly calls glLinkProgram first. The glLinkProgram
succeeds, because it actually links 0 shaders together. That is allowed
in OpenGL compatibility profile and the resulting program works as a
fixed pipeline. Which of course does not render as expected.

This causes rendering errors in Qt applications every time Mesa is
updated since version 18.0.0. For example white screen in sddm.

This issue was originally reported in openSUSE
(https://bugzilla.opensuse.org/show_bug.cgi?id=1080578).

** end extract **

As this potentially effects Qt applications, and could even render
display manager login unusable, this should be a blocking bug in mesa
and Qt until Qt mitigations patches pass codereview and can be included
in Qtbase for 18.04.

** Affects: mesa (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: qtbase-opensource-src (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: mesa (Ubuntu Bionic)
     Importance: Undecided
         Status: New

** Affects: qtbase-opensource-src (Ubuntu Bionic)
     Importance: Undecided
         Status: New


** Tags: block-proposed

** Also affects: qtbase-opensource-src (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: mesa (Ubuntu Bionic)
   Importance: Undecided
       Status: New

** Also affects: qtbase-opensource-src (Ubuntu Bionic)
   Importance: Undecided
       Status: New

** Tags added: block-proposed

-- 
You received this bug notification because you are a member of Ubuntu
SDK bug tracking, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1749472

Title:
  mesa 18.0.0 will cause rendering errors in Qt applications

Status in mesa package in Ubuntu:
  New
Status in qtbase-opensource-src package in Ubuntu:
  New
Status in mesa source package in Bionic:
  New
Status in qtbase-opensource-src source package in Bionic:
  New

Bug description:
  From: https://bugreports.qt.io/browse/QTBUG-66348

  ** extract **

  The `QOpenGLShaderProgram` class in Qt can be used to compile and link
  OpenGL shaders. If the `GL_ARB_get_program_binary` OpenGL extension is
  available, it can cache those shaders on disk
  (~/.cache/qtshadercache). The i965 driver in Mesa supports this
  extension since version 18.0.0.

  When the shader is loaded using the `glProgramBinary` function, OpenGL
  can refuse it if for example some hardware or software component
  changed. Mesa refuses binaries that were created by any other build of
  Mesa (using among other things the build_id of the library).

  If the shader is refused, Qt should fallback to compiling it from
  sources, but it incorrectly calls glLinkProgram first. The
  glLinkProgram succeeds, because it actually links 0 shaders together.
  That is allowed in OpenGL compatibility profile and the resulting
  program works as a fixed pipeline. Which of course does not render as
  expected.

  This causes rendering errors in Qt applications every time Mesa is
  updated since version 18.0.0. For example white screen in sddm.

  This issue was originally reported in openSUSE
  (https://bugzilla.opensuse.org/show_bug.cgi?id=1080578).

  ** end extract **

  As this potentially effects Qt applications, and could even render
  display manager login unusable, this should be a blocking bug in mesa
  and Qt until Qt mitigations patches pass codereview and can be
  included in Qtbase for 18.04.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/1749472/+subscriptions


Follow ups