[Bf-blender-cvs] [09872df1c71] soc-2019-openxr: Check runtime DirectX requirements for graphics binding too
Julian Eisel
noreply at git.blender.org
Thu Jul 11 21:06:07 CEST 2019
Commit: 09872df1c7141ee010da4071f7f7faa2ca1fbc2c
Author: Julian Eisel
Date: Thu Jul 11 21:05:13 2019 +0200
Branches: soc-2019-openxr
https://developer.blender.org/rB09872df1c7141ee010da4071f7f7faa2ca1fbc2c
Check runtime DirectX requirements for graphics binding too
===================================================================
M intern/ghost/intern/GHOST_IXrGraphicsBinding.h
M intern/ghost/intern/GHOST_XrGraphicsBinding.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_IXrGraphicsBinding.h b/intern/ghost/intern/GHOST_IXrGraphicsBinding.h
index 66073643317..e426312ba30 100644
--- a/intern/ghost/intern/GHOST_IXrGraphicsBinding.h
+++ b/intern/ghost/intern/GHOST_IXrGraphicsBinding.h
@@ -22,7 +22,9 @@
#define __GHOST_IXRGRAPHICSBINDING_H__
#include <memory>
+#include <string>
#include <vector>
+
#include "GHOST_Xr_openxr_includes.h"
class GHOST_IXrGraphicsBinding {
diff --git a/intern/ghost/intern/GHOST_XrGraphicsBinding.cpp b/intern/ghost/intern/GHOST_XrGraphicsBinding.cpp
index b0b53888a80..8120dccfcd7 100644
--- a/intern/ghost/intern/GHOST_XrGraphicsBinding.cpp
+++ b/intern/ghost/intern/GHOST_XrGraphicsBinding.cpp
@@ -152,12 +152,26 @@ class GHOST_XrGraphicsBindingOpenGL : public GHOST_IXrGraphicsBinding {
#ifdef WIN32
class GHOST_XrGraphicsBindingD3D : public GHOST_IXrGraphicsBinding {
public:
- bool checkVersionRequirements(GHOST_Context * /*ghost_ctx*/,
- XrInstance /*instance*/,
- XrSystemId /*system_id*/,
- std::string * /*r_requirement_info*/) const override
+ bool checkVersionRequirements(GHOST_Context *ghost_ctx,
+ XrInstance instance,
+ XrSystemId system_id,
+ std::string *r_requirement_info) const override
{
- // TODO
+
+ GHOST_ContextD3D *ctx_dx = static_cast<GHOST_ContextD3D *>(ghost_ctx);
+ XrGraphicsRequirementsD3D11KHR gpu_requirements{XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR};
+
+ xrGetD3D11GraphicsRequirementsKHR(instance, system_id, &gpu_requirements);
+
+ if (r_requirement_info) {
+ std::ostringstream strstream;
+ strstream << "Min DirectX 11 Feature Level " << gpu_requirements.minFeatureLevel
+ << std::endl;
+
+ *r_requirement_info = std::move(strstream.str());
+ }
+
+ return ctx_dx->m_device->GetFeatureLevel() >= gpu_requirements.minFeatureLevel;
}
void initFromGhostContext(GHOST_Context *ghost_ctx) override
More information about the Bf-blender-cvs
mailing list