Likely a Shader Compilation Error

I’m running Nreal’s CloudXR client and it works well on many cell phones. However, on Galaxy S22 Android 13, there is a strange error I encountered with.

From the log it seems that the vertex shader was not correctly compiled and it fails to handle the gl_ pattern like other phones.

When this error happens, there is nothing I can see from the glasses upon connecting to a CloudXR server.

||Line  21204: 04-21 15:25:00.194  6805  6904 V CloudXR : context type: 3|
|---|---|
||Line  21210: 04-21 15:25:00.198  6805  6904 E CloudXR : No such file or directory opening log file: /sdcard/CloudXR//logs//CloudXR Client Log 2023-04-21 15.25.00.txt|
||Line  21211: 04-21 15:25:00.198  6805  6904 V CloudXR : NVIDIA CloudXR v3.2.0 (CL# 31290477), built on May  3 2022 01:10:59.|
||Line  21212: 04-21 15:25:00.198  6805  6904 V CloudXR : Cleaning up older files.|
||Line  21213: 04-21 15:25:00.198  6805  6904 V CloudXR : Failed to open dir for cleanup, errno = 2|
||Line  21214: 04-21 15:25:00.198  6805  6904 V CloudXR : Client doesn't implement ReceiveUserData().|
||Line  21455: 04-21 15:25:00.375  6805  6904 V CloudXR : Eye 0 decoding using Android Media Codec.|
|---|---|
||Line  21456: 04-21 15:25:00.376  6805  7533 V CloudXR : Mediacodec: Decoder thread running.|
||Line  21643: 04-21 15:25:00.414  6805  7548 V CloudXR : Mediacodec: Decoder thread running.|
||Line  21647: 04-21 15:25:00.414  6805  6904 V CloudXR : Eye 1 decoding using Android Media Codec.|
||Line  21648: 04-21 15:25:00.414  6805  6904 V CloudXR : Receiver created!|
||Line  21651: 04-21 15:25:00.414  6805  6904 V CloudXR : Streamer version: 14.|
||Line  21661: 04-21 15:25:00.415  6805  6904 V CloudXR : Unable to initialize streamer logging to /sdcard/CloudXR//logs/Streamer Client Log 2023-04-21 15.25.00.txt (level 2, target 4). Result: 0x800b0000|
||Line  21662: 04-21 15:25:00.415  6805  6904 V CloudXR : Make sure the app has write external storage permission granted.|
||Line  21663: 04-21 15:25:00.415  6805  6904 V CloudXR : Unable to initialize streamer logger (level 2, target 1). Result: 0x800b0005|
||Line  21664: 04-21 15:25:00.415  6805  6904 V CloudXR : Streamer created with no logging.|
||Line  21665: 04-21 15:25:00.426  6805  6904 V CloudXR : Stream client created with config receiveAudio: 1, sendAudio: 0, clientNetwork: 2, topology: 2, maxVideoBitrate: 100000, debugFlags: 0.|
||Line  21666: 04-21 15:25:00.426  6805  6904 V CloudXR : Set output folder for nvst diagnostic captures to /sdcard/CloudXR//logs/.|
||Line  21667: 04-21 15:25:00.426  6805  6904 V CloudXR : Video stream created successfully.|
||Line  21668: 04-21 15:25:00.426  6805  6904 V CloudXR : Video stream created successfully.|
||Line  21669: 04-21 15:25:00.426  6805  6904 V CloudXR : Audio receive stream created successfully.|
||Line  21670: 04-21 15:25:00.426  6805  6904 V CloudXR : Input stream created successfully.|
||Line  24880: 04-21 15:25:00.959  6805  6904 V CloudXR : Streaming started in HEVC.|
||Line  24894: 04-21 15:25:00.959  6805  7575 V CloudXR : Eye0 processing thread started.|
||Line  24901: 04-21 15:25:00.959  6805  6904 V CloudXR : Receiver created for server: 10.2.16.52|
||Line  24906: 04-21 15:25:00.959  6805  7576 V CloudXR : Eye1 processing thread started.|
||Line  24946: 04-21 15:25:00.961  6805  7577 V CloudXR : Worker thread started.|
||Line  25055: 04-21 15:25:00.964  6805  6904 D CloudXR : This frame is invalid.|
||Line  28090: 04-21 15:25:01.160  6805  7576 V CloudXR : GraphicsContext using pbuffer context|
||Line  28745: 04-21 15:25:01.166  6805  7576 V CloudXR : GLES driver supports YUV_target|
||Line  29597: 04-21 15:25:01.220  6805  7576 V CloudXR : Context: Vertex shader compilation failed:|
||Line  29598: 04-21 15:25:01.220  6805  7576 V CloudXR : ERROR: 0:23: 'gl_' : reserved built-in name|
||Line  29599: 04-21 15:25:01.220  6805  7576 V CloudXR : Context: Program linking failed:|
||Line  29600: 04-21 15:25:01.220  6805  7576 V CloudXR : Vertex shader is not compiled.|
||Line  29818: 04-21 15:25:01.235  6805  7576 V CloudXR : Context: Initializing ext non-fov non-alpha blit program|
||Line  29819: 04-21 15:25:01.235  6805  7575 V CloudXR : GraphicsContext using pbuffer context|
||Line  30076: 04-21 15:25:01.264  6805  7575 V CloudXR : Context: Vertex shader compilation failed:|
||Line  30077: 04-21 15:25:01.264  6805  7575 V CloudXR : ERROR: 0:23: 'gl_' : reserved built-in name|
||Line  30095: 04-21 15:25:01.264  6805  7575 V CloudXR : Context: Program linking failed:|
||Line  30096: 04-21 15:25:01.264  6805  7575 V CloudXR : Vertex shader is not compiled.|
||Line  30173: 04-21 15:25:01.270  6805  6904 V CloudXR : [PERF] DISCARDED: Eye 1, [FrameNum:1] [Network Dropped this frame]|
||Line  30180: 04-21 15:25:01.273  6805  6904 V CloudXR : [PERF] DISCARDED: Eye 1, [FrameNum:3] [Network Dropped this frame]|
||Line  30182: 04-21 15:25:01.273  6805  6904 V CloudXR : [PERF] DISCARDED: Eye 1, [FrameNum:5] [Network Dropped this frame]|
||Line  31487: 04-21 15:25:01.293  6805  7575 V CloudXR : Context: Vertex shader compilation failed:|
||Line  31488: 04-21 15:25:01.293  6805  7575 V CloudXR : ERROR: 0:23: 'gl_' : reserved built-in name|
||Line  31511: 04-21 15:25:01.305  6805  7576 V CloudXR : Context: Initializing ext non-fov non-alpha blit program|
||Line  31512: 04-21 15:25:01.305  6805  7575 V CloudXR : Context: Program linking failed:|
||Line  31513: 04-21 15:25:01.305  6805  7575 V CloudXR : Vertex shader is not compiled.|
||Line  31675: 04-21 15:25:01.309  6805  7576 V CloudXR : Context: Vertex shader compilation failed:|
||Line  31676: 04-21 15:25:01.309  6805  7576 V CloudXR : ERROR: 0:23: 'gl_' : reserved built-in name|
||Line  31677: 04-21 15:25:01.309  6805  7576 V CloudXR : Context: Program linking failed:|
||Line  31678: 04-21 15:25:01.309  6805  7576 V CloudXR : Vertex shader is not compiled.|

can you run the arcore sample directly?

I have an S21 5G, on android 13, and don’t have any such issue. it could be that we have different GPUs and thus different drivers, best I can guess. But certainly news to me.

There are generally two variants of every samsung device, one uses their own Exynos chipset, one uses QC or whatever. With two completely different GPU cores.

If you can install OpenGL ES CapsViewer or GLViewExtensions Viewer, and take a screenshot of the first page of data, I think both show relevant information right at the start.


Whatever it is, it’s likely not one of the usual qualcomm chips.