mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +01:00
[vr] Query Vulkan extensions for OpenVR at runtime
This commit is contained in:
parent
707967ac1d
commit
d1d829c09b
@ -171,6 +171,8 @@ namespace dxvk {
|
|||||||
|
|
||||||
// Generate list of extensions that we're actually going to use
|
// Generate list of extensions that we're actually going to use
|
||||||
vk::NameSet enabledExtensionSet = extensions->getEnabledExtensionNames();
|
vk::NameSet enabledExtensionSet = extensions->getEnabledExtensionNames();
|
||||||
|
enabledExtensionSet.merge(m_instance->queryExtraDeviceExtensions(this));
|
||||||
|
|
||||||
vk::NameList enabledExtensionList = enabledExtensionSet.getNameList();
|
vk::NameList enabledExtensionList = enabledExtensionSet.getNameList();
|
||||||
|
|
||||||
Logger::info("Enabled device extensions:");
|
Logger::info("Enabled device extensions:");
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "dxvk_instance.h"
|
#include "dxvk_instance.h"
|
||||||
|
#include "dxvk_openvr.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
@ -39,6 +40,11 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
vk::NameSet DxvkInstance::queryExtraDeviceExtensions(const DxvkAdapter* adapter) const {
|
||||||
|
return m_vr.queryDeviceExtensions(adapter->handle());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
VkInstance DxvkInstance::createInstance() {
|
VkInstance DxvkInstance::createInstance() {
|
||||||
// Query available extensions and enable the ones that are needed
|
// Query available extensions and enable the ones that are needed
|
||||||
vk::NameSet availableExtensions = vk::NameSet::enumerateInstanceExtensions(*m_vkl);
|
vk::NameSet availableExtensions = vk::NameSet::enumerateInstanceExtensions(*m_vkl);
|
||||||
@ -51,6 +57,8 @@ namespace dxvk {
|
|||||||
|
|
||||||
// Generate list of extensions that we're actually going to use
|
// Generate list of extensions that we're actually going to use
|
||||||
vk::NameSet enabledExtensionSet = extensionsToEnable.getEnabledExtensionNames();
|
vk::NameSet enabledExtensionSet = extensionsToEnable.getEnabledExtensionNames();
|
||||||
|
enabledExtensionSet.merge(m_vr.queryInstanceExtensions());
|
||||||
|
|
||||||
vk::NameList enabledExtensionList = enabledExtensionSet.getNameList();
|
vk::NameList enabledExtensionList = enabledExtensionSet.getNameList();
|
||||||
|
|
||||||
Logger::info("Enabled instance extensions:");
|
Logger::info("Enabled instance extensions:");
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "dxvk_adapter.h"
|
#include "dxvk_adapter.h"
|
||||||
#include "dxvk_device.h"
|
#include "dxvk_device.h"
|
||||||
|
#include "dxvk_openvr.h"
|
||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
@ -41,8 +42,19 @@ namespace dxvk {
|
|||||||
*/
|
*/
|
||||||
std::vector<Rc<DxvkAdapter>> enumAdapters();
|
std::vector<Rc<DxvkAdapter>> enumAdapters();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Queries extra device extensions
|
||||||
|
*
|
||||||
|
* \param [in] adapter The device to query
|
||||||
|
* \returns Extra device extensions
|
||||||
|
*/
|
||||||
|
vk::NameSet queryExtraDeviceExtensions(
|
||||||
|
const DxvkAdapter* adapter) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
VrInstance m_vr;
|
||||||
|
|
||||||
Rc<vk::LibraryFn> m_vkl;
|
Rc<vk::LibraryFn> m_vkl;
|
||||||
Rc<vk::InstanceFn> m_vki;
|
Rc<vk::InstanceFn> m_vki;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user