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

QtQuick2 has problems(crash/not display) using RemoteDesktop

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Not Evaluated
    • Resolution: Out of scope
    • Affects Version/s: 5.0.1
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      Windows XP not OK / Windows 7 OK

      Description

      (maybe it's not a Bug, but a disadvantage of OpenGL.)

      When I use mstsc(Microsoft Terminal Service Client) to connect to a machine with Windows XP operating system, and run QtQuick programs on it, I encountered some problems.

      A simple QtQuick2 program:

      import QtQuick 2.0
      
      Rectangle {
      	width: 100; height: 100
      	color: "red"
      }
      

      When I run it through mstsc on a remote Windows XP, it crashes:

      class QWindowsEGLStaticContext *__cdecl QWindowsEGLStaticContext::create(void): Could not initialize egl display: error 12289

      QQuickWindow: makeCurrent() failed...

      I go to that machine, run the program locally, it works correct and shows the red rectangle. So it means this only happens when using terminal services(mstsc).

      I doubt whether it's a problem of ANGLE, so I built Qt from the source with opengl parameter. Now the program does not crash, but shows a white window. I use a tool called DebugView to receive debug info:

      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glBindFramebuffer'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glBindFramebufferOES'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glBindFramebufferARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glBindFramebufferEXT'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateProgram'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateProgramARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateProgramObject'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateProgramObjectARB'
      [2116] QOpenGLShaderProgram: could not create shader program
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateShader'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateShaderARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateShaderObject'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glCreateShaderObjectARB'
      [2116] QOpenGLShader: could not create shader
      [2116] QSGMaterialShader: Shader compilation failed:
      [2116] ""
      [2116] QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
      [2116] QOpenGLShaderProgram::uniformLocation( opacity ): shader program is not linked
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glEnableVertexAttribArray'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glEnableVertexAttribArrayARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glEnableVertexAttribArray'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glEnableVertexAttribArrayARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glUniformMatrix4fv'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glUniformMatrix4fvARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glVertexAttribPointer'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glVertexAttribPointerARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glVertexAttribPointer'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glVertexAttribPointerARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glDisableVertexAttribArray'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glDisableVertexAttribArrayARB'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glDisableVertexAttribArray'
      [2116] QWindowsGLContext::getProcAddress: Unable to resolve 'glDisableVertexAttribArrayARB'

      I doubt whether OpenGL things can't be drawn when using remote desktop. But I tried the same program on a Windows 7 (remotely), it works correctly and has no problem.

        Attachments

          Issue Links

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

            Activity

              People

              Assignee:
              kleint Friedemann Kleint
              Reporter:
              weiyuemin weiyuemin
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes