Layer not receiving calls to one of the overridden functions

Hi all,

I have put together a very simpler openxr layer that aims to clamp the visible view to widescreen aspect, which saves GPU resources for games that don’t need to render the data at the top and bottom of the viewport

In short, it is overriding:

  • xrLocateViews
  • xrEnumerateViewConfigurationViews

via pointer manipulation in the returned xrGetInstanceProcAddr.

It seems to actually work, except maybe it’s not centered correctly.

However, I don’t see any debug calls coming through for xrEnumerateViewConfigurationViews … which is weird, because this shouldn’t work without those calls coming through.

Firstly, I’d like to understand why it sort-of works, when it really shouldn’t.

Secondly, I’d like to fix this so that the evcv calls come through as they should.

Can anybody please help me out?

Have you checked with other applications? It’s always possible that the app you’re testing with isn’t calling the function, and is just using some arbitrary resolution.

that’s possible for sure. I had intended to restrict it to just this one game, so I’ll have to make code changes to open it up for testing.

also, whether you can submit a frame with a different FOV than the (original) runtime provided in xrLocateViews, depends on the fovMutable property, not all runtimes have this fwiw.