21/21 Test #21: quickinspectortest ...............***Exception: Other 1.40 sec
********* Start testing of QuickInspectorTest *********
Config: Using QtTest library 5.5.1, Qt 5.5.1 (arm64-little_endian-lp64 shared (dynamic) release build; by GCC 5.3.1 20160519)
[...]
QWARN : QuickInspectorTest::testCustomRenderModes() QEGLPlatformContext: Failed to make temporary surface current, format not updated
Mesa 11.2.1 implementation error: Failed to link fixed function fragment shader: error: count of uniform locations > MAX_UNIFORM_LOCATIONS(4294967295 > 98304)
Please report at https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa
QFatal in quickinspectortest (/«PKGBUILDDIR»/obj-qt5/bin/quickinspectortest)
START BACKTRACE:
1 /«PKGBUILDDIR»/obj-qt5/lib/libgammaray_core-qt5.5-aarch64.so.2.4.0(+0xc2128) [0x7f9138f128]
2 /«PKGBUILDDIR»/obj-qt5/lib/libgammaray_core-qt5.5-aarch64.so.2.4.0(+0xa6368) [0x7f91373368]
3 /usr/lib/aarch64-linux-gnu/libQt5Core.so.5(+0x91620) [0x7f9067a620]
4 /usr/lib/aarch64-linux-gnu/libQt5Core.so.5(QMessageLogger::fatal(char const*, ...) const+0x9c) [0x7f9067c0fc]
5 /usr/lib/aarch64-linux-gnu/libQt5Test.so.5(+0xad20) [0x7f91268d20]
6 [0x7f91484510]
7 /usr/lib/aarch64-linux-gnu/dri/swrast_dri.so(+0x9631c) [0x7f8c5dc31c]
END BACKTRACE
QFATAL : QuickInspectorTest::testCustomRenderModes() Received signal 11
FAIL! : QuickInspectorTest::testCustomRenderModes() Received a fatal error.
Loc: [Unknown file(0)]
Totals: 6 passed, 1 failed, 0 skipped, 0 blacklisted
********* Finished testing of QuickInspectorTest *********
This problem apparently does not occur on armhf even though GLES is also used on that architecture.
It also definitely looks like a mesa bug to me. ./src/compiler/glsl/linker.cpp:link_shaders() calls ./src/compiler/glsl/linker.cpp:check_explicit_uniform_locations(), which returns -1 if ctx->Extensions.ARB_explicit_uniform_location is not set (which it doesn't have to be AFAICS), then assigns this -1 to an unsigned int variable and carries on using the value instead of treating this as an error.
This bug also breaks gammaray on arm64:
21/21 Test #21: quickinspectortest ....... ....... .***Exception: Other 1.40 sec little_ endian- lp64 shared (dynamic) release build; by GCC 5.3.1 20160519) est::testCustom RenderModes( ) QEGLPlatformCon text: Failed to make temporary surface current, format not updated LOCATIONS( 4294967295 > 98304)
********* Start testing of QuickInspectorTest *********
Config: Using QtTest library 5.5.1, Qt 5.5.1 (arm64-
[...]
QWARN : QuickInspectorT
Mesa 11.2.1 implementation error: Failed to link fixed function fragment shader: error: count of uniform locations > MAX_UNIFORM_
Please report at https:/ /bugs.freedeskt op.org/ enter_bug. cgi?product= Mesa /obj-qt5/ bin/quickinspec tortest) /obj-qt5/ lib/libgammaray _core-qt5. 5-aarch64. so.2.4. 0(+0xc2128) [0x7f9138f128] /obj-qt5/ lib/libgammaray _core-qt5. 5-aarch64. so.2.4. 0(+0xa6368) [0x7f91373368] aarch64- linux-gnu/ libQt5Core. so.5(+0x91620) [0x7f9067a620] aarch64- linux-gnu/ libQt5Core. so.5(QMessageLo gger::fatal( char const*, ...) const+0x9c) [0x7f9067c0fc] aarch64- linux-gnu/ libQt5Test. so.5(+0xad20) [0x7f91268d20] aarch64- linux-gnu/ dri/swrast_ dri.so( +0x9631c) [0x7f8c5dc31c] est::testCustom RenderModes( ) Received signal 11 est::testCustom RenderModes( ) Received a fatal error.
QFatal in quickinspectortest (/«PKGBUILDDIR»
START BACKTRACE:
1 /«PKGBUILDDIR»
2 /«PKGBUILDDIR»
3 /usr/lib/
4 /usr/lib/
5 /usr/lib/
6 [0x7f91484510]
7 /usr/lib/
END BACKTRACE
QFATAL : QuickInspectorT
FAIL! : QuickInspectorT
Loc: [Unknown file(0)]
Totals: 6 passed, 1 failed, 0 skipped, 0 blacklisted
********* Finished testing of QuickInspectorTest *********
https:/ /launchpad. net/ubuntu/ +source/ gammaray/ 2.4.0-1build1/ +build/ 9894589
This problem apparently does not occur on armhf even though GLES is also used on that architecture.
It also definitely looks like a mesa bug to me. ./src/compiler/ glsl/linker. cpp:link_ shaders( ) calls ./src/compiler/ glsl/linker. cpp:check_ explicit_ uniform_ locations( ), which returns -1 if ctx->Extensions .ARB_explicit_ uniform_ location is not set (which it doesn't have to be AFAICS), then assigns this -1 to an unsigned int variable and carries on using the value instead of treating this as an error.