Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-101396

QOpenGLTextureBlitter support for GL_TEXTURE_RECTANGLE breaks on some Intel drivers

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.15.11
    • 5.15
    • GUI: OpenGL
    • None
    • Windows
    • 5fb20a61c9 (qt/tqtc-qtbase/5.15)

    Description

      Our application doesn't start up properly on some customers' computers.

      The log files shows the following:

       

      2022.03.02 17:40:30.734 [W] QOpenGLShader::compile(Fragment): ERROR: 4:1: 'textureSampler' : syntax error syntax error
      2022.03.02 17:40:30.734 [W] *** Problematic Fragment shader source code ***
      #version 110
      #ifdef GL_KHR_blend_equation_advanced
      #extension GL_ARB_fragment_coord_conventions : enable
      #extension GL_KHR_blend_equation_advanced : enable
      #endif
      #define lowp
      #define mediump
      #define highp
      #line 1
      varying highp vec2 uv;uniform sampler2DRect textureSampler;uniform bool swizzle;uniform highp float opacity;void main() { highp vec4 tmpFragColor = texture2DRect(textureSampler,uv); tmpFragColor.a *= opacity; gl_FragColor = swizzle ? tmpFragColor.bgra : tmpFragColor;}
      ***
      

       

      I've tracked this down to this recent change in Qt 5.15 tqtc branch:

      https://codereview.qt-project.org/c/qt/tqtc-qtbase/+/383480

       

      With some Intel drivers/cards, the new 'supportsRectangleTarget' returns true, but then the glsl fails to compile.

       

      I have seen this on two machines:

      Manufacturer = Hewlett-Packard
      Model = HP EliteDesk 800 G1 SFF
      CPU = Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
      Driver Renderer = Intel(R) HD Graphics 4600
      Driver Version = 4.3.0 - Build 20.19.15.5126

      and

      Manufacturer = HP
      Model = HP Pavilion x360 Convertible
      SystemType = x64-based PC
      CPU = Intel(R) Celeron(R) CPU N3050 @ 1.60GHz
      Driver Renderer = Intel(R) HD Graphics
      Driver Version = 4.4.0 - Build 20.19.15.4835
      Driver GLSL = 4.40 - Build 20.19.15.4835

       

      The way the code is written, if supportsRectangleTarget() returns true, but then the glsl doesn't compile, the blitter is unusable.

      Attachments

        For Gerrit Dashboard: QTBUG-101396
        # Subject Branch Project Status CR V

        Activity

          People

            lagocs Laszlo Agocs
            dzedsystems Dyami Caliri
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes