Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. QOpenGLShaderProgram: could not create shader program
Qt 6.11 is out! See what's new in the release blog

QOpenGLShaderProgram: could not create shader program

Scheduled Pinned Locked Moved QML and Qt Quick
25 Posts 5 Posters 33.1k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #6

    @vladinko0 said:

    QOpenGLShaderProgram

    Ah, now I understand. So you're not tinkering with QOpenGLShaderProgram yourself at all, right?

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #7

      Yes, You are right.

      ? 1 Reply Last reply
      0
      • ? Offline
        ? Offline
        A Former User
        wrote on last edited by A Former User
        #8

        Which Qt version did you install exactly?

        Qt 5.4.1 for Windows 64-bit (VS 2013, 722 MB) (info)
        Qt 5.4.1 for Windows 64-bit (VS 2013, OpenGL, 711 MB) (info)
        Qt 5.4.1 for Windows 32-bit (VS 2013, 705 MB) (info)
        Qt 5.4.1 for Windows 32-bit (VS 2013, OpenGL, 695 MB) (info)
        Qt 5.4.1 for Windows 32-bit (VS 2012, OpenGL, 644 MB) (info)
        Qt 5.4.1 for Windows 32-bit (VS 2010, OpenGL, 627 MB) (info)
        Qt 5.4.1 for Windows 32-bit (MinGW 4.9.1, 856 MB) (info)
        Qt 5.4.1 for Android (Windows 32-bit, 939 MB) (info)
        Qt 5.4.1 for Windows RT 32-bit (766 MB) (info)

        1 Reply Last reply
        0
        • ? A Former User

          Yes, You are right.

          ? Offline
          ? Offline
          A Former User
          wrote on last edited by
          #9

          @vladinko0 If your Qt version isn't OpenGL-only, then you can force your program to use ANGLE:
          QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); // use DirectX via ANGLE

          ? 1 Reply Last reply
          0
          • ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #10

            I installed Qt 5.4.1 MinGW 4.9.1 (32 bit), OpenGL for Windows .

            1 Reply Last reply
            0
            • Chris KawaC Offline
              Chris KawaC Offline
              Chris Kawa
              Lifetime Qt Champion
              wrote on last edited by
              #11

              According to Intel documentation the Q35 Express chipset only supports OpenGL 1.3. That's waaay to low for Qt.

              You can run the ANGLE (or dynamic) version of Qt (OpenGL layer on top of DirectX). It's the package without "OpenGL" in the name mentioned by @Wieland. This still won't let you run some of the OpenGL examples. It's high time for an upgrade ;)

              SGaistS 1 Reply Last reply
              0
              • ? A Former User

                @vladinko0 If your Qt version isn't OpenGL-only, then you can force your program to use ANGLE:
                QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); // use DirectX via ANGLE

                ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #12

                @Wieland said:

                @vladinko0 If your Qt version isn't OpenGL-only, then you can force your program to use ANGLE:
                QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); // use DirectX via ANGLE

                Is it possible to put this line into Qt Quick UI project?
                Because there are only qml files like this:
                import QtQuick 2.4
                import QtQuick.Controls 1.3
                import QtQuick.Window 2.2
                import QtQuick.Dialogs 1.2

                ApplicationWindow {
                title: qsTr("Hello World")
                width: 640
                height: 480

                menuBar: MenuBar {
                    Menu {
                        title: qsTr("&File")
                        MenuItem {
                            text: qsTr("&Open")
                            onTriggered: messageDialog.show(qsTr("Open action triggered"));
                        }
                        MenuItem {
                            text: qsTr("E&xit")
                            onTriggered: Qt.quit();
                        }
                    }
                }
                
                MainForm {
                    anchors.fill: parent
                    button1.onClicked: messageDialog.show(qsTr("Button 1 pressed"))
                    button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))
                    button3.onClicked: messageDialog.show(qsTr("Button 3 pressed"))
                }
                
                MessageDialog {
                    id: messageDialog
                    title: qsTr("May I have your attention, please?")
                
                    function show(caption) {
                        messageDialog.text = caption;
                        messageDialog.open();
                    }
                }
                

                }

                Or where to put this line?

                ? 1 Reply Last reply
                0
                • ? A Former User

                  @Wieland said:

                  @vladinko0 If your Qt version isn't OpenGL-only, then you can force your program to use ANGLE:
                  QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); // use DirectX via ANGLE

                  Is it possible to put this line into Qt Quick UI project?
                  Because there are only qml files like this:
                  import QtQuick 2.4
                  import QtQuick.Controls 1.3
                  import QtQuick.Window 2.2
                  import QtQuick.Dialogs 1.2

                  ApplicationWindow {
                  title: qsTr("Hello World")
                  width: 640
                  height: 480

                  menuBar: MenuBar {
                      Menu {
                          title: qsTr("&File")
                          MenuItem {
                              text: qsTr("&Open")
                              onTriggered: messageDialog.show(qsTr("Open action triggered"));
                          }
                          MenuItem {
                              text: qsTr("E&xit")
                              onTriggered: Qt.quit();
                          }
                      }
                  }
                  
                  MainForm {
                      anchors.fill: parent
                      button1.onClicked: messageDialog.show(qsTr("Button 1 pressed"))
                      button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))
                      button3.onClicked: messageDialog.show(qsTr("Button 3 pressed"))
                  }
                  
                  MessageDialog {
                      id: messageDialog
                      title: qsTr("May I have your attention, please?")
                  
                      function show(caption) {
                          messageDialog.text = caption;
                          messageDialog.open();
                      }
                  }
                  

                  }

                  Or where to put this line?

                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by A Former User
                  #13

                  @vladinko0 It belongs in your main.cpp:

                  int main(int argc, char *argv[])
                  {
                      // Options on Windows; set before instantiating QApplication
                      // QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); // use DirectX via ANGLE
                      
                      QApplication app( argc, argv );
                  
                  ? 1 Reply Last reply
                  0
                  • ? A Former User

                    @vladinko0 It belongs in your main.cpp:

                    int main(int argc, char *argv[])
                    {
                        // Options on Windows; set before instantiating QApplication
                        // QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); // use DirectX via ANGLE
                        
                        QApplication app( argc, argv );
                    
                    ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #14

                    @Wieland But Qt Quick UI project has no main.cpp file.

                    ? 1 Reply Last reply
                    0
                    • ? A Former User

                      @Wieland But Qt Quick UI project has no main.cpp file.

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #15

                      @vladinko0 I know. Can't you use Qt Quick Application?

                      ? 1 Reply Last reply
                      0
                      • ? A Former User

                        @vladinko0 I know. Can't you use Qt Quick Application?

                        ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by
                        #16

                        @Wieland Yes, I used also Qt Quick Application project with the same error.

                        1 Reply Last reply
                        0
                        • ? Offline
                          ? Offline
                          A Former User
                          wrote on last edited by A Former User
                          #17

                          Hmm. If you have an ANGLE capable Qt version and set the Qt::AA_UseOpenGLES attribute and it still doesn't work then I don't know. Sorry :-(

                          1 Reply Last reply
                          0
                          • boumathB Offline
                            boumathB Offline
                            boumath
                            wrote on last edited by
                            #18

                            I had exactly the same issue with Qt 5.4.1 MinGW 32-bit

                            @Wieland solution to force ANGLE is the good one, but it doesn't work. In fact I'm not sure this version support it. If you look into the \Qt5.4.1\5.4\mingw491_32\bin directory you will not find libEGL.dll, libGLESv2.dll and d3dcompiler_47.dll. I used to work with ANGLE but with Microsoft Visual Studio 2013 compilator, and these libraries are provided in the Qt distribution : "Qt 5.4.1 for Windows 32-bit (VS 2013, 705 MB)"

                            @Wieland do you have MinGW or VS2013 compilator ?

                            ? 1 Reply Last reply
                            0
                            • boumathB boumath

                              I had exactly the same issue with Qt 5.4.1 MinGW 32-bit

                              @Wieland solution to force ANGLE is the good one, but it doesn't work. In fact I'm not sure this version support it. If you look into the \Qt5.4.1\5.4\mingw491_32\bin directory you will not find libEGL.dll, libGLESv2.dll and d3dcompiler_47.dll. I used to work with ANGLE but with Microsoft Visual Studio 2013 compilator, and these libraries are provided in the Qt distribution : "Qt 5.4.1 for Windows 32-bit (VS 2013, 705 MB)"

                              @Wieland do you have MinGW or VS2013 compilator ?

                              ? Offline
                              ? Offline
                              A Former User
                              wrote on last edited by
                              #19

                              @boumath Hi, I use VS 2013.

                              1 Reply Last reply
                              0
                              • boumathB Offline
                                boumathB Offline
                                boumath
                                wrote on last edited by
                                #20

                                Thanks Wieland, that's explains why forcing ANGLE in your case is working and not for vladinko0

                                @vladinko0, I suggest you to install Visual Studio 2013 (Express is free), and install Qt 5.4.1 for VS2013. Force Qt::AA_UseOpenGLES like Wieland says. Because your graphic chipset is old, perhaps you will need to set the environment variable QT_ANGLE_PLATFORM to d3d9 (if it doesn't support DirectX 11).

                                ? 1 Reply Last reply
                                0
                                • boumathB boumath

                                  Thanks Wieland, that's explains why forcing ANGLE in your case is working and not for vladinko0

                                  @vladinko0, I suggest you to install Visual Studio 2013 (Express is free), and install Qt 5.4.1 for VS2013. Force Qt::AA_UseOpenGLES like Wieland says. Because your graphic chipset is old, perhaps you will need to set the environment variable QT_ANGLE_PLATFORM to d3d9 (if it doesn't support DirectX 11).

                                  ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #21

                                  @boumath I tried VS2013 with Qt 5.5 .0 but no success. :(

                                  1 Reply Last reply
                                  0
                                  • Chris KawaC Chris Kawa

                                    According to Intel documentation the Q35 Express chipset only supports OpenGL 1.3. That's waaay to low for Qt.

                                    You can run the ANGLE (or dynamic) version of Qt (OpenGL layer on top of DirectX). It's the package without "OpenGL" in the name mentioned by @Wieland. This still won't let you run some of the OpenGL examples. It's high time for an upgrade ;)

                                    SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #22

                                    Hi,

                                    If you are still on the same machine the message from Chris:

                                    @Chris-Kawa said:

                                    According to Intel documentation the Q35 Express chipset only supports OpenGL 1.3. That's waaay to low for Qt.

                                    You can run the ANGLE (or dynamic) version of Qt (OpenGL layer on top of DirectX). It's the package without "OpenGL" in the name mentioned by @Wieland. This still won't let you run some of the OpenGL examples. It's high time for an upgrade ;)

                                    Is still valid

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    1 Reply Last reply
                                    0
                                    • ? Offline
                                      ? Offline
                                      A Former User
                                      wrote on last edited by
                                      #23

                                      In fact I changed my machine. Graphic card is now Intel(R) Graphic Media Accelerator 3150. Result for Qt 5.4.1 mingw32 is the same.

                                      I forgot to mention, that with msvs2013 andQt 5.5 .0 the error is little bit different:
                                      Starting C:\Users\Vladimir\Documents\build-untitled11-Desktop_Qt_5_5_0_MSVC2013_32bit-Debug\debug\untitled11.exe...
                                      QML debugging is enabled. Only use this in a safe environment.
                                      class QWindowsEGLStaticContext *__cdecl QWindowsEGLStaticContext::create(class QFlags<enum QWindowsOpenGLTester::Renderer>): Could not initialize EGL display: error 0x3001

                                      class QWindowsEGLStaticContext *__cdecl QWindowsEGLStaticContext::create(class QFlags<enum QWindowsOpenGLTester::Renderer>): When using ANGLE, check if d3dcompiler_4x.dll is available
                                      C:\Users\Vladimir\Documents\build-untitled11-Desktop_Qt_5_5_0_MSVC2013_32bit-Debug\debug\untitled11.exe exited with code 0

                                      At the end project is launched.

                                      1 Reply Last reply
                                      0
                                      • Chris KawaC Offline
                                        Chris KawaC Offline
                                        Chris Kawa
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #24

                                        GMA 3150 only supports OpenGL 1.4. That's still waaaaay in the woods. You're still gonna need to use ANGLE.

                                        Did you try what the message says? "When using ANGLE, check if d3dcompiler_4x.dll is available"
                                        This dll should be placed next to your executable.

                                        1 Reply Last reply
                                        0
                                        • ? Offline
                                          ? Offline
                                          A Former User
                                          wrote on last edited by
                                          #25

                                          Yes, I tried to put that file in to C:\Users\Vladimir\Documents\build-untitled11-Desktop_Qt_5_5_0_MSVC2013_32bit-Debug\debug
                                          but no luck.

                                          1 Reply Last reply
                                          0
                                          • M MarkWhitwell referenced this topic on

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved