mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-21 22:54:16 +01:00
[dxvk] Add dxvk.deviceFilter config option
This commit is contained in:
parent
ee18aecb8a
commit
fd978704fb
@ -1,3 +1,10 @@
|
|||||||
|
# Device filter. Only exposes devices whose Vulkan device name contains
|
||||||
|
# the given string. May be useful to force an application to run on a
|
||||||
|
# specific GPU, but not applications launched by that application.
|
||||||
|
|
||||||
|
# dxvk.deviceFilter = ""
|
||||||
|
|
||||||
|
|
||||||
# Expose the HDR10 ColorSpace (DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020)
|
# Expose the HDR10 ColorSpace (DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020)
|
||||||
# to the application by default.
|
# to the application by default.
|
||||||
# This shows to the game that the global Windows 'HDR Mode' is enabled.
|
# This shows to the game that the global Windows 'HDR Mode' is enabled.
|
||||||
@ -10,6 +17,7 @@
|
|||||||
|
|
||||||
# dxgi.enableHDR = True
|
# dxgi.enableHDR = True
|
||||||
|
|
||||||
|
|
||||||
# Create the VkSurface on the first call to IDXGISwapChain::Present,
|
# Create the VkSurface on the first call to IDXGISwapChain::Present,
|
||||||
# rather than when creating the swap chain. Some games that start
|
# rather than when creating the swap chain. Some games that start
|
||||||
# rendering with a different graphics API may require this option,
|
# rendering with a different graphics API may require this option,
|
||||||
|
@ -2,11 +2,16 @@
|
|||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
DxvkDeviceFilter::DxvkDeviceFilter(DxvkDeviceFilterFlags flags)
|
DxvkDeviceFilter::DxvkDeviceFilter(
|
||||||
|
DxvkDeviceFilterFlags flags,
|
||||||
|
const DxvkOptions& options)
|
||||||
: m_flags(flags) {
|
: m_flags(flags) {
|
||||||
m_matchDeviceName = env::getEnvVar("DXVK_FILTER_DEVICE_NAME");
|
m_matchDeviceName = env::getEnvVar("DXVK_FILTER_DEVICE_NAME");
|
||||||
|
|
||||||
if (m_matchDeviceName.size() != 0)
|
if (m_matchDeviceName.empty())
|
||||||
|
m_matchDeviceName = options.deviceFilter;
|
||||||
|
|
||||||
|
if (!m_matchDeviceName.empty())
|
||||||
m_flags.set(DxvkDeviceFilterFlag::MatchDeviceName);
|
m_flags.set(DxvkDeviceFilterFlag::MatchDeviceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "dxvk_adapter.h"
|
#include "dxvk_adapter.h"
|
||||||
|
#include "dxvk_options.h"
|
||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
@ -31,7 +32,10 @@ namespace dxvk {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
DxvkDeviceFilter(DxvkDeviceFilterFlags flags);
|
DxvkDeviceFilter(
|
||||||
|
DxvkDeviceFilterFlags flags,
|
||||||
|
const DxvkOptions& options);
|
||||||
|
|
||||||
~DxvkDeviceFilter();
|
~DxvkDeviceFilter();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -256,7 +256,7 @@ namespace dxvk {
|
|||||||
filterFlags.set(DxvkDeviceFilterFlag::SkipCpuDevices);
|
filterFlags.set(DxvkDeviceFilterFlag::SkipCpuDevices);
|
||||||
}
|
}
|
||||||
|
|
||||||
DxvkDeviceFilter filter(filterFlags);
|
DxvkDeviceFilter filter(filterFlags, m_options);
|
||||||
std::vector<Rc<DxvkAdapter>> result;
|
std::vector<Rc<DxvkAdapter>> result;
|
||||||
|
|
||||||
uint32_t numDGPU = 0;
|
uint32_t numDGPU = 0;
|
||||||
|
@ -13,6 +13,7 @@ namespace dxvk {
|
|||||||
hud = config.getOption<std::string>("dxvk.hud", "");
|
hud = config.getOption<std::string>("dxvk.hud", "");
|
||||||
tearFree = config.getOption<Tristate>("dxvk.tearFree", Tristate::Auto);
|
tearFree = config.getOption<Tristate>("dxvk.tearFree", Tristate::Auto);
|
||||||
hideIntegratedGraphics = config.getOption<bool> ("dxvk.hideIntegratedGraphics", false);
|
hideIntegratedGraphics = config.getOption<bool> ("dxvk.hideIntegratedGraphics", false);
|
||||||
|
deviceFilter = config.getOption<std::string>("dxvk.deviceFilter", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,9 @@ namespace dxvk {
|
|||||||
// present. May be necessary for some games that
|
// present. May be necessary for some games that
|
||||||
// incorrectly assume monitor layouts.
|
// incorrectly assume monitor layouts.
|
||||||
bool hideIntegratedGraphics;
|
bool hideIntegratedGraphics;
|
||||||
|
|
||||||
|
// Device name
|
||||||
|
std::string deviceFilter;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user