UICViewer for Tegra K1

Hi guys,

I am using a Tegra K1 jeston board with the Tegra4Linux running on it. Now, I have created a simple GUI using the UI Composer studio and I would like to test it on the jetson board.

THe question is: How do I do that?

So far, I have downloaded the “UI Composer 7.0 Viewer for Vibrante Linux with DGPU” and installed it on the jetson. To be honest, I’m not even sure if these are the right binaries…

If I try to execute them ( ./UICViewer) only an error message occurs saying “UIComposer: could not open display”. Moreover, I couldnt find any help on how to specifiy arguments (which model etc.)

Any help is greatly appreciated :)

Regards
Stampede

I know nothing about your application. First question though is where are you starting this application from? Is it from a serial console (in which case you must first “export DISPLAY=:0.0” for local display)? Is it from a GUI terminal local to Jetson? Is it from a remote ssh session?

Second, the file being executed…what is the output of “file ./UICViewer”?

Hi,

Im staring this from the serial console:

ubuntu@tegra-ubuntu:/cluster$ ls -la
total 9732
drwxr-xr-x  6 root root    4096 Feb  1 00:23 .
drwxr-xr-x 22 root root    4096 Feb  1 00:08 ..
drwxr-xr-x  3 root root    4096 Jul 23  2013 Arch
-rwxr-xr-x  1 root root  169462 Jul 23  2013 libLua.so
-rwxr-xr-x  1 root root 3598529 Jul 23  2013 libNVPangoText.so
drwxr-xr-x  6 root root    4096 Jul 23  2013 Res
drwxr-xr-x  4 root root    4096 Jul 23  2013 Runtime
drwxr-xr-x  8 root root    4096 Feb  1 00:23 speedecluster
-rwxr-xr-x  1 root root 2970199 Feb  1 00:08 UI_Composer_Viewer-Vibrante21_X_DGPU.7.0.16512014.run
-rwxr-xr-x  1 root root 3194304 Jul 23  2013 UICViewer

Inside the folder “speedecluster” is the model (as it was created from the composer, here are uip files)

After “export DISPLAY=:0.0” and executing

ubuntu@tegra-ubuntu:/cluster$ ./UICViewer speedecluster/speedecluster.uip
executable path ./UICViewer
Presentation file speedecluster/speedecluster.uip
Xlib:  extension "GLX" missing on display ":0.0".
Invalid GLX versionUIComposer: failed to create window

Do I need to run it through X using the ubuntu desktop? Is there any documentation for this available?

Update:

Executing the gears example seems to work:

./UICViewer Runtime/Plugins/Render/gears/PluginSample/PluginSample.uip
Presentation file Runtime/Plugins/Render/gears/PluginSample/PluginSample.uip
Getting matching framebuffer configs
Found 8 matching FB configs.
  Matching fbconfig 0, visual ID 0x24: SAMPLE_BUFFERS = 0, SAMPLES = 0
  Matching fbconfig 1, visual ID 0x6a: SAMPLE_BUFFERS = 0, SAMPLES = 0
  Matching fbconfig 2, visual ID 0x38: SAMPLE_BUFFERS = 1, SAMPLES = 2
  Matching fbconfig 3, visual ID 0x7e: SAMPLE_BUFFERS = 1, SAMPLES = 2
  Matching fbconfig 4, visual ID 0x3a: SAMPLE_BUFFERS = 1, SAMPLES = 4
  Matching fbconfig 5, visual ID 0x80: SAMPLE_BUFFERS = 1, SAMPLES = 4
  Matching fbconfig 6, visual ID 0x44: SAMPLE_BUFFERS = 1, SAMPLES = 8
  Matching fbconfig 7, visual ID 0x8a: SAMPLE_BUFFERS = 1, SAMPLES = 8
Chosen visual ID = 0x24
Created GL 2.0 context
Direct GLX rendering context obtained
INFO(Log): CTegraApplication::DoInitialize - DoInitialize
WARN(Log):  - ./../../../Source/NVRender/Source/backends/gl/NVRenderBackendGL2.cpp(83): - eDEBUG_WARNING GL extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(227): - eDEBUG_WARNING Failed to find file: Runtime/Plugins/Render/gears/PluginSample/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(228): - eDEBUG_WARNING Searched paths:
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(231): - eDEBUG_WARNING Runtime/Plugins/Render/gears/PluginSample/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(236): - eDEBUG_WARNING .//Runtime/Plugins/Render/gears/PluginSample/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(236): - eDEBUG_WARNING Runtime/Plugins/Render/gears/PluginSample/Runtime/Plugins/Render/gears/PluginSample/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRendererImplShaders.cpp(144): - eDEBUG_WARNING Generating shader for query: ,Lights,Vertex,Directional,Material,Diffuse,NormalUV

On the ubuntu desktop, a GUI appears… But how can I make my app running?

Hi Stampede,

This sounds like it’s part of the automotive development kit. Not many people on this board have access to it, but will probably try to help. NVIDIA is a good resource in this case.

What does UICViewer --help say?

My initial guesses would be that is that your .uip file is not in the correct directory, or the directory structure is incorrect, or the environment variables are not set correctly. I’m sure there must be some sort of installation procedure that sets everything up, is that what you did?

…snip…

I first was thinking environment, but the error once DISPLAY was set shows libglx.so is not detected or is the wrong version. The pinned topic on libglx.so corruption pretty much implies that if you have the wrong version for your Jetson, X11 won’t work. So it looks like the application was compiled against a different version. You will need to compile against Jetson’s version or install a compatibility version on Jetson to get to the next stage.

This is the error I see pointing this out:

Invalid GLX versionUIComposer: failed to create window

Hi guys,

I moved the project into Runtime/Render/… and now it can be executed. However, the Viewer only executes with a display recognized by the HDMI inferface and the ubuntu ( X11 ) running. From this I conclude that this version of the Viewer has been built against the X11 libs, and without sources I wont be able to run them without using the ubuntu desktop.

executable path ./UICViewer
Presentation file Runtime/Plugins/Render/speedecluster/speedecluster.uip
Getting matching framebuffer configs
Found 8 matching FB configs.
  Matching fbconfig 0, visual ID 0x24: SAMPLE_BUFFERS = 0, SAMPLES = 0
  Matching fbconfig 1, visual ID 0x6a: SAMPLE_BUFFERS = 0, SAMPLES = 0
  Matching fbconfig 2, visual ID 0x38: SAMPLE_BUFFERS = 1, SAMPLES = 2
  Matching fbconfig 3, visual ID 0x7e: SAMPLE_BUFFERS = 1, SAMPLES = 2
  Matching fbconfig 4, visual ID 0x3a: SAMPLE_BUFFERS = 1, SAMPLES = 4
  Matching fbconfig 5, visual ID 0x80: SAMPLE_BUFFERS = 1, SAMPLES = 4
  Matching fbconfig 6, visual ID 0x44: SAMPLE_BUFFERS = 1, SAMPLES = 8
  Matching fbconfig 7, visual ID 0x8a: SAMPLE_BUFFERS = 1, SAMPLES = 8
Chosen visual ID = 0x24
Created GL 2.0 context
Direct GLX rendering context obtained
INFO(Log): CTegraApplication::DoInitialize - DoInitialize
WARN(Log):  - ./../../../Source/NVRender/Source/backends/gl/NVRenderBackendGL2.cpp(83): - eDEBUG_WARNING GL extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(227): - eDEBUG_WARNING Failed to find file: Runtime/Plugins/Render/speedecluster/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(228): - eDEBUG_WARNING Searched paths:
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(231): - eDEBUG_WARNING Runtime/Plugins/Render/speedecluster/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(236): - eDEBUG_WARNING .//Runtime/Plugins/Render/speedecluster/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRenderInputStreamFactory.cpp(236): - eDEBUG_WARNING Runtime/Plugins/Render/speedecluster/Runtime/Plugins/Render/speedecluster/binary/shadercache.xml
WARN(Log):  - ./../../../Source/UICRender/Source/UICRendererImplShaders.cpp(144): - eDEBUG_WARNING Generating shader for query: ,Lights,Vertex,Directional,Material
WARN(Log):  - ./../../../Source/UICRender/Source/UICRendererImplShaders.cpp(144): - eDEBUG_WARNING Generating shader for query: ,Lights,Vertex,Directional,Material,Diffuse,NormalUV

Nothing. It’s not implemented.

Another update that might me interessting if you dont want to have ubuntu desktop running: Uninstall / purge the windowmanager (lightdm) and only run X. Then start UICViewer

ubuntu:/cluster$ X &
ubuntu:/cluster$ ./UICViewer Runtime/Plugins/Render/ReferenceCluster
executable path ./UICViewer
Presentation file Runtime/Plugins/Render/ReferenceCluster/Cluster.uip