Open rpavlik opened 4 years ago
I looked back at the definition for the 'ksGpuContext' struct in gfxwrapper_opengl.h
and noticed the #elif defined(OS_LINUX_XLIB) || defined(OS_LINUX_XCB_GLX)
directive that decides if the struct has the XLib fields. Was the || defined(OS_LINUX_XCB_GLX)
supposed to go with the #elif defined(OS_LINUX_XCB)
block of XCB fields instead? I thought I checked if the code compiled with XCB, but maybe I only checked OS_LINUX_XCB
and not OS_LINUX_XCB_GLX
.
Hmm, looks like the build system says:
# XCB + XCB GLX is limited to OpenGL 2.1
# add_definitions( -DOS_LINUX_XCB )
# XCB + Xlib GLX 1.3
add_definitions( -DOS_LINUX_XCB_GLX )
so it doesn't have all those fields. It does have connection - via window.connection
, and the visualid
and glxDrawable
are still OK, but the other 3 are absent.
Almost looks like the XCB OpenGL graphics binding is only half of what it needs to be - as in, it's missing a XCB + GLX xlib version. What a mess.
Oh, interesting. The XCB hello_xr never ran because of a missing "platform adapter". I'll probably just partially revert/comment out the change to fix this for now.
and monado doesn't support the xcb binding. OK. So I have a partial fix available but for the release I'll just do the partial revert, so you can review the mess I made of the code :)
OK, the less-than-perfect fix has been released. There may actually be a spec bug here.
An issue (number 1278) has been filed to correspond to this issue in the internal Khronos GitLab.
If you have a Khronos account, you can access that issue at KHR:openxr/openxr#1278.
Hmm. When I pull this into the internal repo with CI, it fails during the xcb-backend build of the exported source. (Don't know why it doesn't fail with the normal source)
I'll dig into it further tomorrow.
Originally posted by @rpavlik in https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/144#issuecomment-557314798