PVRShaderEditor Crashes on launch

Hi,

I successfully installed PVRTune and such, but PVRShaderEditor outputs:

Error: could not load dynamic library: librui_5.6.0.x64.so

I cannot seem to find any package containing this shared library.
Do you have an idea of what package i am missing or anything ?

it’s the PVRshaderEditor 2021_R2 on Linux x64

Hi Antoine,

Thank you for your message, and welcome to the PVR Developer Forum!

We will try to reproduce the issue you are experiencing and report to the Tools Team in case we manage to do it. We will update you with our progress.

Best regards,
Alejandro

Hi Antoine,

I’ve had a look at your issue and I was able to run PVRShaderEditorGUI through the command line with no issues. Before I could run it I had to have qtcreator installed so I would ask (if you don’t have it installed) to install that before trying to run PVRShaderEditorGUI.

If you still have this issue, it would be appreciated if you could post all of the errors (including extra information) that is outputted so I can get a full picture.

Kind regards,

Stephen

Hi Stephen,

Thank you for your reply.
To give you more info, the full message after running ./PVRShaderEditorGUI:

libpng warning: iCCP: known incorrect sRGB profile
Error: Could not load dynamic library: librui_5.6.0.x64.so

Segmentation fault (core dumped)

I’m trying to run it on Ubuntu 18.04, I will try to ensure that my qt installation is complete and correctly installed.

Hello again,

So I’ve verified that my installation of qt is complete and correctly installed.
As the output of dpkg-reconfigure for each qt package is clean.

The version of qtcreator installed is 4.5.2-3ubuntu2:amd64 (Ubuntu 18.04)

And PVRShaderEditor still gives me the same output (about librui.so being not found)

May PVRShaderEditor require a more recent version of qtcreator ? (like >= 4.11 targeting focal ?)
Which version did you test ?

PS: Or If i may ask, is there any way to access the compilers in command line i could not suceed to do so

I’m writing a new reply because i’ve discovered something that might help solve the issue.

ldd and nm tools (to list shared libraries and binary symbols) didn’t reveal anything on a “librui” shared library.

However when i ran the “strings ./PVRShaderEditor | grep rui” it showed me:

librui_5.6.0.x64.so
ruiCreateConfig
ruiCreateInstance
ruiSetProductData
ruiStartSDK
ruiStopSDK
ruiDestroyInstance
ruiTrackEvent

Which suggests that PVRShaderEditor dynamically load librui_5.6.0.x64.so
Moreover now i know what this library is about: it seems to come from Revenera Intelligence C++ SDK

So the good news is I found what is missing for me.
The bad news is that it seems that this SDK requires some sort of registration.

I look forward to your reply

Hi Antoine,

Thank you for all your research and insight into this issue. I have informed the Tools team who will take action with this problem.

Kind regards,

Stephen

Hi, Antonie,

The lack of Revenera library is just a red-herring. We do not use that library and, hence, it is not include in the package. Our tools, nonetheless, will try to open it. If it is not present, will do nothing and continue without loading it, but they will emit a warning which is the one you have seen.

PVRShaderEditor does not requires QTCreator or a QT installation as it carries its own QT libraries.

We have tested it on Ubuntu 18 and 20 without any problems. Do you have a crash log?

Thanks.

Carlos.

Hello Carlos,

Thanks for your feedback,
There is indeed a file named log.txt which is created at each execution but nothing is written into it, but the date is updated.
Perhaps an strace log may be of use to you ?
strace.txt (440.9 KB)

May PVRShaderEditor requires internet for some reason ? This is the only thing I cannot test.
I can successfully run PVRCarbon, PVRStudio does not but this is related to an other issue.

Best regards,
Antoine

Hi, Antoine.

The starce.txt looks fine and there is not any mismatch with the qt libraries. Our tools do not require internet connection so I do not think that is the problem either. We have also tested PVRShaderEditor on a very barebones ArchLinux distro and it works fine.
A couple of suggestions: Delete the .plist file with the PVRShaderEditor configuration. It should be in your home folder /home/[user]/.config/Imagination Technologies
If this does not help. Run the application with GDB:
gdb ./PVRShaderEditor
and when it crashes just type : backtrace and send us the backtrace

Thanks.

Carlos.

Hello Carlos,

With the information you gave me I could find a .plist file in ‘~/.pvrconfig/Imagination Technologies’ for each tool, but deleting it for PVRShaderEditor and running it again didn’t have any effect, although the contents appears to be more emptier but still valid xml anyway.

As for gdb here is the full output (run → bt):
gdb.txt (4.2 KB)

I hope this helps, tell me if you need more information/tests from my side.

Best regards,
Antoine

Hi, Antoine.

Thanks for sending the gdb output. We believe that the problem is caused by Wayland. By default PVRShaderEditor goes to X11/XCB, and because Ubuntu has a X11 to Wayland translator layer, it tries to go down that path but it does not work. Try with this command:
QT_QPA_PLATFORM=wayland ./PVRShaderEditorGUI

Regards.

Carlos.

Hello Carlos,

So I’ve enabled ubuntu on wayland and logged into Ubuntu with Wayland running.

The command that you gave me tries to load the wayland plugin but fails to, here is the output of QT_DEBUG_PLUGINS=1 QT_QPA_PLATFORM=wayland ./PVRShaderEditorGUI
qtdebug_wayland.txt (2.8 KB)

And here is the gdb (run → bt) output of QT_QPA_PLATFORM=wayland gdb ./PVRShaderEditorGUI
qtdebug_wayland_gdb.txt (2.9 KB)

Best regards,
Antoine

Hello again,

To give a bit more information, I noticed that I cannot run any PowerVR tool (PVRTune, PVRCarbon) by doing QT_QPA_PLATFORM=wayland ./PVRXXXX
But they work completely fine with xcb, PVRShaderEditor is the only one of these three that segfaults with xcb.

I have tested on an other offline ubuntu 18.04, similar to my setup. And the issue is identical.

Best regards,
Antoine