Commit graph

20 commits

Author SHA1 Message Date
Ryan Pavlik cdb8d54ca1 st/oxr: Work on D3D11 2022-05-20 22:37:15 +01:00
Ryan Pavlik 469b9d907d st/oxr: Rename all num_ in the state tracker, too. 2021-11-13 12:04:38 +00:00
Christoph Haag d384c90104 st/oxr: Check that VkPhysicalDevice in graphics binding matches suggested device
XR_KHR_vulkan_enable2:
physicalDevice VkPhysicalDevice must match the device specified by xrGetVulkanGraphicsDevice2KHR

XR_KHR_vulkan_enable:
physicalDevice VkPhysicalDevice must match the device specified by xrGetVulkanGraphicsDeviceKHR

XR_KHR_vulkan_enable:
Add a trivial check that xrGetVulkanGraphicsDeviceKHR is called before xrCreateSession.
(our cached suggested device will be XR_NULL_HANDLE if it has not been called).
The XR_KHR_vulkan_enable2 code path already contains this check.
2021-05-07 13:42:49 +02:00
Jakob Bornecrantz 5c15b60cf2 st/oxr: Add more trace markers 2021-04-07 00:50:10 +01:00
Jakob Bornecrantz f754fb583f st/oxr: Trace markers 2021-03-08 11:20:52 +00:00
Christoph Haag cb352839e3 st/oxr: cache VkInstance in xrGetVulkanGraphicsDeviceKHR
The problem:
* xrCreateVulkanDeviceKHR is passed a VkPhysicalDevice, but not a VkInstance.
* xrGetVulkanGraphicsDevice2KHR is passed a VkInstance and returns a VkPhysicalDevice
  that is a child of that instance.
* xrCreateVulkanDeviceKHR must verify that the xrGetVulkanGraphicsDevice2KHR
  has been called and that the passed VkPhysicalDevice matches the one returned
  by xrGetVulkanGraphicsDevice2KHR.

We have to consider:
* xrCreateVulkanDeviceKHR has to work on the "correct" VkInstance, which the passed
  VkPhysicalDevice is a child of.

The reqirement

> If the vulkanPhysicalDevice parameter does not match the output of
> xrGetVulkanGraphicsDeviceKHR, then the runtime must return XR_ERROR_HANDLE_INVALID.

is not 100% clear whether calling xrCreateVulkanInstance multiple times is allowed
and how a second call to xrGetVulkanGraphicsDevice2KHR with a dfferent VkInstance
should be handled.

For this implementation xrCreateVulkanDeviceKHR will only consider the most recent call
to xrGetVulkanGraphicsDevice2KHR and the VkInstance that was used for this call.
This enforces at least that VkPhysicalDevice is a child of the cached VkInstance when
xrCreateVulkanDeviceKHR is called, because using a different VkPhysicalDevice would be
an error.
2021-01-26 03:45:43 +01:00
Jakob Bornecrantz 2b996f30c4 xrt: Reflow after column change 2021-01-15 13:50:32 +00:00
Christoph Haag 4d652fef5a st/oxr: Implement XR_KHR_vulkan_enable2 2021-01-06 13:40:59 +00:00
Ryan Pavlik 146218b346 xrt: Some clang tidy fixes.
A few suppressions as well where clang-tidy did the wrong thing.
2020-08-12 17:11:42 -05:00
Jakob Bornecrantz dab96ef356 st/oxr: Validate view configuration type 2020-06-04 21:56:08 +00:00
Jakob Bornecrantz 3fde4a0651 st/oxr: Update copyright in files touched by this MR 2020-06-03 09:30:18 +01:00
Jakob Bornecrantz 185036489c st/oxr: Ensure get gfx requirements has been called 2020-06-02 13:02:04 +01:00
Jakob Bornecrantz 12d78144f6 st/oxr: Verify XrViewConfigurationType in xrEnumerateEnvironmentBlendModes 2020-06-02 13:02:04 +01:00
Simon Ser 5eacb6f309
xrt: add support for OpenGL ES
This commit advertises the extension and adds support for
xrGetOpenGLESGraphicsRequirementsKHR
2019-11-18 15:16:15 +01:00
Simon Ser 1b51db68f9
xrt: rename OXR_VERIFY_ARG_TYPE_AND_NULL to …_NOT_NULL 2019-11-05 10:15:35 +01:00
Jakob Bornecrantz 76527b73f8 st/oxr: Code style, pointer star location 2019-09-29 11:45:23 +01:00
Jakob Bornecrantz 57c6078a69 st/oxr: Update to OpenXR 1.0 2019-07-29 16:43:39 +01:00
Ryan Pavlik 58f5d56d48 st/oxr: Code style fix 2019-06-18 13:09:59 -05:00
Ryan Pavlik 0bdb4e4aeb st/oxr: Unify checking of system ID, and do so in createSession 2019-06-12 15:40:19 -05:00
Jakob Bornecrantz 15a97422ba xrt: Add all of Monado 2019-03-18 05:52:32 +00:00