1. 26 Jan, 2021 3 commits
    • Christoph Haag's avatar
    • Christoph Haag's avatar
    • Christoph Haag's avatar
      st/oxr: cache VkInstance in xrGetVulkanGraphicsDeviceKHR · cb352839
      Christoph Haag authored
      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.
  2. 25 Jan, 2021 6 commits
  3. 23 Jan, 2021 2 commits
  4. 22 Jan, 2021 2 commits
  5. 21 Jan, 2021 5 commits
  6. 20 Jan, 2021 18 commits
  7. 19 Jan, 2021 4 commits