[dxgi,util] Rename dxgi.nvapiHack option to dxgi.hideNvidiaGpu

This commit is contained in:
Philip Rebohle 2023-08-14 19:14:18 +02:00
parent 037669f715
commit b6a7714e67
5 changed files with 45 additions and 38 deletions

View File

@ -64,9 +64,9 @@
# Report Nvidia GPUs as AMD GPUs by default. This is enabled by default
# to work around issues with NVAPI, but may cause issues in some games.
#
# Supported values: True, False
# Supported values: Auto, True, False
# dxgi.nvapiHack = True
# dxgi.hideNvidiaGpu = Auto

View File

@ -286,7 +286,7 @@ namespace dxvk {
// XXX nvapi workaround for a lot of Unreal Engine 4 games
if (options->customVendorId < 0 && options->customDeviceId < 0
&& options->nvapiHack && deviceProp.vendorID == uint16_t(DxvkGpuVendor::Nvidia)) {
&& options->hideNvidiaGpu && deviceProp.vendorID == uint16_t(DxvkGpuVendor::Nvidia)) {
Logger::info("DXGI: NvAPI workaround enabled, reporting AMD GPU");
deviceProp.vendorID = uint16_t(DxvkGpuVendor::Amd);
deviceProp.deviceID = 0x67df; /* RX 480 */

View File

@ -73,11 +73,17 @@ namespace dxvk {
this->maxDeviceMemory = VkDeviceSize(config.getOption<int32_t>("dxgi.maxDeviceMemory", 0)) << 20;
this->maxSharedMemory = VkDeviceSize(config.getOption<int32_t>("dxgi.maxSharedMemory", 0)) << 20;
// Force nvapiHack to be disabled if NvAPI is enabled in environment
if (env::getEnvVar("DXVK_ENABLE_NVAPI") == "1")
this->nvapiHack = false;
else
this->nvapiHack = config.getOption<bool>("dxgi.nvapiHack", true);
// Expose Nvidia GPUs properly if NvAPI is enabled in environment
this->hideNvidiaGpu = env::getEnvVar("DXVK_ENABLE_NVAPI") != "1";
Tristate hideNvidiaGpuOption = config.getOption<Tristate>("dxgi.hideNvidiaGpu", Tristate::Auto);
if (hideNvidiaGpuOption == Tristate::Auto && !config.getOption<bool>("dxgi.nvapiHack", true)) {
Logger::warn("dxgi.nvapiHack is deprecated, please set dxgi.hideNvidiaGpu instead.");
hideNvidiaGpuOption = Tristate::False;
}
applyTristate(this->hideNvidiaGpu, hideNvidiaGpuOption);
this->enableHDR = config.getOption<bool>("dxgi.enableHDR", env::getEnvVar("DXVK_HDR") == "1");
if (this->enableHDR && isHDRDisallowed()) {

View File

@ -33,8 +33,9 @@ namespace dxvk {
/// Emulate UMA
bool emulateUMA;
/// Enables nvapi workaround
bool nvapiHack;
/// Reports Nvidia GPUs as a different vendor (usually AMD)
/// in order to work around potential issues with NVAPI.
bool hideNvidiaGpu;
/// Enable HDR
bool enableHDR;

View File

@ -56,11 +56,11 @@ namespace dxvk {
* Nvidia. We assume that the Vulkan drivers *
* match the clear behaviour of D3D11. */
{ R"(\\(farcry3|fc3_blooddragon)_d3d11\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* Far Cry 4: Same as Far Cry 3 */
{ R"(\\FarCry4\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* Frostpunk: Renders one frame with D3D9 *
* after creating the DXGI swap chain */
@ -103,15 +103,15 @@ namespace dxvk {
}} },
/* Call of Duty WW2 */
{ R"(\\s2_sp64_ship\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* Need for Speed 2015 */
{ R"(\\NFS16\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* Mass Effect Andromeda */
{ R"(\\MassEffectAndromeda\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* Mirror`s Edge Catalyst: Crashes on AMD */
{ R"(\\MirrorsEdgeCatalyst(Trial)?\.exe$)", {{
@ -265,7 +265,7 @@ namespace dxvk {
{ R"(\\GoW\.exe$)", {{
{ "d3d11.ignoreGraphicsBarriers", "True" },
{ "d3d11.relaxedBarriers", "True" },
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
{ "dxgi.maxFrameLatency", "1" },
}} },
/* AoE 2 DE - runs poorly for some users */
@ -349,7 +349,7 @@ namespace dxvk {
}} },
/* Tom Clancy's Ghost Recon Breakpoint */
{ R"(\\GRB\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* GTA V performance issues */
{ R"(\\GTA5\.exe$)", {{
@ -760,7 +760,7 @@ namespace dxvk {
{ R"(\\(ShippingPC-AFEARGame|ARageMP)\.exe$)", {{
{ "d3d9.customVendorId", "10de" },
{ "d3d9.customDeviceId", "05E0" },
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* Battle Fantasia Revised Edition *
* Speedup above 60fps */
@ -807,7 +807,7 @@ namespace dxvk {
/* Diablo 4 - Will complain about missing *
* GPU unless dxgi Id match actual GPU Id */
{ R"(\\Diablo IV\.exe$)", {{
{ "dxgi.nvapiHack", "False" },
{ "dxgi.hideNvidiaGpu", "False" },
}} },
/* WILD HEARTS™ *
* D3D12 title using D3D11 device for *