Skip to main content
berndporr
Up and Coming
January 6, 2023

openXR uniform precision changed?

I'm developing a biofeedback app using openXR and openGL. That all worked very well under Linux / Android studio. Then to be able to record video I was forced to switch to Windows so installed the openXR SDK again which might be a slightly newer version. What has changed is the precision of the uniform here:

https://github.com/glasgowneuro/AttysHRV/blob/ea6fcfef6e0d5a72a25c978189a24e5d1b0259aa/app/src/main/cpp/AttysHRVGl.cpp#L1764

that's the time since the start of the app and that's transmitted as a float to the shader. I used that to create some gradual lighting changes as if clouds make it a bit brighter or darker. That worked well at the time of this commit under Linux.

Then for the filming I switched to Windows with idential code but perhaps the runtime shader compiler has changed in the meantime. It's not the sdk as  the libopenxr_loader.so are identical.

bp1@bp1-Precision-WorkStation-T5400:~/sandbox$ diff ovr_openxr_mobile_sdk/OpenXR/Libs/Android/arm64-v8a/Release/libopenxr_loader.so /wind/ovr_openxr_mobile_sdk/OpenXR/Libs/Android/arm64-v8a/Release/libopenxr_loader.so
bp1@bp1-Precision-WorkStation-T5400:~/sandbox$

Either way now I have removed the temporal dependency and it all looks fine again. So it looks as if the precision of uniforms has changed or some other precision.