diff options
Diffstat (limited to 'chromium/device/vr/openxr/openxr_statics.cc')
-rw-r--r-- | chromium/device/vr/openxr/openxr_statics.cc | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/chromium/device/vr/openxr/openxr_statics.cc b/chromium/device/vr/openxr/openxr_statics.cc index 4b6096f31ad..c10611cb143 100644 --- a/chromium/device/vr/openxr/openxr_statics.cc +++ b/chromium/device/vr/openxr/openxr_statics.cc @@ -31,4 +31,25 @@ bool OpenXrStatics::IsApiAvailable() { XR_SUCCEEDED(CreateInstance(&instance_)); } -} // namespace device
\ No newline at end of file +#if defined(OS_WIN) +// Returns the LUID of the adapter the OpenXR runtime is on. Returns {0, 0} if +// the LUID could not be determined. +LUID OpenXrStatics::GetLuid() { + if (!IsApiAvailable()) + return {0, 0}; + + XrSystemId system; + if (XR_FAILED(GetSystem(instance_, &system))) + return {0, 0}; + + XrGraphicsRequirementsD3D11KHR graphics_requirements = { + XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR}; + if (XR_FAILED(xrGetD3D11GraphicsRequirementsKHR(instance_, system, + &graphics_requirements))) + return {0, 0}; + + return graphics_requirements.adapterLuid; +} +#endif + +} // namespace device |