Yeah, I'm puzzled. On desktop, configuring with -DUSE_OPENGLES=1 has
everything working. Qt is compiled with GL support on desktop, so this
fact confuses me. With that configure flag, Qt does notified it has a
GLES context, perhaps it is smart enough to then just use the right
shaders & commands. Or else MESA is being forgiving at switching between
GL and GLES.

Comparing the apitrace of the old qmake build versus a newer cmake
build, this is the main change:

- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2048, 1024, 0, GL_BGRA, 
GL_UNSIGNED_BYTE, NULL)
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA, 2048, 1024, 0, GL_BGRA, 
GL_UNSIGNED_BYTE, NULL)

Source of this line is the Scenegraph renderer:

void Atlas::bind(QSGTexture::Filtering filtering)

        glTexImage2D(GL_TEXTURE_2D, 0, m_internalFormat, m_size.width(),
m_size.height(), 0, m_externalFormat, GL_UNSIGNED_BYTE, 0);

m_internalFormat is wrong after cmake change - it is GL_BGRA, which is
the default if a non-GLES context is current.

I compared the build commands between qmake and cmake: 
http://pastebin.ubuntu.com/9699667/
which shows me that the newer cmake is setting QT_USING_OPENGL and 
QTMIR_USE_OPENGL (as we'd expect), but qmake was not setting these. qmake 
worked, perhaps by accident

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1401968

Title:
  GTK applications don't work anymore under unity8

To manage notifications about this bug go to:
https://bugs.launchpad.net/qtmir/+bug/1401968/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to