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

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        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